34.6. 信頼用の DNS およびレルムの設定の設定
信頼で Identity Management (IdM) と Active Directory (AD) を接続する前に、サーバーが相互に認識し、ドメイン名を正しく解決できるようにする必要があります。次の間でドメイン名を使用できるように DNS を設定するには:
- 統合 DNS サーバーおよび認証局を使用する 1 台のプライマリー IdM サーバー
- 1 台の AD ドメインコントローラー
DNS 設定には以下が必要です。
- IdM サーバーに DNS ゾーンの設定
- AD での条件付き DNS 転送の設定
- DNS 設定の正確性の確認
34.6.1. 一意のプライマリー DNS ドメイン
Windows では、すべてのドメインが Kerberos レルムと DNS ドメインを同時に設定します。ドメインコントローラーが管理するすべてのドメインには、独自の専用 DNS ゾーンが必要です。Identity Management (IdM) がフォレストとして Active Directory (AD) に信頼される場合も同様です。AD は、IdM に独自の DNS ドメインがあることを想定します。信頼の設定を機能させるには、DNS ドメインを Linux 環境専用にする必要があります。
各システムには、独自の固有プライマリー DNS ドメインが設定されている必要があります。以下に例を示します。
-
ad.example.com
(AD の場合) およびidm.example.com
(IdM の場合) -
example.com
(AD の場合) およびidm.example.com
(IdM の場合) -
ad.example.com
(AD の場合) およびexample.com
(IdM の場合)
最も便利な管理ソリューションは、各 DNS ドメインが統合 DNS サーバーで管理されている環境ですが、規格に準拠した DNS サーバーも使用できます。
- Kerberos レルム名は、プライマリー DNS ドメイン名を大文字にしたもの
-
Kerberos レルム名は、プライマリー DNS ドメイン名と同じで、すべて大文字にする必要があります。たとえば、AD のドメイン名が
ad.example.com
で、IdM のドメイン名がidm.example.com
の場合、Kerberos レルム名はAD.EXAMPLE.COM
およびIDM.EXAMPLE.COM
になります。 - DNS レコードが信頼内の全 DNS ドメインから解決可能である
- すべてのマシンが、信頼関係内で関連するすべての DNS ドメインの DNS レコードを解決できるようにする必要があります。
- IdM ドメインおよび AD DNS ドメイン
- IdM に参加しているシステムは、複数の DNS ドメインに分散できます。Red Hat では、Active Directory が所有するクライアントとは異なる DNS ゾーンに IdM クライアントをデプロイすることを推奨しています。プライマリー IdM DNS ドメインには、AD 信頼に対応するのに適切な SRV レコードが必要です。
IdM と Active Directory との間の信頼がある一部の環境では、Active Directory DNS ドメインの一部であるホストに IdM クライアントをインストールできます。ホストは、これにより、Linux に焦点を合わせた IdM の機能の恩恵を受けることができます。これは推奨される設定ではなく、いくつかの制限があります。詳細は Active Directory DNS ドメインで IdM クライアントの設定 を参照してください。
次のコマンドを実行して、システム設定に必要な固有の SRV レコードのリストを取得できます。
$ ipa dns-update-system-records --dry-run
生成されるリストは、たとえば以下のようになります。
IPA DNS records: _kerberos-master._tcp.idm.example.com. 86400 IN SRV 0 100 88 server.idm.example.com. _kerberos-master._udp.idm.example.com. 86400 IN SRV 0 100 88 server.idm.example.com. _kerberos._tcp.idm.example.com. 86400 IN SRV 0 100 88 server.idm.example.com. _kerberos._tcp.idm.example.com. 86400 IN SRV 0 100 88 server.idm.example.com. _kerberos.idm.example.com. 86400 IN TXT "IDM.EXAMPLE.COM" _kpasswd._tcp.idm.example.com. 86400 IN SRV 0 100 464 server.idm.example.com. _kpasswd._udp.idm.example.com. 86400 IN SRV 0 100 464 server.idm.example.com. _ldap._tcp.idm.example.com. 86400 IN SRV 0 100 389 server.idm.example.com. _ipa-ca.idm.example.com. 86400 IN A 192.168.122.2
同じ IdM レルムにあるその他の DNS ドメインでは、AD への信頼を設定する際に SRV レコードを設定する必要はありません。これは、AD ドメインコントローラーが、KDC の検索に SRV レコードではなく、信頼の名前接尾辞のルーティング情報を使用するためです。
34.6.2. IdM Web UI での DNS 正引きゾーンの設定
IdM Web UI を使用して Identity Management (IdM) サーバーに DNS 転送ゾーンを追加するには、次の手順に従います。
DNS 正引きゾーンを使用すると、特定のゾーンの DNS クエリーを別の DNS サーバーに転送できます。たとえば、Active Directory (AD) ドメインの DNS クエリーを AD DNS サーバーに転送することができます。
前提条件
- 管理者権限のあるユーザーアカウントを使用して IdM Web UI にアクセスする。
- DNS サーバーを正しく設定している。
手順
- 管理者権限で IdM Web UI にログインします。詳細は Web ブラウザーで IdM Web UI へのアクセス を参照してください。
- Network Services タブをクリックします。
- DNS タブをクリックします。
ドロップダウンメニューで、DNS Forward Zones 項目をクリックします。
- Add ボタンをクリックします。
- Add DNS forward zone ダイアログボックスにゾーン名を追加します。
- Zone forwarders 項目で、Add ボタンをクリックします。
- Zone forwarders フィールドに正引きゾーンを作成するサーバーの IP アドレスを追加します。
Add ボタンをクリックします。
正引きゾーンが DNS 設定に追加されており、DNS 正引きゾーン設定で確認できます。Web UI は、ポップアップメッセージ DNS Forward Zone successfully added. で、成功を通知します。
設定に正引きゾーンを追加した後に、Web UI に DNSSEC 検証の失敗に関する警告が表示される場合があります。
DNSSEC (Domain Name System Security Extensions) は、DNS データをデジタル署名で保護し、攻撃から DNS を保護します。このサービスは、IdM サーバーでデフォルトで有効になっています。リモート DNS サーバーが DNSSEC を使用していないため、警告が表示されます。Red Hat は、リモート DNS サーバーで DNSSEC を有効にすることを推奨します。
リモートサーバーで DNSSEC 検証を有効にできない場合は、IdM サーバーで DNSSEC を無効にすることができます。
編集する適切な設定ファイルを選択します。
-
IdM サーバーが RHEL 8.0 または RHEL 8.1 を使用している場合は、
/etc/named.conf
ファイルを開きます。 -
IdM サーバーが RHEL 8.2 以降を使用している場合は、
/etc/named/ipa-options-ext.conf
ファイルを開きます。
-
IdM サーバーが RHEL 8.0 または RHEL 8.1 を使用している場合は、
以下の DNSSEC パラメーターを追加します。
dnssec-enable no; dnssec-validation no;
- 設定ファイルを保存して閉じます。
DNS サービスを再起動します。
# systemctl restart named-pkcs11
検証
nslookup
コマンドを、リモート DNS サーバーの名前で使用します。$ nslookup ad.example.com Server: 192.168.122.2 Address: 192.168.122.2#53 No-authoritative answer: Name: ad.example.com Address: 192.168.122.3
ドメイン転送を正しく設定すると、リモート DNS サーバーの IP アドレスが表示されます。
34.6.3. CLI での DNS 正引きゾーンの設定
コマンドラインインターフェイス (CLI) を使用して、新しい DNS 転送ゾーンを Identity Management (IdM) サーバーに追加するには、次の手順に従います。
DNS 正引きゾーンを使用すると、特定のゾーンの DNS クエリーを別の DNS サーバーに転送できます。たとえば、Active Directory (AD) ドメインの DNS クエリーを AD DNS サーバーに転送することができます。
前提条件
- 管理者権限のあるユーザーアカウントを使用して CLI にアクセスする。
- DNS サーバーを正しく設定している。
手順
AD ドメインの DNS 正引きゾーンを作成し、
--forwarder
オプションを使用してリモート DNS サーバーの IP アドレスを指定します。# ipa dnsforwardzone-add ad.example.com --forwarder=192.168.122.3 --forward-policy=first
設定に新しい正引きゾーンを追加した後に、/var/log/messages
システムログに DNSSEC 検証の失敗に関する警告が表示される場合があります。
named-pkcs11[2572]: no valid DS resolving 'host.ad.example.com/A/IN': 192.168.100.25#53
DNSSEC (Domain Name System Security Extensions) は、DNS データをデジタル署名で保護し、攻撃から DNS を保護します。このサービスは、IdM サーバーでデフォルトで有効になっています。リモート DNS サーバーが DNSSEC を使用していないため、警告が表示されます。Red Hat は、リモート DNS サーバーで DNSSEC を有効にすることを推奨します。
リモートサーバーで DNSSEC 検証を有効にできない場合は、IdM サーバーで DNSSEC を無効にすることができます。
編集する適切な設定ファイルを選択します。
-
IdM サーバーが RHEL 8.0 または RHEL 8.1 を使用している場合は、
/etc/named.conf
ファイルを開きます。 -
IdM サーバーが RHEL 8.2 以降を使用している場合は、
/etc/named/ipa-options-ext.conf
ファイルを開きます。
-
IdM サーバーが RHEL 8.0 または RHEL 8.1 を使用している場合は、
以下の DNSSEC パラメーターを追加します。
dnssec-enable no; dnssec-validation no;
- 設定ファイルを保存して閉じます。
DNS サービスを再起動します。
# systemctl restart named-pkcs11
検証
nslookup
コマンドを、リモート DNS サーバーの名前で使用します。$ nslookup ad.example.com Server: 192.168.122.2 Address: 192.168.122.2#53 No-authoritative answer: Name: ad.example.com Address: 192.168.122.3
ドメイン転送が正しく設定されている場合、
nslookup
要求はリモート DNS サーバーの IP アドレスを表示します。
34.6.4. AD での DNS 転送の設定
Active Directory (AD) で Identity Management (IdM) サーバーの DNS 転送を設定するには、次の手順に従います。
前提条件
- AD を使用する Windows Server がインストールされている。
- 両方のサーバーで DNS ポートが開いている。
手順
- Windows サーバーにログインします。
- Server Manager を開きます。
- DNS Manager を開きます。
Conditional Forwarders で、以下を含む新しい条件フォワーダーを追加します。
- IdM サーバーの IP アドレス
-
server.idm.example.com
などの完全修飾ドメイン名
- 設定を保存します。
34.6.5. DNS 設定の確認
信頼を設定する前に、Identity Management (IdM) サーバーおよび Active Directory (AD) サーバーが自身を解決でき、相互に解決できることを確認します。
前提条件
- sudo パーミッションでログインする必要があります。
手順
UDP サービスレコードの Kerberos、および TCP サービスレコード上の LDAP に、DNS クエリーを実行します。
[admin@server ~]# dig +short -t SRV _kerberos._udp.idm.example.com. 0 100 88 server.idm.example.com. [admin@server ~]# dig +short -t SRV _ldap._tcp.idm.example.com. 0 100 389 server.idm.example.com.
コマンドは、すべての IdM サーバーをリストで表示する必要があります。
IdM Kerberos レルム名を使用して、TXT レコードに DNS クエリーを実行します。取得した値は、IdM のインストール時に指定した Kerberos レルムと一致することが予想されます。
[admin@server ~]# dig +short -t TXT _kerberos.idm.example.com. "IDM.EXAMPLE.COM"
前の手順で想定されるレコードがすべて返されなかった場合は、欠落しているレコードで DNS 設定を更新します。
IdM 環境で統合 DNS サーバーを使用する場合は、システムレコードを更新するオプションを指定せずに
ipa dns-update-system-records
コマンドを実行します。[admin@server ~]$ ipa dns-update-system-records
IdM 環境で統合 DNS サーバーを使用しない場合は、以下を行います。
IdM サーバーで、IdM DNS レコードをファイルにエクスポートします。
[admin@server ~]$ ipa dns-update-system-records --dry-run --out dns_records_file.nsupdate
このコマンドは、関連する IdM DNS レコードで dns_records_file.nsupdate という名前のファイルを作成します。
-
nsupdate
ユーティリティーおよび dns_records_file.nsupdate ファイルを使用して DNS サーバーに DNS 更新リクエストを送信します。詳細は、RHEL 7 ドキュメントの nsupdate を使用した外部 DNS レコード更新 を参照してください。または、DNS レコードの追加については、お使いの DNS サーバーのドキュメントを参照してください。
IdM が、TCP サービスレコードで Kerberos および LDAP の DNS クエリーを実行するコマンドを使用して、AD のサービスレコードを解決できることを確認します。
[admin@server ~]# dig +short -t SRV _kerberos._tcp.dc._msdcs.ad.example.com. 0 100 88 addc1.ad.example.com. [admin@server ~]# dig +short -t SRV _ldap._tcp.dc._msdcs.ad.example.com. 0 100 389 addc1.ad.example.com.