#freeze
**今の作り方 [#cea280cc]
***4系のsource3 [#g2cf5071]
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系(ファイル共有) [#fa59343f]
3.5.4からCentOS5(RHEL5)で今まで通り作れるように修正された。~
&br;
以前の作り方は[[Samba/前の作り方]]を参照。~
&br;
avahiとかなんとか気にしないのであれば~
たいていのオプションはデフォルトのママでよくなっている。気がする。~
ただautoだったりするので、明示したい人はした方が無難。~
~
ここではSamba4統合ビルドは行わない。~
またActiveDirectory云々も行わない。
cd source3
./configure --with-aio-support
***4系(ActiveDirectory云々) [#baa24c92]
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ともに適宜変更する。