Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第2章 Identity Management サーバーのインストールおよびアンインストール

Identity Management (IdM) サーバー は ドメインコントローラーで、IdM ドメインを定義し、管理します。IdM サーバーを設定するには、以下を行う必要があります。
  1. 必要なパッケージをインストールしている。
  2. 設定スクリプトを使用してマシンを設定します。
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.comcompany.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 設定の確認

  1. サーバーの 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
    
  2. dig ユーティリティーを使用して、正引き DNS 設定を確認し、ホスト名を追加します。
    1. dig +short server.example.com A コマンドを実行します。返される IPv4 アドレスは、ip addr show により返される IP アドレスと一致する必要があります。
      [root@server ~]# dig +short server.example.com A
      192.0.2.1
      
    2. 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 プロトコルを使用する予定がない場合は、この状況でもインストールを続行できます。
  3. dig ユーティリティーを使用して、逆引き DNS 設定 (PTR レコード) を確認し、IP アドレスを追加します。
    1. dig +short -x IPv4 address コマンドを実行します。コマンド出力には、サーバーのホスト名が表示される必要があります。以下に例を示します。
      [root@server ~]# dig +short -x 192.0.2.1
      server.example.com
      
    2. 前の手順で 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 を機能させるには、これらのポートを開放して利用できるようにしておく必要があります。別のサービスを使用したり、ファイアウォールでブロックしたりしないようにしてください。

必須ポートのリスト

表2.1 Identity Management ポート

サービス ポート プロトコル
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 サービスのリスト

表2.2 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

必要なポートの開放

  1. firewalld サービスが実行中である必要があります。
    • firewalld が実行中であることを確認するには、次のコマンドを実行します。
      # systemctl status firewalld.service
    • firewalld を起動し、システム起動時に自動的に起動するように設定するには、次のコマンドを実行します。
      # systemctl start firewalld.service
      # systemctl enable firewalld.service
  2. firewall-cmd ユーティリティーを使用して必要なポートを開きます。以下のいずれかのオプションを選択します。
    1. firewall-cmd --add-port コマンドを使用して個別のポートをファイアウォールに追加します。たとえば、デフォルトゾーンでポートを開くには、次のコマンドを実行します。
      # firewall-cmd --permanent --add-port={80/tcp,443/tcp,list_of_ports}
    2. 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 ページを参照してください。
  3. 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}
  4. オプション:ポートが現在利用可能であるかを確認するには、nctelnet または nmap ユーティリティーを使用して、ポートへの接続またはポートスキャンの実行を行います。
注記
さらに、着信および送信トラフィックの両方でネットワークベースのファイアウォールを開く必要があることに注意してください。