Samba 4.0.1 から Windows 2008 R2 の AD にレプリケーションした時の備忘録です。

■検証環境
samba-windc同期

Noホスト名(FQDN)OSIPアドレス備考
1ad2.kurobuti.comCentOS 6.3 64bitIP : 192.168.0.230AD(DC)
2ad.kurobuti.comWindows 2008 R2 64bitIP : 192.168.0.231AD(DC)
3nfsserver.localCentOS 6.3 64bitIP : 192.168.0.200NFSサーバ
4vSwitch1(ラベル名)-IP : 192.168.0.0/24仮想スイッチ
5Firewall-IP : 192.168.0.1GW


■説明
samba 4.0.1 から Windows 2008 R2 の AD と連携(レプリケーション)できるか動作確認をしてみました。手順はほぼ参考文献「1」の通りにしています。
samba はインストール済みとします。
samba のインストールは こちら を参照してください。
# ちなみに、Windows 2008 R2 から Samba の ADと連携しようとすると「RPCサーバエラー」が発生してできずに悩んでおります。
普通にできちゃいました。なんだったんだろう。

■Samba
バージョン: 4.0.1
DL先: http://ftp.samba.org/pub/samba/old-versions/

■その他情報
ドメイン: kurobuti.com
 


 

(1)kerberosの設定

[root@ad2 ~]# vi /etc/krb5.conf
(snip)
[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
↓ # 以下のように変更
[libdefaults]
 #default_realm = EXAMPLE.COM
 #dns_lookup_realm = false
 #dns_lookup_kdc = false
 #ticket_lifetime = 24h
 #renew_lifetime = 7d
 #forwardable = true
 dns_lookup_realm = true
 dns_lookup_kdc = true
 default_realm = KUROBUTI.COM

 

(2)既存のDCが認識できるか確認

[root@ad2 ~]# kinit administrator
Password for administrator@KUROBUTI.COM:

klist で以下のように表示されること。

[root@ad2 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@KUROBUTI.COM

Valid starting     Expires            Service principal
01/30/13 21:54:21  01/31/13 07:54:21  krbtgt/KUROBUTI.COM@KUROBUTI.COM
        renew until 01/31/13 21:54:21

 

(3)DCとして既存のドメインに参加

[root@ad2 ~]# samba-tool domain join kurobuti.com DC -Uadministrator --realm=kurobuti.com
Finding a writeable DC for domain 'kurobuti.com'
Found DC ad.kurobuti.com
Password for [WORKGROUP\administrator]: Administratorのパスワード入力
workgroup is KUROBUTI
realm is kurobuti.com
checking sAMAccountName
Adding CN=AD2,OU=Domain Controllers,DC=kurobuti,DC=com
Adding CN=AD2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=kurobuti,DC=com
Adding CN=NTDS Settings,CN=AD2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=kurobuti,DC=com
Adding SPNs to CN=AD2,OU=Domain Controllers,DC=kurobuti,DC=com
Setting account password for AD2$
Enabling account
Calling bare provision
No IPv6 address will be assigned
Provision OK for domain DN DC=kurobuti,DC=com
Starting replication
Schema-DN[CN=Schema,CN=Configuration,DC=kurobuti,DC=com] objects[402] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=kurobuti,DC=com] objects[804] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=kurobuti,DC=com] objects[1206] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=kurobuti,DC=com] objects[1553] linked_values[0]
Analyze and apply schema objects
Partition[CN=Configuration,DC=kurobuti,DC=com] objects[402] linked_values[0]
Partition[CN=Configuration,DC=kurobuti,DC=com] objects[804] linked_values[0]
Partition[CN=Configuration,DC=kurobuti,DC=com] objects[1206] linked_values[0]
Partition[CN=Configuration,DC=kurobuti,DC=com] objects[1608] linked_values[1]
Partition[CN=Configuration,DC=kurobuti,DC=com] objects[1624] linked_values[21]
Replicating critical objects from the base DN of the domain
Partition[DC=kurobuti,DC=com] objects[97] linked_values[23]
Partition[DC=kurobuti,DC=com] objects[348] linked_values[26]
Done with always replicated NC (base, config, schema)
Replicating DC=DomainDnsZones,DC=kurobuti,DC=com
Partition[DC=DomainDnsZones,DC=kurobuti,DC=com] objects[40] linked_values[0]
Replicating DC=ForestDnsZones,DC=kurobuti,DC=com
Partition[DC=ForestDnsZones,DC=kurobuti,DC=com] objects[18] linked_values[0]
Partition[DC=ForestDnsZones,DC=kurobuti,DC=com] objects[36] linked_values[0]
Committing SAM database
descriptor_sd_propagation_recursive: DC=DomainDnsZones,DC=kurobuti,DC=com not found under DC=kurobuti,DC=com
descriptor_sd_propagation_recursive: DC=ForestDnsZones,DC=kurobuti,DC=com not found under DC=kurobuti,DC=com
Sending DsReplicateUpdateRefs for all the replicated partitions
Setting isSynchronized and dsServiceName
Setting up secrets database
Joined domain KUROBUTI (SID S-1-5-21-3330340011-1839367709-62101600) as a DC

「joined domain ….」が表示されること。

ここでは、BIND9 を利用していないです。
Samba の DNS に BIND9 を利用する場合は、オプションで指定してください。
 

(4)DNSレコード確認

[root@ad2 ~]# dig ad2.kurobuti.com

レコードは登録されていないと思いますので、以下のコマンドで登録します。

[root@ad2 samba-4.0.1]# samba-tool dns add 192.168.0.231 kurobuti.com AD2 A 192.168.0.230 -Uadministrator
Password for [KUROBUTI\administrator]:
Record added successfully
[root@ad2 samba-4.0.1]# dig ad2.kurobuti.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> ad2.kurobuti.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26717
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ad2.kurobuti.com.              IN      A

;; ANSWER SECTION:
ad2.kurobuti.com.       900     IN      A       192.168.0.230

;; Query time: 1 msec
;; SERVER: 192.168.0.231#53(192.168.0.231)
;; WHEN: Wed Jan 30 22:17:23 2013
;; MSG SIZE  rcvd: 50

きちんと登録されると上記のように表示されます:)
 

(5)objectGUIDを登録

[root@ad2 samba-4.0.1]# ldbsearch -H /usr/local/samba/private/sam.ldb '(invocationid=*)' --cross-ncs objectguid
# record 1
dn: CN=NTDS Settings,CN=AD2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=kurobuti,DC=com
objectGUID: c196eec0-5993-4078-8530-13465b9a5188

# record 2
dn: CN=NTDS Settings,CN=AD,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=kurobuti,DC=com
objectGUID: b8d15385-0c8a-49e8-a90e-58585846f6a4

# returned 2 records
# 2 entries
# 0 referrals

ハイライト部分の GUID を登録します。

[root@ad2 samba-4.0.1]# samba-tool dns add 192.168.0.231 _msdcs.kurobuti.com c196eec0-5993-4078-8530-13465b9a5188 CNAME AD2.kurobuti.com -Uadministrator
Password for [KUROBUTI\administrator]:
Record added successfully
[root@ad2 samba-4.0.1]# dig c196eec0-5993-4078-8530-13465b9a5188._msdcs.kurobuti.com. cname

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> c196eec0-5993-4078-8530-13465b9a5188._msdcs.kurobuti.com. cname
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30578
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;c196eec0-5993-4078-8530-13465b9a5188._msdcs.kurobuti.com. IN CNAME

;; ANSWER SECTION:
c196eec0-5993-4078-8530-13465b9a5188._msdcs.kurobuti.com. 900 IN CNAME ad2.kurobuti.com.

;; ADDITIONAL SECTION:
ad2.kurobuti.com.       900     IN      A       192.168.0.230

;; Query time: 1 msec
;; SERVER: 192.168.0.231#53(192.168.0.231)
;; WHEN: Wed Jan 30 22:22:54 2013
;; MSG SIZE  rcvd: 108

CNAME が登録できていれば上記のように表示されます:)
 

(6)Sambaを起動

[root@ad2 samba-4.0.1]# samba
[root@ad2 samba-4.0.1]# ps aux | grep samba
root      3950  9.0  1.0 485776 40332 ?        Ss   22:24   0:00 samba
root      3951  0.0  0.7 485776 28432 ?        S    22:24   0:00 samba
root      3952  0.0  0.7 485776 29288 ?        S    22:24   0:00 samba
root      3953 14.6  1.0 523240 42096 ?        Ss   22:24   0:00 /usr/local/samba/sbin/smbd --option=server role check:inhibit=yes --foreground
root      3954  0.0  0.7 485776 30124 ?        S    22:24   0:00 samba
root      3955  0.0  0.7 485776 28404 ?        S    22:24   0:00 samba
root      3956 17.0  0.7 485776 30580 ?        S    22:24   0:00 samba
root      3957  0.0  0.7 485776 28996 ?        S    22:24   0:00 samba
root      3958  0.0  0.7 485776 30532 ?        S    22:24   0:00 samba
root      3959  0.3  0.7 489928 30912 ?        S    22:24   0:00 samba
root      3960  0.0  0.7 488288 29664 ?        S    22:24   0:00 samba
root      3961  0.0  0.7 485776 28544 ?        S    22:24   0:00 samba
root      3962  0.0  0.7 485776 29512 ?        S    22:24   0:00 samba
root      3963  0.0  0.7 485776 29476 ?        S    22:24   0:00 samba
root      3964  0.0  0.7 486196 30544 ?        S    22:24   0:00 samba
root      3966 24.0  1.3 603428 52140 ?        S    22:24   0:00 python /usr/local/samba/sbin/samba_dnsupdate
root      3968  0.0  0.7 523240 29180 ?        S    22:24   0:00 /usr/local/samba/sbin/smbd --option=server role check:inhibit=yes --foreground

 

(7)同期を確認

[root@ad2 samba-4.0.1]# samba-tool drs showrepl
Default-First-Site-Name\AD2
DSA Options: 0x00000001
DSA object GUID: c196eec0-5993-4078-8530-13465b9a5188
DSA invocationId: 9489d592-e409-4d5f-9f7f-c72be2794765

==== INBOUND NEIGHBORS ====

DC=kurobuti,DC=com
        Default-First-Site-Name\AD via RPC
                DSA object GUID: b8d15385-0c8a-49e8-a90e-58585846f6a4
                Last attempt @ Wed Jan 30 22:25:26 2013 JST was successful
                0 consecutive failure(s).
                Last success @ Wed Jan 30 22:25:26 2013 JST

DC=DomainDnsZones,DC=kurobuti,DC=com
        Default-First-Site-Name\AD via RPC
                DSA object GUID: b8d15385-0c8a-49e8-a90e-58585846f6a4
                Last attempt @ Wed Jan 30 22:25:26 2013 JST was successful
                0 consecutive failure(s).
                Last success @ Wed Jan 30 22:25:26 2013 JST

CN=Configuration,DC=kurobuti,DC=com
        Default-First-Site-Name\AD via RPC
                DSA object GUID: b8d15385-0c8a-49e8-a90e-58585846f6a4
                Last attempt @ Wed Jan 30 22:25:26 2013 JST was successful
                0 consecutive failure(s).
                Last success @ Wed Jan 30 22:25:26 2013 JST

DC=ForestDnsZones,DC=kurobuti,DC=com
        Default-First-Site-Name\AD via RPC
                DSA object GUID: b8d15385-0c8a-49e8-a90e-58585846f6a4
                Last attempt @ Wed Jan 30 22:25:26 2013 JST was successful
                0 consecutive failure(s).
                Last success @ Wed Jan 30 22:25:26 2013 JST

CN=Schema,CN=Configuration,DC=kurobuti,DC=com
        Default-First-Site-Name\AD via RPC
                DSA object GUID: b8d15385-0c8a-49e8-a90e-58585846f6a4
                Last attempt @ Wed Jan 30 22:25:26 2013 JST was successful
                0 consecutive failure(s).
                Last success @ Wed Jan 30 22:25:26 2013 JST

==== OUTBOUND NEIGHBORS ====

==== KCC CONNECTION OBJECTS ====

Connection --
        Connection name: 0cb9ea4e-288e-4f03-bd81-b7bc76df4e2f
        Enabled        : TRUE
        Server DNS name : ad.kurobuti.com
        Server DN name  : CN=NTDS Settings,CN=AD,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=kurobuti,DC=com
                TransportType: RPC
                options: 0x00000001
Warning: No NC replicated for Connection!

このように同期されていれば大丈夫です。
もし、されていない場合は以下のコマンドを実行してください。

[root@ad2 samba-4.0.1]# samba-tool drs kcc -Uadministrator ad.kurobuti.com
Password for [KUROBUTI\administrator]:
Consistency check on ad.kurobuti.com successful.

 

(8)動作確認

Windows 側でユーザーを追加してみる。
ここでは、「testuser」を追加しています。
次に、samba で「testuser」が同期されているか確認します。

[root@ad2 samba-4.0.1]# wbinfo -u
Administrator
Guest
krbtgt
testuser

同期されていればハイライト部分のように表示されます。

次に、samba 側からユーザーを追加してみます。

[root@ad2 samba-4.0.1]# samba-tool user add testuser2 PassWord!
User 'testuser2' created successfully

Windows 側で「testuser2」が追加されていることを確認します。
これで、同期が完了しました:D
 

参考文献

1. https://wiki.samba.org/index.php/Samba4/HOWTO/Join_a_domain_as_a_DC


1月 30, 2013 at 10:37 pm by 黒ぶちメガネ
Category: Linux, samba