第2章 Identity Management サーバーのインストールおよびアンインストール
Identity Management (IdM) サーバー は ドメインコントローラーで、IdM ドメインを定義し、管理します。IdM サーバーを設定するには、以下を行う必要があります。
- 必要なパッケージをインストールしている。
- 設定スクリプトを使用してマシンを設定します。
Red Hat は、ドメイン内に複数のドメインコントローラーを設定して、負荷分散と冗長性を確保することを強く推奨します。これらの追加サーバーは、初期マスター IdM サーバーの レプリカ です。
本章では、最初に初期の IdM サーバーをインストールする方法を説明します。初期サーバーからレプリカをインストールする方法は、4章Identity Management のレプリカのインストールとアンインストール を参照してください。
2.1. サーバーのインストールの前提条件
2.1.1. 最小ハードウェア要件
Identity Management (IdM) を実行するには、サーバーに少なくとも以下のハードウェア設定が必要です。
- 1 x (仮想) CPU コア
- 2 GB RAM少ないメモリーで IdM をインストールできる場合でも、IdM の更新などの一部の操作には 4 GB 以上の RAM が必要です。
- 10 GB のハードディスク
重要
データベースに保存されているデータ量によっては、IdM にはより多くのリソースが必要になります (特に RAM)。詳細は、「ハードウェア推奨事項」を参照してください。必要なハードウェアリソースは、サーバーの実稼働環境のワークロード、または Active Directory で信頼が設定されている場合など、他の要素に依存します。
2.1.2. ハードウェア推奨事項
ハードウェアでは、RAM の容量を適切に確保することが最も重要になります。必要な RAM 容量を判断するには、以下の推奨事項を考慮してください。
- 10,000 ユーザーおよび 100 グループには、最低 3 GB の RAM と 1 GB のスワップ領域を割り当てます。
- 100,000 ユーザーおよび 50,000 グループには、最低 16 GB の RAM と 4 GB のスワップ領域を割り当てます。
注記
基本的なユーザーエントリーまたは証明書のあるシンプルなホストエントリーのサイズは、約 5 - 10 KiB です。
大規模なデプロイメントでは、データのほとんどがキャッシュに保存されるため、ディスクスペースを増やすよりも RAM を増やす方が効果的です。
パフォーマンスを向上させるために、基礎となる Directory Server を調整してパフォーマンスを向上させることができます。詳細は、『Red Hat Directory Server パフォーマンスチューニングガイド』 を参照してください。
2.1.3. システム要件
Identity Management は、Red Hat Enterprise Linux 7 でサポートされています。DNS、Kerberos、Directory Server などのサービスのカスタム設定を行わずに、クリーンなシステムに IdM サーバーをインストールします。
重要
パフォーマンスおよび安定性の理由から、Red Hat は、IdM サーバーに他のアプリケーションやサービスをインストールしないことを推奨します。たとえば、特に LDAP オブジェクトの数が多くなると、IdM サーバーはシステムからなくなる可能性があります。また、IdM はシステムに統合され、サードパーティーのアプリケーションが IdM に依存する設定ファイルを変更すると、IdM が破損される可能性があります。
IdM サーバーのインストールは、システムファイルを上書きして、IdM ドメインを設定します。IdM は、元のシステムファイルを
/var/lib/ipa/sysrestore/
にバックアップします。
- Name Service Cache Daemon (NSCD) 要件
- Red Hat は、Identity Management マシンで NSCD を無効にすることを推奨します。または、NSCD を無効にできない場合は、SSSD でキャッシュされないマップの NSCD のみを有効にします。NSCD と SSSD サービスはいずれもキャッシュを実行し、システムが両方のサービスを同時に使用すると問題が発生する可能性があります。NSCD と SSSD 間の競合を回避する方法については、System-Level Authentication Guideを参照してください。
- システムで IPv6 を有効にする必要がある
- IdM サーバーで、カーネルで IPv6 プロトコルが有効になっている必要があります。IPv6 は、Red Hat Enterprise Linux 7 システムでデフォルトで有効になっている点に注意してください。IPv6 を無効にする場合は、Red Hat ナレッジベースの How do I disable or enable the IPv6 protocol in Red Hat Enterprise Linux? で説明されているように、IPv6 プロトコルを再度有効にします。注記IdM では、クライアントとして登録するホストのカーネルで IPv6 プロトコルを有効にする必要はありません。たとえば、内部ネットワークで IPv4 プロトコルのみを使用する場合には、System Security Services Daemon (SSSD) が IPv4 だけを使用して IdM サーバーと通信するように設定できます。
/etc/sssd/sssd.conf
ファイルの[domain/_NAME_]
セクションに次の行を追加して、これを設定できます。lookup_family_order = ipv4_only
lookup_family_order
の詳細は、sssd.conf(5)
man ページを参照してください。
2.1.4. FIPS 環境にサーバーをインストールする場合の前提条件
Red Hat Enterprise Linux 7.4 以降を使用して環境を設定する環境では、以下を行います。
- 連邦情報処理規格 (FIPS) モードが有効になっているシステムに、新しい IdM サーバーまたはレプリカを設定できます。インストールスクリプトは、FIPS が有効になっているシステムを自動的に検出し、管理者の介入なしに IdM を設定します。オペレーティングシステムで FIPS を有効にするには、『セキュリティーガイド』のFIPS モードの有効化を参照してください。重要以下を行うことはできません。
- FIPS モードを無効にしてからインストールした既存の IdM サーバーで FIPS モードを有効にする。
- FIPS モードを無効にして既存の IdM サーバーを使用する場合に FIPS モードでレプリカをインストールする。
Red Hat Enterprise Linux 7.3 以前を使用して設定された環境では、以下を行います。
- IdM では FIPS モードをサポートされません。IdM サーバーまたはレプリカをインストールする前に FIPS を無効にしてインストール後に有効にしないでください。
FIPS モードの詳細は、『セキュリティーガイド』の連邦情報処理標準 (FIPS)を参照してください。
2.1.5. ホスト名および DNS 設定
警告
以下の点を確認し、十分注意してください。
- テスト済みの機能する DNS サービスが利用可能である。
- サービスが適切に設定されている。
この要件は、統合 DNS サービスがある IdM サーバーと、DNS なしでインストールした IdM サーバーに適用されます。DNS レコードは、稼働中の LDAP ディレクトリーサービス、Kerberos、Active Directory 統合など、ほぼすべての IdM ドメイン機能で必須となります。
プライマリー DNS ドメインと Kerberos レルムはインストール後に変更できないことに注意してください。
.company
など、単一ラベルのドメイン名を使用しないでください。IdM ドメインは、トップレベルドメインと、1 つ以上のサブドメイン (example.com
や company.example.com
など) で設定する必要があります。
サーバーホストは、DNS サーバーが IdM 内に統合されているか、外部でホストされるかに関係なく、DNS を適切に設定する必要があります。
Identity Management では、サービスレコードに別の DNS ドメインを使用する必要があります。DNS レベルの競合を回避するため、プライマリー IdM DNS ドメイン (IdM Kerberos 名の小文字バージョン) では、他の IdM や AD ドメインなどの他のシステムと共有できません。
プライマリー IdM DNS ドメインには、標準の IdM サービス用の独自の SRV レコードを含める必要があります。必要なレコードは以下のとおりです。
- _kerberos._tcp.domain_name と _kerberos._udp.domain_name 両方の SRV レコード
- _ldap._tcp.domain_name の SRV レコード
- _kerberos.domain_name の TXT レコード
登録済みのクライアントで
ipa
コマンドラインツール経由で提供されるサービスを検索すると、/etc/ipa/default.conf
ファイルの xmlrpc_uri
パラメーターで指定したサーバーを検索します。必要な場合には、同じファイルにある domain
パラメーターに指定している IdM DNS ドメイン名も検索し、そのドメインの _ldap._tcp.domain_name SRV レコードを確認して、検索しているサーバーを特定します。/etc/ipa/default.conf
ファイルにドメインがない場合に、クライアントはファイルの xmlrpc_uri
パラメーターに設定したサーバーとのみ通信します。
IdM クライアントおよびサーバーのホスト名は、プライマリー DNS ドメインの一部にする必要はありません。ただし、Active Directory (AD) を使用する信頼環境では、IdM サーバーのホスト名は IdM 所有ドメイン、IdM レルムに関連付けられたドメインに所属する必要があり、AD 所有ドメイン、信頼された AD レルムに関連付けられたドメインには含めないようにする必要があります。信頼の観点から見ると、この関連付けは レルムドメイン を使用して管理されます。
Active Directory DNS ドメインからのホスト名を使用して IdM クライアントにアクセスするようにユーザーを設定し、クライアント自体が IdM に参加するように設定する方法は、『Windows 統合ガイド』 のActive Directory DNS ドメインの IdM クライアントを参照してください。
サーバーのホスト名の確認
ホスト名は、完全修飾ドメイン名 (例:
server.example.com
) である必要があります。
重要
.company など、単一ラベルのドメイン名を使用しないでください。IdM ドメインは、トップレベルドメインと、1 つ以上のサブドメイン (example.com や company.example.com など) で設定する必要があります。
完全修飾ドメイン名は、以下の条件を満たす必要があります。
- 数字、アルファベット文字、およびハイフン (-) のみが使用される有効な DNS 名である。ホスト名でアンダーライン (_) を使用すると DNS が正常に動作しません。
- すべてが小文字である。大文字は使用できません。
- 完全修飾ドメイン名は、ループバックアドレスを解決できません。
127.0.0.1
ではなく、マシンの公開 IP アドレスを解決する必要があります。
その他の推奨命名プラクティスは『Red Hat Enterprise Linux Security Guide』のRecommended Naming Practicesを参照してください。
マシンのホスト名を確認するには、
hostname
ユーティリティーを使用します。
[root@server ~]# hostname server.example.com
hostname
の出力は、localhost
または localhost6
以外である必要があります。
正引きおよび逆引き DNS 設定の確認
- サーバーの IP アドレスを取得します。ip addr show コマンドを実行すると、IPv4 アドレスと IPv6 アドレスの両方が表示されます。
- IPv4 アドレスは、
inet
で始まる行に表示されます。以下の例では、設定した IPv4 アドレスは192.0.2.1
です。 - IPv6 アドレスは、
inet6
で始まる行に表示されます。この手順は、scope global
の IPv6 アドレスのみが対象です。以下の例では、返される IPv6 アドレスは2001:DB8::1111
です。
[root@server ~]# ip addr show ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:1a:4a:10:4e:33 brd ff:ff:ff:ff:ff:ff inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic eth0 valid_lft 106694sec preferred_lft 106694sec inet6 2001:DB8::1111/32 scope global dynamic valid_lft 2591521sec preferred_lft 604321sec inet6 fe80::56ee:75ff:fe2b:def6/64 scope link valid_lft forever preferred_lft forever
dig
ユーティリティーを使用して、正引き DNS 設定を確認し、ホスト名を追加します。- dig +short server.example.com A コマンドを実行します。返される IPv4 アドレスは、
ip addr show
により返される IP アドレスと一致する必要があります。[root@server ~]# dig +short server.example.com A 192.0.2.1
- dig +short server.example.com AAAA コマンドを実行します。このコマンドにアドレスを返されるアドレスは、
ip addr show
で返される IPv6 アドレスと一致する必要があります。[root@server ~]# dig +short server.example.com AAAA 2001:DB8::1111
注記AAAA レコードの出力が返されないからといって、設定が間違っているわけではありません。出力されないのは、サーバーのマシンの DNS に IPv6 アドレスが設定されていないことを意味します。ネットワークで IPv6 プロトコルを使用する予定がない場合は、この状況でもインストールを続行できます。
dig
ユーティリティーを使用して、逆引き DNS 設定 (PTR レコード) を確認し、IP アドレスを追加します。- dig +short -x IPv4 address コマンドを実行します。コマンド出力には、サーバーのホスト名が表示される必要があります。以下に例を示します。
[root@server ~]# dig +short -x 192.0.2.1 server.example.com
- 前の手順で dig +short -x server.example.com AAAA コマンドにより IPv6 アドレスが返されていた場合は、
dig
を使用して、IPv6 アドレスのクエリーを行います。ここでも、サーバーのホスト名がコマンド出力に表示される必要があります。以下に例を示します。[root@server ~]# dig +short -x 2001:DB8::1111 server.example.com
注記前の手順で dig +short server.example.com AAAA コマンドにより IPv6 アドレスが返されなかった場合は、AAAA レコードのクエリーを実行しても、何も出力されません。この場合、これは正常な動作で、誤った設定を示すものではありません。
前の手順の dig +short server.example.com で IP アドレスが返されても異なるホスト名が表示されたり、ホスト名が表示されない場合は、逆引き DNS 設定が正しくありません。
DNS フォワーダーの標準コンプライアンスの確認
統合 DNS で IdM を設定する場合は、DNSSEC (DNS Security Extensions) レコード検証の使用を推奨します。他のサーバーから署名済み DNS レコードを検証することで、偽装アドレスから IdM インストールを保護します。ただし、DNSSEC の検証は、IdM を正常にインストールするためのハード要件ではありません。
IdM インストーラーは、デフォルトで DNSSEC レコードの検証を有効にします。DNSSEC の検証に成功すると、DNSSEC が適切に設定されているフォワーダーが必要です。インストール時に、IdM はグローバルフォワーダーを確認し、フォワーダーが DNSSEC に対応していない場合は、フォワーダーで DNSSEC 検証が無効になります。
IdM DNS サーバーで使用するすべての DNS フォワーダーが Extension Mechanisms for DNS (EDNS0) および DNSSEC の規格に準拠していることを確認します。
$ dig +dnssec @IP_address_of_the_DNS_forwarder . SOA
コマンドの出力には、以下の情報が含まれます。
- 状態 -
NOERROR
- フラグ -
ra
- EDNS フラグ -
do
ANSWER
セクションにはRRSIG
レコードが必要です。
出力に上記のいずれかの項目がない場合は、使用している DNS フォワーダーのドキュメントに従い、EDNS0 と DNSSEC に対応し、ともに有効になっていることを確認してください。BIND サーバーの最新バージョンでは、
dnssec-enable yes;
オプションが /etc/named.conf
ファイルに設定されている必要があります。
たとえば、想定される出力は次のようになります。
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48655 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; ANSWER SECTION: . 31679 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2015100701 1800 900 604800 86400 . 31679 IN RRSIG SOA 8 0 86400 20151017170000 20151007160000 62530 . GNVz7SQs [...]
/etc/hosts
ファイル
重要
/etc/hosts
ファイルは手動で変更しないでください。以前に /etc/hosts
を変更したことがある場合は、コンテンツが以下のルールに準拠していることを確認してください。
以下は、適切に設定された
/etc/hosts
ファイルの例になります。ホストの IPv4 および IPv6 の localhost エントリーを適切にリスト表示し、その後に IdM サーバーの IP アドレスとホスト名を最初のエントリーとしてリスト表示します。IdM サーバーのホスト名は、localhost
エントリーには追加できないことに注意してください。
127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 192.0.2.1 server.example.com server 2001:DB8::1111 server.example.com server
2.1.6. ポートの要件
IdM はサービスとの通信に多くのポートを使用します。IdM を機能させるには、これらのポートを開放して利用できるようにしておく必要があります。別のサービスを使用したり、ファイアウォールでブロックしたりしないようにしてください。
- 必要なポートのリストは、「必須ポートのリスト」 を参照してください。
- 必要なポートに対応する
firewalld
サービスのリストは、「firewalld サービスのリスト」 を参照してください。
必須ポートのリスト
サービス | ポート | プロトコル |
---|---|---|
HTTP/HTTPS | 80、443 | TCP |
LDAP/LDAPS | 389、636 | TCP |
Kerberos | 88、464 | TCP および UDP |
DNS | 53 | TCP および UDP |
NTP | 123 | UDP |
注記
IdM はポート 80 および 389 を使用しますが問題ありません。
- ポート 80 (HTTP) は、Online Certificate Status Protocol (OCSP) 応答および証明書失効リスト (CRL) の提供に使用されます。いずれもデジタル署名されているため、中間者攻撃に対してセキュリティーが保護されます。
- ポート 389 (LDAP) は、暗号化に STARTTLS および GSSAPI を使用します。
さらに、IdM はポート 8080 でリッスンでき、一部のインストールはポート 8443 および 749 でもリッスンできます。ただし、これらの 3 つのポートは内部でのみ使用されます。IdM が開放したままであっても、外部からアクセスできません。ポート 8080、8443、および 749 を開放せず、ファイアウォールでブロックした状態にすることが推奨されます。
firewalld サービスのリスト
サービス名 | 詳細は、次を参照してください。 |
---|---|
freeipa-ldap | /usr/lib/firewalld/services/freeipa-ldap.xml |
freeipa-ldaps | /usr/lib/firewalld/services/freeipa-ldaps.xml |
dns | /usr/lib/firewalld/services/dns.xml |
必要なポートの開放
firewalld
サービスが実行中である必要があります。firewalld
が実行中であることを確認するには、次のコマンドを実行します。# systemctl status firewalld.service
firewalld
を起動し、システム起動時に自動的に起動するように設定するには、次のコマンドを実行します。# systemctl start firewalld.service # systemctl enable firewalld.service
firewall-cmd
ユーティリティーを使用して必要なポートを開きます。以下のいずれかのオプションを選択します。- firewall-cmd --add-port コマンドを使用して個別のポートをファイアウォールに追加します。たとえば、デフォルトゾーンでポートを開くには、次のコマンドを実行します。
# firewall-cmd --permanent --add-port={80/tcp,443/tcp,list_of_ports}
- firewall-cmd --add-service コマンドを使用して、
firewalld
サービスをファイアウォールに追加します。たとえば、デフォルトゾーンでポートを開くには、次のコマンドを実行します。# firewall-cmd --permanent --add-service={freeipa-ldap,list_of_services}
firewall-cmd
を使用してシステムでポートを開く方法は、『Security Guide』のModifying Settings in Runtime and Permanent Configuration using CLIか、firewall-cmd(1)の man ページを参照してください。firewall-cmd
設定を再ロードして、変更が即座に反映されるようにします。# firewall-cmd --reload
実稼働システムでfirewalld
を再ロードすると、DNS の接続がタイムアウトになる可能性があることに注意してください。『Security Guide』のModifying Settings in Runtime and Permanent Configuration using CLIも参照してください。必要な場合は、以下の例のように firewall-cmd コマンドで--runtime-to-permanent
オプションを指定して、タイムアウトが発生しないようにし、変更を永続化します。# firewall-cmd --runtime-to-permanent --add-port={80/tcp,443/tcp,389/tcp,636/tcp,88/tcp,88/udp,464/tcp,464/udp,53/tcp,53/udp,123/udp}
- オプション:ポートが現在利用可能であるかを確認するには、
nc
、telnet
またはnmap
ユーティリティーを使用して、ポートへの接続またはポートスキャンの実行を行います。
注記
さらに、着信および送信トラフィックの両方でネットワークベースのファイアウォールを開く必要があることに注意してください。