警告
こちらの設定に関しては現状うまく行ってません。
拠点のセットアップを行います。今回の拠点は、VPNや専用線で接続された支店や、営業所を想定しております。 拠点側にRODC(Read Only Domain Controller)を設置し拠点内の認証は、RODCに任せます。
samba4インストール と同じように、sambaをソースからインストールします。
ネットワーク設定 と同じように、ネットワークの設定を行います。今回の環境では、ubuntuを使用していますのでubuntu用の設定方法になります。
$ cat /etc/hostname
branch-ad.example.local
$ head -3 /etc/hosts
127.0.0.1 localhost
10.2.0.10 branch-ad.example.local branch-ad
ノート
headで表示しているのは、ipv6の表示を見せたくなかったからです。
$ cat /etc/resolvconf/resolv.conf.d/base
search example.local
nameserver 10.0.0.10
nameserver 10.0.0.20
ノート
旧来の/etc/resolv.confでは、上書きされてしまうためこちらのファイルを設定しております。
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.2.0.10
netmask 255.255.255.0
network 10.2.0.0
broadcast 10.2.0.255
gateway 10.2.0.1
# cat krb5.conf
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true
$ kinit administrator
Password for administrator@EXAMPLE.LOCAL:
Warning: Your password will expire in 39 days on Mon Feb 18 13:59:52 2013
$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@EXAMPLE.LOCAL
Valid starting Expires Service principal
09/01/2013 14:49 10/01/2013 00:49 krbtgt/EXAMPLE.LOCAL@EXAMPLE.LOCAL
renew until 10/01/2013 14:48
$ sudo /usr/local/samba/bin/samba-tool domain join example.local RODC -Uadministrator --realm=example.local
Finding a writeable DC for domain 'example.local'
Found DC ubuntu1210-ad.example.local
Password for [WORKGROUP\administrator]: # パスワードの入力
workgroup is EXAMPLE
realm is example.local
checking sAMAccountName
Adding CN=BRANCH-AD,OU=Domain Controllers,DC=example,DC=local
Adding CN=krbtgt_BRANCH-AD,CN=Users,DC=example,DC=local
Got krbtgt_name=krbtgt_19610
Renaming CN=krbtgt_BRANCH-AD,CN=Users,DC=example,DC=local to CN=krbtgt_19610,CN=Users,DC=example,DC=local
Adding CN=BRANCH-AD,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=local
Adding CN=NTDS Settings,CN=BRANCH-AD,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=local
Adding CN=RODC Connection (FRS),CN=NTDS Settings,CN=BRANCH-AD,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=local
Adding SPNs to CN=BRANCH-AD,OU=Domain Controllers,DC=example,DC=local
Setting account password for BRANCH-AD$
Enabling account
Calling bare provision
No IPv6 address will be assigned
Provision OK for domain DN DC=example,DC=local
Starting replication
Schema-DN[CN=Schema,CN=Configuration,DC=example,DC=local] objects[402/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=example,DC=local] objects[804/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=example,DC=local] objects[1206/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=example,DC=local] objects[1550/1550] linked_values[0/0]
Analyze and apply schema objects
Partition[CN=Configuration,DC=example,DC=local] objects[402/1620] linked_values[0/0]
Partition[CN=Configuration,DC=example,DC=local] objects[804/1620] linked_values[0/0]
Partition[CN=Configuration,DC=example,DC=local] objects[1206/1620] linked_values[0/0]
Partition[CN=Configuration,DC=example,DC=local] objects[1608/1620] linked_values[0/0]
Partition[CN=Configuration,DC=example,DC=local] objects[1620/1620] linked_values[35/0]
Replicating critical objects from the base DN of the domain
Partition[DC=example,DC=local] objects[98/98] linked_values[31/0]
Partition[DC=example,DC=local] objects[320/222] linked_values[31/0]
Done with always replicated NC (base, config, schema)
Replicating DC=DomainDnsZones,DC=example,DC=local
Partition[DC=DomainDnsZones,DC=example,DC=local] objects[45/45] linked_values[0/0]
Replicating DC=ForestDnsZones,DC=example,DC=local
Partition[DC=ForestDnsZones,DC=example,DC=local] objects[19/19] linked_values[0/0]
Partition[DC=ForestDnsZones,DC=example,DC=local] objects[38/19] linked_values[0/0]
Partition[CN=BRANCH-AD,OU=Domain Controllers,DC=example,DC=local] objects[1] linked_values[8]
Partition[CN=krbtgt_19610,CN=Users,DC=example,DC=local] objects[1] linked_values[0]
Committing SAM database
Sending DsReplicateUpdateRefs for all the replicated partitions
Setting RODC invocationId
Setting isSynchronized and dsServiceName
Setting up secrets database
Joined domain EXAMPLE (SID S-1-5-21-3055162845-4000540482-1440462473) as an RODC
ノート
DC ではなく RODC です。
追加するDCでは、dns forwarderの設定を手動で追加する必要があります。
$ cat /usr/local/samba/etc/smb.conf
# Global parameters
[global]
workgroup = EXAMPLE
realm = example.local
netbios name = BRANCH-AD
server role = active directory domain controller
dns forwarder = 10.0.0.1
[netlogon]
path = /usr/local/samba/var/locks/sysvol/example.local/scripts
read only = No
[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = No
ノート
[global]セクションのdns forwarderが追加箇所です。
$ sudo /usr/local/samba/sbin/samba
ノート
検証環境のため、OS起動時の自動スクリプトは用意しません。手動で起動するか、rc.localに追記します。
branch-adが遠隔の拠点にあることを明確にするため、サイトの定義を行います。この作業は管理用PC(win7-1)で行います。管理用PC(win7-1)にドメインのadministratorでログインしてください。
Active Directory サイトとサービスを起動
[Sites] - 「新しいサイト」をクリックします。
名前を入力し、リンクを選択します。
サイトが作成されたことを確認します。
作成したサイトに、BRANCH-ADを移動します。
[Subnets] - 「新しいサブネット」をクリックします。
拠点のプレフィックスを入力し、BRANCHSITEを選択します。
ノート
必要に応じてレプリケーション間隔などを修正してください。
DNSサーバはbranch-ad(10.2.0.10)を参照するようにしてください。
他のPCと同じ手順でドメインに参加してください。
警告
この設定で拠点PCは、branch-adを認証サーバとすることを期待したのですが、ログオン後にLOGONSERVERを見てみると、本部のサーバ(ubuntu1210-ad,centos63-ad)になっており期待した動作を得られてません。 最初から拠点にはDCを設けず、本部のDCに認証を任せるか、RODCでは無い通常のDCを設けた方が無難なようです。
追記: RODCの問題では無く、サイトを分けた際に同期に失敗していることが原因のようです。