SAMBA4を2台目ドメインコントローラ(DC)サーバとして稼働させる
WindowsでActiveDirectoryを構築したが、予算の関係で2台目のDCサーバをCentOS6.5のSAMBA4で構築した際の導入手順です。 SAMBA4だけでもActiveDirecoryを構築できますし、Windowsサーバと混在環境でも構築可能です。 ・ActiveDirectoryはWindowsServer2012サーバで下記内容で構築済み
フォレストの機能レベル:Windows Server 2008 R2
ドメインの機能レベル:Windows Server 2008 R2
・既存ActiveDirectoryに2台目(BDC)のDCサーバとしてSAMBA4を導入する
フォレストの機能レベル | Windows Server 2008 R2 |
---|---|
ドメインの機能レベル | Windows Server 2008 R2 |
ドメイン名 | ad.hogehoge.jp |
NetBiosドメイン名 | ad |
1台目DCサーバIP | 172.20.1.203 |
1台目DCサーバ名 | dc01.ad.hogehoge.jp |
2台目DCサーバIP | 172.29.1.204 |
2台目DCサーバ名 | dc02.ad.hogehoge.jp |
SAMBA4のDC構築手順(2台目以降)
PDCがWindowsでもSAMBAでも、2台目以降のSAMBA4の構築手順は同じである。SAMBA4で2台目以降のDCサーバ構築前の事前作業
■不要パッケージを削除# yum remove samba-client samba-winbind samba-winbind-clients samba-common
# vi /etc/resolv.conf
#DC01(172.20.1.203) nameserver 172.20.1.203 domain=ad.hogehoge.jp※DNSサーバIPとドメイン名は環境に合わせて変更する
SAMB4インストール
■SAMB4の依存関係パッケージインストール# yum install gcc libacl-devel libblkid-devel gnutls-devel \ python-devel pkgconfig krb5-workstation zlib-devel libaio-devel \ policycoreutils-python libsemanage-python setools-libs-python \ setools-libs popt-devel libpcap-devel sqlite-devel libidn-devel \ libxml2-devel libsepol-devel keyutils-libs-devel \ cyrus-sasl-devel bind-utils
# cd /usr/local/src # wget http://ftp.samba.org/pub/samba/samba-latest.tar.gz
# tar zxvf samba-latest.tar.gz # cd samba-4.1.6/
# ./configure --prefix=/opt/app/samba4/ --enable-selftest
※赤字のインストール先は環境に合わせること。# make : Waf: Leaving directory `/usr/local/src/samba-4.1.6/bin' 'build' finished successfully (14m45.145s)
# make install : Waf: Leaving directory `/usr/local/src/samba-4.1.6/bin' 'install' finished successfully (3m12.883s)
# vi /etc/init.d/samba4Samba起動スクリプト作成内容はこちらを参照。
# vi /etc/yum.conf
[main] exclude=kernel* samba* bind-utils
SAMBA4のDC昇格
■kerberos関連設定# cp /etc/krb5.conf /etc/krb5.conf.org
# vi /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 = AD.HOGEHOGE.JP dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] AD.HOGEHOGE.JP = { kdc = dc01.ad.hogehoge.jp } [domain_realm] .ad.hogehoge.jp = AD.HOGEHOGE.JP ad.hogehoge.jp = AD.HOGEHOGE.JP※大文字小文字の区別があるので注意を!!
# kinit administrator@AD.HOGEHOGE.JP・エラーメモ
kinit(v5): Cannot resolve network address for KDC in requested realm while getting initial credentials | ドメインが存在しない |
---|---|
kinit(v5): Client not found in Kerberos database while getting initial credentials | ユーザーが存在しない |
kinit(v5): KDC reply did not match expectations while getting initial credentials | ドメインが小文字を指定している |
kinit(v5): Preauthentication failed while getting initial credentials | パスワードが違う |
kinit(v5): Clock skew too great while getting initial credentials | Linuxと ActiveDirectoryの DCの時刻が 5分以上ずれている |
# /etc/rc.d/init.d/samba4 start
# /opt/app/samba4/bin/samba-tool domain join ad.hogehoge.jp DC -U administrator --realm=AD.HOGEHOGE.JP Committing SAM database descriptor_sd_propagation_recursive: DC=DomainDnsZones,DC=ad,DC=hogehoge,DC=jp not found under DC=ad,DC=hogehoge,DC=jp descriptor_sd_propagation_recursive: DC=ForestDnsZones,DC=ad,DC=hogehoge,DC=jp not found under DC=ad,DC=hogehoge,DC=jp Sending DsReplicateUpdateRefs for all the replicated partitions Setting isSynchronized and dsServiceName Setting up secrets database Joined domain AD(SID S-1-5-xx-3469xxxxxx-26xxxxxxx-249xxxxxxxxx) as a DC※赤文字は環境に合わせて変更すること
# /opt/app/samba4/bin/smbclient -L localhost -U%
Domain=[AD] OS=[Unix] Server=[Samba 4.1.6] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.1.6) Domain=[AD] OS=[Unix] Server=[Samba 4.1.6] Server Comment --------- ------- Workgroup Master --------- -------
# /opt/app/samba4/bin/samba-tool drs showrepl■Samba4の自動起動設定
# chmod 755 /etc/init.d/samba4 # chkconfig --add samba4 # chkconfig --level 345 samba4 on
DC構築後の環境整備
■Samabサーバのリゾルバ設定# vi /etc/resolv.confnameserver 127.0.0.1 nameserver 172.20.1.203
・SAMBA4のDNS利用方法1
1つめは内部DNSの使用でSamba4にDNSサーバを取り込んだものでデフォルトではこの内部DNSが使用されます。この場合、特別な設定を実施せずともコンピュータやDCの名前解決ができます。また、DNSのゾーン情報はSamba4のデータベースに登録されるため別のDCにレプリケーションされます。これにより複数のサーバでDNSのゾーン情報を更新可能となります。
・SAMBA4のDNS利用方法2
2つ目の方法はBINDと連携する方法でこの場合、BINDを通常のDNSサーバとして設定しSamba4用のゾーン情報を追記すれば連携が可能となります。
# vi /opt/app/samba4/etc/smb.conf
[global] workgroup = AD realm = ad.hogehoge.jp netbios name = DC02 server role = active directory domain controller dns forwarder = 8.8.8.8
・設定反映# /etc/init.d/samba4 restart※8.8.8.8はGOOGLEのDNSサーバです。
# /opt/app/samba4/sbin/samba -b | grep NTP_SIGND_SOCKET_DIR NTP_SIGND_SOCKET_DIR: /opt/app/samba4/var/lib/ntp_signd
# chgrp ntp /opt/app/samba4/var/lib/ntp_signd
# vi /etc/ntp.conf
#NTP Server #アクセス許可 restrict 127.0.0.1 restrict 172.20.1.0 mask 255.255.255.0 restrict 172.20.2.0 mask 255.255.255.0 # 同期サーバとのアクセス許可 restrict 172.20.1.203 noquery restrict 133.100.11.8 noquery #同期するNTPServer指定 # DC01(172.20.1.203) server 172.20.1.203 # clock.tl.fukuoka-u.ac.jp server 133.100.11.8 ntpsigndsocket /opt/app/samba4/var/lib/ntp_signd restrict default mssntp includefile /etc/ntp/crypto/pw keys /etc/ntp/keys
# /etc/init.d/ntpd start # chkconfig ntpd on
# grep MS-SNTP /var/log/messages May 15 18:38:17 dc02 ntpd[25887]: MS-SNTP signd operations currently block ntpd degrading service to all clients. May 15 18:43:46 dc02 ntpd[25917]: MS-SNTP signd operations currently block ntpd degrading service to all clients.