BIND9 DLZ DNSバックエンド

提供: 雑廉堂Wiki
2018年3月23日 (金) 12:35時点におけるMeisina04 (トーク | 投稿記録)による版 (Kerberosを使用した動的DNS更新のセットアップ)

はじめに

SambaはBIND DNSサーバーをSamba Active Directory(AD) domain controller(DC)上でDNSバックエンドとして利用するためのサポートを提供しています。BIND9_DLZバックエンドは、Samba内部DNSサーバーがサポートしていない複雑なDNSを構成するために推奨されています。

BIND9_DLZモジュールは、Samba Active Directory(AD)データベースに直接アクセスします。理由は以下の通り:

  • BINDはSamba ADドメインコントローラ(DC)として同じマシンにインストールする必要があります。
  • BINDはchange root環境で実行してはいけません。
  • ゾーンはディレクトリと一緒に保存され、複製されます。

BINDの設定

詳細は、「BIND DNSサーバーの設定」を参照してください。

BIND9_DLZモジュールの設定

ドメインのプロビジョニング、ドメインへの参加、あるいはクラシックアップデートをしている間に、/usr/local/samba/private/named.confファイルが作成されます。 現在使用しているBINDのバージョンでBIND9_DLZモジュールを有効にするには:

  • BINDのnamed.confファイルに次ののincludeステートメントを追加:
include "/usr/local/samba/private/named.conf";
  • BINDのバージョンを確認します。
# named -v
BIND 9.9.4
  • /usr/local/samba/private/named.confファイルを編集し、確認したBINDのバージョンモジュールをコメントを外します。例:
dlz "AD DNS Zone" {
    # For BIND 9.8
    # database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so";

    # For BIND 9.9
    database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so";

    # For BIND 9.10
    # database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_10.so";
    
    # For BIND 9.11
    # database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_11.so";
};

次の表は、サポートされているBINDのバージョンとサポートが開始されたSambaのバージョンを示しています。

BINDバージョン サポートされたSambaのバージョン
BIND 9.11 Samba 4.5.2以降
BIND 9.10 Samba 4.2以降
BIND9.9 Samba 4.0以降
BIND9.8 Samba 4.0以降

Kerberosを使用した動的DNS更新のセットアップ

Sambaは、BIND9_DLZバックエンドによって管理されるActive Directory(AD)ゾーンを自動的に更新することができます。

Kerberosを使用して動的DNS更新を有効にするには

  • BINDのnamed.confファイルのoptions {}セクションに次のinclude文を追加します。例えば:
options {
     [...]
     tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
     [...]
};
  • プロビジョニングまたはADフォレストに参加させた場合、または4.4.0より前のSambaバージョンを使用して従来のアップグレードを実行した場合、誤った権限を使用してBIND Kerberosキータブファイルが生成されました。修正するには、BINDユーザーの読み取りアクセスを有効にします。
#chmod 640 /usr/local/samba/private/dns.keytab
#chown root:named /usr/local/samba/private/dns.keytab
  • /etc/krb5.confKerberosクライアント構成ファイルがBINDユーザーによって読み取り可能であることを確認します。例えば:
# ls -l /etc/krb5.conf
-rw-r--r--. 1 root named 99  2. Sep 2014  /etc/krb5.conf
  • ドメインコントローラ(DC)にnsupdateユーティリティが存在することを確認します。
# which nsupdate
/usr/bin/nsupdate

nsupdateコマンドは、DNSを更新するために使用されます。ユーティリティが見つからない場合は、配布物のドキュメントを参照して、コマンドを含むパッケージの識別方法とインストール方法を確認してください。


AppArmorとSELinuxの統合

詳細は、「svradmin/samba4/transdoc/bind9_dlz_apparmor_and_selinux_integration」を参照してください。

BINDサービスの開始

  • サービスを開始する前に、BINDの設定を確認してください。
# named-checkconf

出力が表示されない場合、BIND構成は有効です。

  • BINDサービスを開始します。

動的DNS更新のテスト

詳細については、「svradmin/samba4/transdoc/testing_dynamic_dns_updates」を参照してください。

トラブルシューティング

BIND9_DLZバックエンドの再構成

BIND9_DLZバックエンドセットアップを実行すると、Active Directory(AD)BIND DNSアカウント(dns- *)とBIND Kerberosキータブファイルの 問題を再現するなどのいくつかの問題が自動的に修正されます。

問題を解決するには:

  • 自動再構成を実行します。
# samba_upgradedns --dns-backend=BIND9_DLZ
Reading domain information
DNS accounts already exist
No zone file /usr/local/samba/private/dns/SAMDOM.EXAMPLE.COM.zone
DNS records will be automatically created
DNS partitions already exist
dns-DC1 account already exists
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/samba/private/named.txt for further documentation required for secure DNS updates
Finished upgrading DNS
  • BINDサービスを再起動します。

BIND9_DLZモジュールのデバッグ

BIND9_DLZモジュールのログレベルを設定するには:

/usr/local/samba/private/named.confファイルのモジュールに-dパラメータとログレベルを追加します。例えば:

database "dlopen .../bin/modules/bind9/dlz_bind9_9.so -d 3";
  • BINDサービスを停止します。
  • デバッグ出力を表示し、ログ出力を/tmp/named.logファイルにキャプチャするには、BINDを手動で起動します。
 # named -u named -f -g 2>&1 | tee /tmp/named.log

使用されるパラメータの詳細については、named (8)のマニュアルページを参照してください。