2013年4月21日日曜日

Samba4 で Active Directory / BDC編 - わたしもやってみた -

はじめに

今回は、Backup Domain Controller を構築したいと思います。
そして 『Samba4 で Active Directory / PDC編- わたしもやってみた -』 で構築した
Primary Domain Controller にドメイン参加させたいと思います。
前提としては、Primary Domain Controller の構築が終わっていること
そして Samba4 と Bind のインストール、NTP の時間合わせが済んでいることになります。
まだの場合は、 『Samba4 で Active Directory / インストール編 - わたしもやってみた -』 を参考に

Samba4 HOWTO にある Join_a_domain_as_a_DC をベースに
先人の方々の情報も踏まえつつ、わたしもやってみたいと思います。
ではでは Getting Started!!

環境

Domain

レルム MYDOMAIN.LOCAL
ドメイン MYDOMAIN


Primary Server

OS ContOS 6.4(CentOS-6.4-i386-minimal.iso)
Samba 4.0.5
Bind 9.8.2
NTP ntp-4.2.6p5
Host pdc
IP 192.168.0.10
Gateway 192.168.0.1
DNS 127.0.0.1


Backup Server

OS ContOS 6.4(CentOS-6.4-i386-minimal.iso)
VMware Player 5.0.2
Samba 4.0.5
Bind 9.8.2
NTP ntp-4.2.6p5
Host bdc01
IP 192.168.0.11
Gateway 192.168.0.1
DNS 192.168.0.10


環境設定

ネットワークを設定する。

まず IP の設定
/etc/sysconfig/network-scripts ディレクトリにある ifcfg-eth0 ファイルを以下のように変更する。

/etc/sysconfig/network-scripts/ifcfg-eth0
...
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.11
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
...

次にホスト名の設定
/etc/sysconfig ディレクトリにある network ファイルを以下のように変更する。

/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=bdc01

今回は Primary Server の DNS を利用しようと思うので Bind を止めておく。

service named stop
chkconfig named off

そして DNS を Primary Server に設定する。
/etc ディレクトリにある resolv.conf を以下のように変更する。

/etc/resolv.conf
domain mydomain.local
nameserver 192.168.0.10
DNS について

今回、Primary Server に Primary Domain Controller と DNSを置いているけど
ホントは、別のサーバーにした方がいいのだろうと思う。
せっかくバックアップを構築していても Primary Server が落ちたら
DNS も死ぬので Backup Domain Controller もうまく動かなくなるのかなぁと思う。
とりあえず、データのバックアップは、しているのだし
自動フェイルオーバーまで考えなければ問題ないか?

ここで一度、再起動する。

reboot

Kerberos の設定

Kerberos の設定ファイル krb5.conf を差し替える。
とりあえず、今の設定をバックアップして

mv /etc/krb5.conf /etc/krb5.conf_org

そして以下のような内容で /etc ディレクトリに krb5.conf を作成する。

/etc/krb5.conf
[libdefaults]
  dns_lookup_realm = true
  dns_lookup_kdc = true
  default_realm = MYDOMAIN.LOCAL

ここで ログインと チケットの一覧を確認しておく。
administrator のパスワードは、 Primary Domain Controller 構築の時に
samba-tool domain provision で指定したものになる。

kinit administrator@MYDOMAIN.LOCAL
klist

Samba4 の設定

Backup Domain Controller の設定に入ります。
ここでのポイントは、smb.conf や その他諸々のファイルの生成に
samba-tool domain provision を使わないことです。
代わりに samba-tool domain join を使います。
/usr/local/samba/etc ディレクトリに smb.conf が無いことを確認する。
有れば削除する。
念のため Samba4 を停止しておく。

service samba4 stop

では、以下のコマンドで、smb.conf や その他諸々のファイルを生成します。

/usr/local/samba/bin/samba-tool domain join mydomain.local DC \
  -Uadministrator \
  --realm=mydomain.local \
  --dns-backend=BIND9_DLZ
オプションについて

--dns-backend=BIND9_DLZ を指定しているけど
今回は、Backup Server の DNS を使用していないので不要かも?
とりあえず Bind 関連のファイルを生成しておくことにした。

smb.conf は、以下のようになる。

/usr/local/samba/etc/smb.conf
# Global parameters
[global]
  workgroup = MYDOMAIN
  realm = mydomain.local
  netbios name = BDC01
  server role = active directory domain controller
  server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate

[netlogon]
  path = /usr/local/samba/var/locks/sysvol/mydomain.local/scripts
  read only = No

[sysvol]
  path = /usr/local/samba/var/locks/sysvol
  read only = No


DNS の設定

Backup Server の IP、ホスト名を DNS に登録していきます。
まず、IP とホスト名の関連付けから

/usr/local/samba/bin/samba-tool dns add \
  192.168.0.10 \
  mydomain.local \
  bdc01 A 192.168.0.11 \
  -Uadministrator

登録できたか確認する。

host -t A bdc01.mydomain.local.

Backup Domain Controller の objectGUID とホスト名の関連付けもする。
ldbsearch で objectGUID を調べる。

/usr/local/samba/bin/ldbsearch \
  -H /usr/local/samba/private/sam.ldb \
  '(invocationid=*)' \
  --cross-ncs objectguid

ここで CN=BDC01 の record を探す。
objectGUID が 737506d0-bfe6-40c8-815d-08c3dff7a67f だった場合
以下のような感じで objectGUID とホスト名の関連付けをする。

/usr/local/samba/bin/samba-tool dns add \
  192.168.0.10 \
  _msdcs.mydomain.local \
  737506d0-bfe6-40c8-815d-08c3dff7a67f \
  CNAME bdc01.mydomain.local \
  -Uadministrator

登録できたか確認する。

host -t CNAME 737506d0-bfe6-40c8-815d-08c3dff7a67f._msdcs.mydomain.local.

一応 ホスト名と ping で IP の確認もしておこう。

hostname
ping bdc01
ping bdc01.mydomain.local


レプリケーションの確認

とりあえず、Primary Domain Controller のSamba4、Bind を再起動する。

ssh root@pdc
service named restart
service samba4 restart
exit

Backup Domain Controller のSamba4、も再起動する。

service samba4 restart

レプリケーションを確認する。

/usr/local/samba/bin/samba-tool drs showrepl

Primary Domain Controller で追加したドメインユーザが
Backup Domain Controller にレプリケートされるか確認する。
まず、Primary Domain Controller でドメインユーザを追加する。

ssh root@pdc
/usr/local/samba/bin/samba-tool user add user01
exit

そして Backup Domain Controller で確認する。

/usr/local/samba/bin/ldbsearch \
  -H /usr/local/samba/private/sam.ldb \
  samaccountname=user01


CentOS でドメインログイン

Backup Domain Controller の場合も
Primary Domain Controller と同じく
ドメインユーザー情報に posixAccount スキーマ情報を追加して、
Winbind と PAM の設定が必要になるようです。
このあたりは、 『Samba4 で Active Directory / インストール編 - わたしもやってみた -』 を参考に