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(仮想)CPU コア
  • 2 GB RAM
    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 サーバーにインストールしないことを推奨します。たとえば、IdM サーバーは、特に LDAP オブジェクトの数が多い場合は、システムを使い切ることができます。また、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 間の競合を回避する方法は、『システムレベルの認証ガイド』を参照してください
システムで IPv6 を有効化しておく。
IdM サーバーでは、カーネルで IPv6 プロトコルが有効になっている必要があります。Red Hat Enterprise Linux 7 システムでは、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(Federal Information Processing Standard)モードが有効になっているシステムで、新しい IdM サーバーまたはレプリカを設定できます。インストールスクリプトは、FIPS が有効な状態でシステムを自動的に検出し、管理者の介入なしに IdM を設定します。
    重要
    以下を行うことはできません。
    • FIPS モードを無効にしてインストールした既存の IdM サーバーで FIPS モードを有効にすることはできません。
    • FIPS モードを無効にして既存の IdM サーバーを使用する場合は、FIPS モードでレプリカをインストールします。
環境では、Red Hat Enterprise Linux 7.3 以前を使用して設定されます。
  • IdM は FIPS モードをサポートしません。IdM サーバーまたはレプリカをインストールする前にシステムで FIPS を無効にし、インストール後に有効にしないでください。

2.1.5. ホスト名および DNS 設定

警告
以下の点を確認し、十分注意してください。
  • テスト済みの機能する DNS サービスが利用可能であること。
  • サービスが適切に設定されている。
この要件は、統合 DNS サービスと DNS なしでインストールされた IdM サーバーに適用されます。DNS レコードは、稼働中の LDAP ディレクトリーサービス、Kerberos、Active Directory 統合など、ほぼすべての IdM ドメイン機能で必須となります。
プライマリー DNS ドメインと Kerberos レルムは、インストール後に変更できないことに注意してください。
DNS サーバーが IdM 内に統合されているか、または外部でホストされるかどうかに関わらず、サーバーホストに DNS を適切に設定する必要があります。
Identity Management では、サービスのレコードに個別の DNS ドメインを使用する必要があります。DNS レベルでは、プライマリー IdM DNS ドメインでは、IdM Kerberos 名の小文字バージョンである DNS ドメインは、その他の IdM ドメインや AD ドメインなど、その他のシステムと共有できません。
プライマリー IdM DNS ドメインには、標準の IdM サービス用の独自の SRV レコードが含まれている必要があります。必要なレコードは以下のとおりです。
  • _kerberos._tcp.domain_name と _kerberos._udp.domain_nameの両方の SRV レコード
  • the SRV record of _ldap._tcp.domain_name
  • _kerberos.domain_nameの TXT レコード
登録クライアントでは、ipa コマンドラインツールを介して提供されるか、または IdM が仲介する場合には、/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 レルムに関連付けられたドメインの一部である必要があります。信頼の観点からは、この関連は Realm ドメインを使用して管理されます
Active Directory DNS ドメインのホスト名を使用して IdM クライアントにアクセスするようにユーザーを設定する方法は、クライアント自体が IdM 『に参加している間、『Windows 統合ガイド』の「Active Directory DNS ドメインの IdM クライアント 」を参照してください』。

サーバーホスト名の確認

ホスト名は、完全修飾ドメイン名(例: server.example.com )である必要があります。マシンのホスト名を確認するには、hostname ユーティリティーを使用します。
[root@server ~]# hostname
server.example.com
hostname の出力は、localhost または localhost6 以外である必要があります。
重要
完全修飾ドメイン名は、数字、アルファベット文字、およびハイフン(-)のみで構成される有効な DNS 名でなければなりません。ホスト名にアンダースコアなどの他の文字が含まれていると、DNS が正常に機能しなくなります。また、ホスト名がすべて小文字である必要があり、大文字は使用できません。
完全修飾ドメイン名は、ループバックアドレスを解決できません。127.0.0.1 ではなく、マシンのパブリック IP アドレスに解決する必要があります。

正引きおよび逆引き DNS 設定の確認

  1. サーバーの IP アドレスを取得します。ip addr show コマンドは、IPv4 アドレスと IPv6 アドレスの両方を表示します。
    • IPv4 アドレスは、inet で始まる行に表示されます。以下の例では、設定された IPv4 アドレスは 192.0.2.1 です。
    • IPv6 アドレスは、inet6 で始まる行に表示されます。この手順には 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 で実行した dig +short server.example.com で IP アドレスが返されても、別のホスト名が表示されたりすると、逆引き DNS 設定が正しくありません。

DNS フォワーダーの Standards-compliance の確認

統合 DNS で IdM を設定する場合は、DNSSEC(DNS Security Extensions )レコードの検証を使用することが推奨されます。他のサーバーから署名済み DNS レコードを検証することで、スプーフィングしたアドレスに対して IdM インストールを保護します。ただし、DNSSEC の検証は、IdM インストールを成功させるための必須ではありません。
IdM インストーラーは、デフォルトで DNSSEC レコードの検証を有効にします。DNSSEC の検証に成功すると、DNSSEC が適切に設定されているフォワーダーが存在する必要があります。インストール時に、IdM はグローバルフォワーダーをチェックし、フォワーダーが DNSSEC に対応していない場合、DNSSEC 検証はフォワーダーで無効になります。
IdM DNS サーバーで使用するすべての DNS フォワーダーが EDNS0 (Extension Mechanisms for DNS )および DNSSEC 標準に準拠することを確認するには、次のコマンドを実行します。
$ dig +dnssec @IP_address_of_the_DNS_forwarder . SOA
コマンドの出力には、以下の情報が含まれます。
  • 状態 - NOERROR
  • flags: 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 を使用してシステムでポートを開く方法は、『セキュリティーガイド』または firewall-cmd(1) の man ページを参照してください。
  3. firewall-cmd 設定を再ロードして、変更が即座に反映されるようにします。
    # firewall-cmd --reload
    実稼働システムで firewalld を再ロードすると、DNS の接続がタイムアウトになる可能性があることに注意してください。『セキュリティーガイド』の「コマンドラインインターフェースを使用したファイアウォールの再読み込み 『』 」も参照してください。必要な場合は、以下の例のように 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. 任意です。ポートが現在利用可能であるかを確認するには、nc ユーティリティー、telnet ユーティリティー、または nmap ユーティリティーを使用して、ポートに接続するか、ポートスキャンを実行します。
注記
さらに、着信トラフィックと送信トラフィックの両方でネットワークベースのファイアウォールを開く必要があることに注意してください。