4系のsource3から作ると、smb.confのDefault位置が
・3系source3 --with-configdir=DIR Where to put configuration files ($libdir) つまり{$PREFIX}/lib
・4系source3 --with-configdir=DIR Where to put configuration files ($sysconfdir) つまり{$PREFIX}/etc
と、変更されているので注意。
3系からのアップグレードの場合
/etc/sysconf/sambaに -s /usr/local/samba/lib/smb.conf
などと追記するなどの対応が必要。
3.5.4からCentOS5(RHEL5)で今まで通り作れるように修正された。
以前の作り方はSamba/前の作り方を参照。
avahiとかなんとか気にしないのであれば
たいていのオプションはデフォルトのママでよくなっている。気がする。
ただautoだったりするので、明示したい人はした方が無難。
ここではSamba4統合ビルドは行わない。
またActiveDirectory云々も行わない。
cd source3 ./configure --with-aio-support
gitはアレなのでパックされたものを使う。
4系といえばActiveDirectory DomainControler。
公式http://wiki.samba.org/index.php/Samba4/HOWTOを参照しつつ。
yumで入れる(た)もの。 yum install libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig \ gtkhtml setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemange-python \ setools-libs-python setools-libs popt-devel libpcap-devel sqlite-devel libidn-devel \ libxml2-devel libacl-devel libsepol-devel libattr-devel \ keyutils-lib-devel zlib-devel cyrus-sasl-devel \ bind-libs bind bind-utils \ krb5-server krb5-server-ldap krb5-pkinit-openssl krb5-workstation \ libldb-devel ldb-devel libxslt libtalloc-devel libtdb-devel \ pam-devel libaio-devel avahi-devel cups-devel \ openldap openldap-devel openldap-servers pam_ldap ./configure.develop アルファ版だからdevelopでやった方がいいよとのこと。 特に追加するオプションはない。 make && make install
インストールしたらProvisioningを行う。
DC(AD)に必要な準備を行い、smb.conf、krb5.conf、named.confについて必要項目を自動生成する。
cd /usr/local/samba sbin/provision --realm=REALM.EXAMPLE.JP \ --domain=DOMAIN \ --host-name=hoge \ --adminpass='abcde!9' \ --server-role='dc' 他のオプション類はヘルプ参照。 realm :kerberosのレルム。 domain :ドメイン。 host-name :ホスト名。/etc/hosts、/etc/sysconfig/networkなどと同じにすること。小文字。 adminpass :administratorのパスワード。初期ポリシーは7文字以上、英数字+記号必須。 server-role:ロール。今回はADなので、dc(domain controller)を指定。 実行後、こういうのが表示されればよいのか。 Server Role: domain controller Hostname: hoge NetBIOS Domain: DOMAIN DNS Domain: realm.example.jp DOMAIN SID: S-n-n-nn-nnnnnnnnn-nnnnnnnnnn-nnnnnnnnnn Admin password: abcde!9
Samba自体の動作確認。
/usr/local/samba/sbin/samba -i -M single シングル、インタラクティブモードで起動する。 エラーや警告が出ても取り敢えず起動はするはず。 別窓で /usr/local/samba/bin/smbclient -L localhost -U% Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service REWRITE: list servers not implemented
と
/usr/local/samba/bin/smbclient \\\\localhost\\netlogon -Uadministrator Password for [DOMAIN\administrator]: smb: \> ls . D 0 WWW MMM dd hh:mm:ss yyyy .. D 0 WWW MMM dd hh:mm:ss yyyy nnnnnnnn blocks of size 512. nnnnnnnn blocks available smb: \>
で、確認。
確認後はデーモンとして起動する。
/usr/local/samba/sbin/samba
DNSの設定。
Provisioningの時のメッセージに従う。
yumデフォルトの/etc/named.confに /usr/local/samba/private/named.conf をinclude。 /usr/local/samba/private/named.txt を読みながら tkey-gssapi-credential "DNS/hoge.realm.example.jp"; tkey-domain "realm.example.jp"; は、記述だけして一旦コメントアウト、 KEYTAB_FILE="/usr/local/samba/private/dns.keytab" export KEYTAB_FILE は、/etc/sysconfig/namedに記述。 BINDの起動スクリプトでKEYTAB_FILEがKRB5_KTNAMEに写されるので 上記だけでよい。
この時点でBINDを起動してみる。たぶん起動するはず。
起動後に
host -t SRV _ldap._tcp.realm.example.jp. _ldap._tcp.realm.example.jp has SRV record 0 100 389 hoge.realm.example.jp. host -t SRV _kerberos._udp.realm.example.jp. _kerberos._udp.realm.example.jp has SRV record 0 100 88 hoge.realm.example.jp. host -t A hoge.realm.example.jp. hoge.realm.example.jp has address xxx.xxx.xxx.xxx
で、確認。/etc/hostsは正しく記述すること。
Kerberosの確認。
Sambaのもつkdcが必要なのでSambaは起動すること。
/etc/krb5.confを /usr/local/samba/private/krb5.conf と入れ替える。 kinitなどはkrb5-workstationにあるのでyumっとく。 kinit administrator@REALM.EXAMPLE.JP Password for administrator@REALM.EXAMPLE.JP: Warning: Your password will expire in 41 days on WWW MMM dd hh:mm:ss yyyy で、チケット確認。 klist -e Ticket cache: FILE:/tmp/krbxxxxxx Default principal: administrator@REALM.EXAMPLE.JP Valid starting Expires Service principal mm/dd/yy hh:mm:ss mm/dd/yy hh:mm:ss krbtgt/REALM.EXAMPLE.JP@REALM.EXAMPLE.JP renew until mm/dd/yy hh:mm:ss, Etype (skey, tkt): arcfour-hmac, arcfour-hmac で、チケットとプリンシパル確認。
KerberosとDNSが動くことを確認できたらkerberos DNS dynamic updatesの確認。
上でコメントしておいた、/etc/named.confの tkey-gssapi-credential "DNS/hoge.realm.example.jp"; tkey-domain "realm.example.jp"; をアンコメント。 ファイルの所有権にnamed追加。 chown named.named /usr/local/samba/private/dns.keytab
で、bindを再起動。たぶん起動するはず。
/usr/local/samba/sbin/samba_dnsupdate --verbose で、動作確認。つらつらとDNS updateシーケンスが走ればよしか?
BINDの設定を適宜変更。
listen-on port 53 { xxx.xxx.xxx.xxx; }; とか allow-query { 127.0.0.1; 192.168.0.0/24; }; とか forwarders { xxx.xxx.xxx.xxx; }; など。
Sambaもアクセス制限、ログ、ファイル共有、プリンタ共有など必要であれば適宜設定する。 なお、ポートが
0.0.0.0:88 # Kerberos 0.0.0.0:636 # LDAPS 0.0.0.0:445 # Microsoft-DS 0.0.0.0:1024 # ? 0.0.0.0:3268 # Microsoft Global Catalog 0.0.0.0:3269 # Microsoft Global Catalog over SSL 0.0.0.0:389 # LDAP 0.0.0.0:135 # MS Endpoint Mapper 0.0.0.0:137 # NetBIOS Name Service 0.0.0.0:138 # NetBIOS Datagram Service 0.0.0.0:139 # NetBIOS Session Service 0.0.0.0:464 # Kerberos Change/Set password
と開くのでiptablesなども必要に応じてTCP/UDPともに適宜変更する。