samba4 アクティブディレクトリーに挑戦 : 2:samba4のインストール
先ずは必要になるlibldbをインストールする
# yum install libldb
これで、libldbとlibtdbがアップデートされ、libbsdがインストールされた。この時CentOS-Base.repoをenabled=0にしておかないと、ここでlibldbがアップデートされない。(ここまで2014-1-20追記)
wingレポジトリーには4.1.1がアップされているので、これをインストールする。蛇足だが CentOS-Base.repo には4.0.0-53(最後の数字は不確か)がアップされているようなので、repoの設定変更をしておかないとこれがインストールされてしまう。
また4.1は名前が samba41 になっている。
2014-1-25追記:今日別のマシンにインストールしようとしたら
Error: Package: libtalloc-2.0.8-2.el6_1.wing.i686 (wing)
Requires: librt.so.1
Error: Package: libtalloc-2.0.8-2.el6_1.wing.i686 (wing)
Requires: libc.so.6(GLIBC_2.1.3)
Error: Package: libbsd-0.6.0-1.el6.i686 (epel)
Requires: libc.so.6(GLIBC_2.8)
Error: Package: libtalloc-2.0.8-2.el6_1.wing.i686 (wing)
Requires: libattr.so.1
Error: Package: libtevent-0.9.18-1.el6_1.wing.i686 (wing)
Requires: libc.so.6(GLIBC_2.4)
Error: Package: libtevent-0.9.18-1.el6_1.wing.i686 (wing)
Requires: libdl.so.2
Error: Package: libtalloc-2.0.8-2.el6_1.wing.i686 (wing)
Requires: libdl.so.2
Error: Package: libtevent-0.9.18-1.el6_1.wing.i686 (wing)
Requires: libattr.so.1
Error: Package: libtevent-0.9.18-1.el6_1.wing.i686 (wing)
Requires: librt.so.1
Error: Package: libtalloc-2.0.8-2.el6_1.wing.i686 (wing)
Requires: libcrypt.so.1
Error: Package: libtevent-0.9.18-1.el6_1.wing.i686 (wing)
Requires: libcrypt.so.1
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
と大量にエラーが出た。ここには長くなるので載せていないが、このエラーの前のdependancyチェックのところで、samba-dcのために python-teventをインストールしようとしている。私のホストには入っていないのでインストールする必要があった。
なので、/etc/yum.repos.d/CentOS-Base.repoのenabled=0の先頭に#をつけコメントアウトし、
# yum install python-tevent
でインストールをして置く。(その後enabled=0のコメントを外しておく。またsambaは4.1.4-2になっていた)(ここまで2014-1-25追記)
# yum install samba41 samba41-client ldb-tools krb5-workstation
インストールされたプログラムは
# rpm -qa | grep samba4
samba41-common-4.1.1-2.el6_8.wing.x86_64
samba41-python-4.1.1-2.el6_8.wing.x86_64
samba41-4.1.1-2.el6_8.wing.x86_64
samba41-libs-4.1.1-2.el6_8.wing.x86_64
samba41-dc-libs-4.1.1-2.el6_8.wing.x86_64
samba41-dc-4.1.1-2.el6_8.wing.x86_64
samba41-client-4.1.1-2.el6_8.wing.x86_64
インストールが終わったので、設定しますがその前に、
NTPサーバーで時刻管理をしておく。以前Xenで仮想化をした時にはSubホストは自動的にDom0の時間が適用されたが、KVMだとresumeがあるとタイマーが止まるみたいなので、必ず時刻同期を行う事(ここを参照)
DNSが動いていないようにする(私は別のホストでdnsmasqが走っており、それを止めました。)。LDAPが動いているば止める。
それと無効にしたbase repoを有効に戻しておく。
ネットワークカードの設定の確認。前に書いたように私の環境はNetworkManagerを走らせ、DNSの設定はネットワークカードでするので、/etc/sysconfig/network-scripts/ifcfg-eth0の確認
DNS1=192.168.xx.xxx ← このホストのIP
DNS2=192.168.xx.1 ← default gatewayのIP
DOMAIN=kinryokai.net
もし設定を変更したら
# /etc/rc.d/init.d/network restart
いよいよコマンドでドメインを構築。
# samba-tool domain provision
Realm: KINRYOKAI.NET[Enter]
Domain [KINRYOKAI]: [Enter]
Server Role (dc, member, standalone) [dc]: [Enter]
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: [Enter]
DNS forwarder IP address (write 'none' to disable forwarding) [192.168.xx.xxx]: default gateway のIP[Enter]
Administrator password: password入力[Enter]
Retype password: password入力[Enter]
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.xx.xxx
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=kinryokai,DC=net
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=kinryokai,DC=net
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated \
at /var/lib/samba4/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: SAMBA
NetBIOS Domain: KINRYOKAI
DNS Domain: kinryokai.net
DOMAIN SID: S-1-5-21-8640439422-3946603968-2847524696
sambaを起動する
# service samba start
前に設定した分はserviceで起動できなかったが、今は出来るようにようになった見たい。(以前はソースからだったかな?)
# chkconfig samba on
で再起動後もスタートさせる
logについて
logは /var/log/samba/log.sambaにある。ここに samba: setproctitle not initialized, please either call setproctitle_init() or link against libbsd-ctor. とあるが解決方法が分からない。取り敢えずドメインログオンも出来ているので、ゆっくり探そう。
/var/log/messages にもスタートとストップ関連だけは記録があった。
smbdが走っている
smbdはバージョン3以前のsambaのコマンド何で走っているかは不明。ps aux で確認すると samba が10個くらいと smbd が2つ走っていた。取り敢えず問題なさそうなので、後日チェックする
Kerberosの設定
/etc/krb5.confの変更
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = KINRYOKAI.NET ← 変更
dns_lookup_realm = false
dns_lookup_kdc = true ← trueに変更
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
KINRYOKAI.NET = { ← このホストの名前に変更
kdc = xxx.kinryokai.net ← このホストの名前に変更
admin_server = xxx.kinryokai.net ← このホストの名前に変更
}
[domain_realm]
.kinryokai.net = KINRYOKAI.NET ← このホストの名前に変更
kinryokai.net = KINRYOKAI.NET ← このホストの名前に変更
Kerberosの設定が正しいか確認
# kinit administrator@KINRYOKAI.NET 注:必ず大文字にする事
Password for administrator@KINRYOKAI.NET:
Warning: Your password will expire in 41 days on Mon Jan 6 12:05:53 2014
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@KINRYOKAI.NET
Valid starting Expires Service principal
11/25/13 17:12:23 11/26/13 03:12:23 krbtgt/KINRYOKAI.NET@KINRYOKAI.NET
renew until 12/02/13 17:12:15
DNSの登録状況がどうなっているか確認
# samba-tool dns query 192.168.xx.xxxx kinryokai.net @ A -U administrator
IPはsambaが走っているホストのIP
Password for [KINRYOKAI\administrator]:
Name=, Records=1, Children=0
A: 192.168.xx.xxx (flags=600000f0, serial=1, ttl=900)
Name=_msdcs, Records=0, Children=0
Name=_sites, Records=0, Children=1
Name=_tcp, Records=0, Children=4
Name=_udp, Records=0, Children=2
Name=DomainDnsZones, Records=0, Children=2
Name=ForestDnsZones, Records=0, Children=2
Name=smb5, Records=1, Children=0
A: 192.168.xx.xxx (flags=f0, serial=1, ttl=900)
Name=WIN7-DESK, Records=1, Children=0
A: 192.168.xx.xxx(flags=f0, serial=110, ttl=1200)
下の2行はこのドメインにログインしているwindowホスト
正常のようなので次はwindowホストのドメインへの参加
ファイルサーバーの動作確認をするには
# smbclient -L localhost -U%
2014-04-12追記:今日別のホストでやったら Connection to localhost failed (Error NT_STATUS_IO_TIMEOUT) とエラーが出た。localhostをsambaの動いているIPに変えたらOKだった。
Domain=[KINRYOKAI] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
ITC Disk IPC$ IPC IPC Service (Samba 4.1.1)
Domain=[KINRYOKAI] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
と、表示された。
2014-01-26追記:今日別のホストにインストールし、sambaのテストをしている時、このリプライが
session setup failed: NT_STATUS_ACCESS_DENIED
となった。いろいろ調べたがどうしても直らない、firewallを見直している時、ハット気が付きselinuxの設定を調べると
# getenforce
Enforcing
となり、selinuxが有効になっていたので、
# setenforce 0
で無効にし、再起動後も無効にするため、/etc/sysconfig/selinuxのSELINUX=enforcingの右辺をdisabledにしておく。再度
# smbclient -L localhost -U%
で無事正常に表示された。
この設定を確認している時、wing repo に新しい4.1.2がアップされた様で、アップデートの確認が出ていたので、4.1.2にバージョンアップした。
投稿された内容の著作権はコメントの投稿者に帰属します。