Samba DCを既存のActive Directoryに参加させる

提供: 雑廉堂Wiki

はじめに

Active Directory(AD)フォレストでは、1つのドメインコントローラ(DC)を実行するだけで十分です。 ただし、フェールオーバーとロードバランシングの理由から、ADフォレストにさらにDCを追加する必要があります。 既存のADに追加のSamba DCを参加させることは、フォレスト内の最初のDCをプロビジョニングすることとは異なります。 新しいADフォレストを設定する場合は、「SambaをActive Directoryドメインコントローラとして設定する‎‎」を参照してください。


インストールの準備

詳細については、SambaをActive Directoryドメインコントローラとして設定する‎‎インストールの準備を参照してください。

Sambaのインストール

詳細については、Sambaのインストールを参照してください。

ドメインに参加するためのホストの準備

ローカルDNSサーバー

既定では、フォレスト内の最初のドメインコントローラ(DC)は、Active Directory(AD)ベースのゾーン用のDNSサーバーを実行します。フェイルオーバーの理由から、ネットワーク内のDNSサーバーとして機能する複数のDCを実行することをお勧めします。新しいDCでDNSサービスを提供することを検討する場合:

  • BIND9_DLZ DNSバックエンドについては、「BIND9 DLZ DNSバックエンド」を参照してください。 Samba DCサービスを開始する前に、この作業を完了してください。
  • 内部DNSについては、これ以上の操作は必要ありません。

DNSの設定

詳細については、LinuxとUnixのDNS設定を参照してください。

Kerberos

Kerberosクライアント構成ファイル/etc/krb5.confに次の設定を行います。

[libdefaults]
    dns_lookup_realm = false
    dns_lookup_kdc = true
    default_realm = SAMDOM.EXAMPLE.COM

設定を確認するには、kinitコマンドを使用してドメイン管理者のKerberosチケットを要求します。

# kinit administrator
Password for administrator@SAMDOM.EXAMPLE.COM:

Kerberosチケットを一覧表示するには:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SAMDOM.EXAMPLE.COM

Valid starting       Expires              Service principal
24.09.2015 19:56:55  25.09.2015 05:56:55  krbtgt/SAMDOM.EXAMPLE.COM@SAMDOM.EXAMPLE.COM
        renew until 25.09.2015 19:56:53

ドメインコントローラとしてActive Directoryに参加

Samba内部DNSを使って、追加のDNSサーバーとして働くドメインコントローラ(DC)を、ドメインsamdom.example.comに参加させるには:

# samba-tool domain join samdom.example.com DC -U"SAMDOM\administrator" --dns-backend=SAMBA_INTERNAL
Finding a writeable DC for domain 'samdom.example.com'
Found DC dc1.samdom.example.com
Password for [SAMDOM\administrator]:
workgroup is SAMDOM
realm is samdom.example.com
Adding CN=DC2,OU=Domain Controllers,DC=samdom,DC=example,DC=com
Adding CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
Adding CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com
Adding SPNs to CN=DC2,OU=Domain Controllers,DC=samdom,DC=example,DC=com
Setting account password for DC2$
Enabling account
Calling bare provision
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
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
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Provision OK for domain DN DC=samdom,DC=example,DC=com
Starting replication
Schema-DN[CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com] objects[402/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com] objects[804/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com] objects[1206/1550] linked_values[0/0]
Schema-DN[CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com] objects[1550/1550] linked_values[0/0]
Analyze and apply schema objects
Partition[CN=Configuration,DC=samdom,DC=example,DC=com] objects[402/1618] linked_values[0/0]
Partition[CN=Configuration,DC=samdom,DC=example,DC=com] objects[804/1618] linked_values[0/0]
Partition[CN=Configuration,DC=samdom,DC=example,DC=com] objects[1206/1618] linked_values[0/0]
Partition[CN=Configuration,DC=samdom,DC=example,DC=com] objects[1608/1618] linked_values[0/0]
Partition[CN=Configuration,DC=samdom,DC=example,DC=com] objects[1618/1618] linked_values[42/0]
Replicating critical objects from the base DN of the domain
Partition[DC=samdom,DC=example,DC=com] objects[100/100] linked_values[23/0]
Partition[DC=samdom,DC=example,DC=com] objects[386/286] linked_values[23/0]
Done with always replicated NC (base, config, schema)
Replicating DC=DomainDnsZones,DC=samdom,DC=example,DC=com
Partition[DC=DomainDnsZones,DC=samdom,DC=example,DC=com] objects[44/44] linked_values[0/0]
Replicating DC=ForestDnsZones,DC=samdom,DC=example,DC=com
Partition[DC=ForestDnsZones,DC=samdom,DC=example,DC=com] objects[19/19] linked_values[0/0]
Committing SAM database
Sending DsReplicaUpdateRefs for all the replicated partitions
Setting isSynchronized and dsServiceName
Setting up secrets database
Joined domain SAMDOM (SID S-1-5-21-469703510-2364959079-1506205053) as a DC

詳細については、samba-tool domain join --helpコマンドの出力を参照してください。

samba-tool domain joinコマンドで頻繁に使用されるその他のパラメータ:

  • --site=SITE:DCとして特定のActive Directoryサイトにホストに直接参加します。
  • --option="interfaces=lo eth0" --option="bind interfaces only=yes":サーバに複数のネットワークインタフェースがある場合は、これらのオプションを使用して指定されたインタフェースにSambaをバインドします。これにより、samba-toolコマンドは参加中に正しいLAN IPアドレスをディレクトリに登録できます。

{imbox | style = margin:4px 2%; | text = 他のDCがSamba DCで、--use-rfc2307でプロビジョニングされている場合は、joinコマンドに--option='idmap_ldb:use rfc2307 = yes'を追加する必要があります。 }}

DNSエントリの確認

Samba 4.7以降を実行しているSamba DCに参加すると、必要なすべてのDNSエントリが自動的に作成されます。以前のバージョンで手動でレコードを作成するには、DC DNSレコードの確認と作成を参照してください。

BIND9_DLZ DNSバックエンドの設定

ドメイン参加中にBIND9_DLZ DNSバックエンドを選択した場合は、BIND構成を設定します。詳細については、「BIND9_DLZ DNSバックエンド」を参照してください。


ビルトインユーザーとグループIDのマッピング

Sysvolの複製は、Sambaでは今のところサポートされていません。 Sysvolレプリケーションの回避策を使用するには、すべてのドメインコントローラ(DC)が、ビルトインユーザーおよびグループに対して同じIDマッピングを使用する必要があります。

デフォルトでは、Samba DCはユーザーIDとグループIDを 'idmap.ldb'の 'xidNumber'属性に格納します。 'idmap.ldb'の仕組みにより、各DCが特定のユーザーまたはグループに対して同じIDを使用することを保証することはできません。同じIDを使用するには、次のことを行う必要があります。

  • 既存のDC上の/usr/local/samba/private/idmap.ldbファイルのホットバックアップを作成します。
# tdbbackup -s .bak /usr/local/samba/private/idmap.ldb
これにより、バックアップファイル/usr/local/samba/private/idmap.ldb.bakが作成されます。
  • バックアップファイルを新しい結合DC上の/usr/local/samba/private/フォルダに移動し、.bak拡張子を削除して既存のファイルを置き換えます。
  • 新しいDC上のSysvolフォルダのファイルシステムアクセス制御リスト(ACL)をリセットします。


# samba-tool ntacl sysvolreset

Sambaサービスの開始

Samba Active Directory(AD)ドメインコントローラ(DC)サービスを手動で起動するには、次のように入力します。

# samba

SambaはSystem Vのinitスクリプト、systemdupstart、またはその他のサービス設定ファイルを提供していません。

  • パッケージを使用してSambaをインストールした場合は、パッケージに含まれているスクリプトまたはサービス設定ファイルを使用してSambaを起動します。
  • Sambaをビルドした場合は、「Samba AD DCサービスの管理」を参照してください。





ディレクトリレプリケーションの確認

ドメインコントローラー(DC)が起動されると、Samba DCの知識整合性チェッカー(KCC)によってActive Directory(AD)フォレスト内の他のDCへのレプリケーションアグリーメントが作成されます。 KCCが自動生成レプリケーション接続を作成するまでに最大15分かかることがあります。

ディレクトリ複製が正しく機能することを確認する方法の詳細については、「ディレクトリレプリケーションの状態を確認」を参照してください。

BINDの起動

BINDデーモンを開始する前に、DNSディレクトリパーティションが正常に複製されていることを確認します。

# samba-tool drs showrepl
...
==== INBOUND NEIGHBORS ====
...
DC=DomainDnsZones,DC=samdom,DC=example,DC=com
        Default-First-Site-Name\DC1 via RPC
        DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
        Last attempt @ Thu Sep 24 20:08:45 2015 CEST was successful
        0 consecutive failure(s).
        Last success @ Thu Sep 24 20:08:45 2015 CEST
...
DC=ForestDnsZones,DC=samdom,DC=example,DC=com
        Default-First-Site-Name\DC1 via RPC
        DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
        Last attempt @ Thu Sep 24 20:08:45 2015 CEST was successful
        0 consecutive failure(s).
        Last success @ Thu Sep 24 20:08:45 2015 CEST

レプリケーションが正常に動作する場合は、BINDサービスを開始します。サービスを開始する方法については、ディストリビューションのドキュメントを参照してください。


Samba AD DCのテスト

ファイルサーバーの確認

詳細については、「SambaをActive Directoryドメインコントローラとして設定する」のファイルサーバーの確認を参照してください。

ローカルDNSサーバーのテスト

結合中に--dns-backend=NONEを選択した場合は、この手順をスキップしてください。

ローカルDNSサーバーを照会して、ドメイン名samdom.example.comを解決します。

# host -t A samdom.example.com localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:

samdom.example.com has address 10.99.0.1
samdom.example.com has address 10.99.0.2

```

ローカルDNSは、ドメイン名をすべてのドメインコントローラ(DC)のIPアドレスに解決します。

結果が表示されない場合や、別の結果が表示された場合は、このドキュメントを確認して次を確認してください。

  • システムログファイル、
  • Sambaのログファイル、
  • BIND9_DLZが使用されている場合は、BINDログ・ファイル。

Kerberosの確認

詳細については、SambaをActive Directoryドメインコントローラとして設定するKerberosの確認を参照してください。

ドメインコントローラでのDNSの構成

他のDCを見つけることができない場合、複製が失敗するため、ドメインコントローラ(DC)のDNS構成は重要です。ドメインコントローラ(DC)でのDNS構成のベストプラクティスは次のとおりです。

DCのローカルIPを/etc/resolv.confファイルの二次的または三次的ネームサーバーのエントリとして設定し、フォレストのプライマリネームサーバーとは異なるActive Directory(AD)DNSサーバーIPを使用します。例えば:

新たに参加したDCでは、既存のDCの10.99.0.1のIPをプライマリとして使用し、ローカルの10.99.0.2のIPをセカンダリネームサーバーのエントリとして使用します。

nameserver 10.99.0.1
nameserver 10.99.0.2       # IP of the new joined DC as secondary entry
search samdom.example.com

2つ以上のDCを実行している場合は、IPを横方向に設定できます。


時刻同期の設定

Kerberosでは、すべてのドメインメンバーに同期時間が必要です。詳細とntpdサービスの設定方法については、時刻の同期を参照してください。

Samba AD DCでのWinbinddの設定

オプション。詳細については、Samba AD DC上でのWinbinddの設定を参照してください。

ドメインコントローラをファイルサーバーとして使用する

詳細については、「SambaをActive Directoryドメインコントローラとして設定する#ドメインコントローラをファイルサーバーとして使用する」を参照してください。


Sysvolレプリケーション

Sambaは現在、Sysvolの複製をサポートしていません。サポートされていない回避策については、Sysvolレプリケーションを参照してください。

ディレクトリレプリケーションのテスト

ディレクトリ複製が正常に動作することをテストするには、たとえば既存のDC上にユーザーを追加し、新しく追加されたDC上に自動的に表示されることを確認します。

オプションで、ldapcmpユーティリティを使用して2つのディレクトリを比較します。詳細は、「samba-tool ldapcmp」を参照してください。


トラブルシューティング

詳細は、「Samba AD DCトラブルシューティング」を参照してください。