第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 で 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 Performance Tuning Guide』を参照してください。

2.1.3. システム要件

Identity Management は Red Hat Enterprise Linux 7 でサポートされています。DNS、Kerberos、または Directory Server などのサービスをカスタム設定していない、新規インストール直後のシステムに IdM サーバーをインストールします。

重要

パフォーマンスと安定性の理由から、Red Hat では、IPA; サーバー上にその他のアプリケーションやサービスのインストールを行わないことを推奨しています。例えば、特に 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 が有効になることに留意してください。
IPv6 を無効にしている場合は、Red Hat ナレッジベースの Red Hat Enterprise Linux で IPv6 プロトコルを無効または有効にする を参照して有効にします。

注記

IPv6 は、カーネルで有効にする必要があり、少なくとも、ループバックインターフェースで有効化する必要があります。

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 モードに対応していません。システム上で FIPS を無効化してから、IdM サーバー、またはレプリカをインストールし、インストール後も有効化しないでください。
FIPS モードに関する詳しい情報は『セキュリティーガイド』の「連邦情報処理標準 (FIPS: Federal Information Processing Standard)」を参照してください。

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

警告

以下の点については、特に注意してください。
  • テスト済みの機能する DNS サービスが利用可能であること。
  • サービスが適切に設定されていること。
この要件は統合 DNS サービスのある IdM サーバーと、DNS なしでインストールされた IdM サーバーの両方に該当します。DNS レコードは、LDAP ディレクトリーサービス、Kerberos、および Active Directory 統合の実行を含むほとんどすべての IdM ドメイン機能において必須のものです。
プライマリー DNS ドメインと Kerberos レルムはインストール後には変更できないことに注意してください。
サーバーのホストは、DNS サーバーが IdM 内で統合されているか外部にホストされているかに関わらず、DNS を適切に設定している必要があります。
Identity Management は、サービスレコードに別の DNS ドメインを使用します。DNS レベルでの競合を避けるために、名前が IdM Kerberos 名の小文字の DNS ドメインプライマリー IdM DNS ドメイン は、その他の 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 コマンドラインツールから、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 所有のドメインの一部でない必要があります。信頼という観点から、この関連は、「レルムドメイン」を使用して管理されます。
クライアント自体が IdM 参加する一方で、Active Directory DNS ドメインからのホスト名を使用してユーザーが IdM クライアントにアクセスできるようにする設定については、『Windows 統合ガイド』 の Active Directory を SSSD のアイデンティティープロバイダーとして使用する を参照してください。

サーバーのホスト名の検証

ホスト名は server.example.com のように完全修飾ドメイン名である必要があります。使用中のマシンのホスト名を確認するには、hostname ユーティリティーを使用します。
[root@server ~]# hostname
server.example.com
hostname の出力は、localhost または localhost6 になってはいけません。

重要

完全修飾ドメイン名は有効な DNS 名である必要があります。つまり、許可されるのは数字、アルファベット、ハイフン (-) のみです。ホスト名にアンダースコアのような他の文字があると、DNS エラーが発生します。また、ホスト名はすべて小文字を使用する必要があり、大文字は使用できません。
命名プラクティスに関する他の推奨事項については、Red Hat Enterprise Linux セキュリティーガイド を参照してください。
完全修飾ドメイン名は、ループバックアドレスに解決してはいけません。マシンの公開 IP アドレスに解決する必要があり、127.0.0.1 に解決してはいけません。

正引きおよび逆引き 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 ユーティリティーに IP アドレスを加えて、逆引き DNS 設定 (PTR レコード) を確認します。
    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 -x server.example.com AAAA コマンドが IPv6 アドレスを返さなかった場合は、AAAA レコードのクエリは何も出力しません。これは正常な動作で、設定が間違っていることを示すものではありません。
    前のステップで dig +short server.example.com が IP アドレスを返した場合でも、別のホスト名が表示されたりホスト名が表示されない場合は、逆引き DNS 設定が間違っていることになります。

DNS フォワーダーの標準準拠の確認

統合 DNS で IdM を設定する場合は、DNS Security Extensions (DNSSEC) 記録検証を使用することが推奨されます。その他のサーバーから署名付き D1983NS 記録を検証することで、なりすましアドレスから IdM インストールを保護することができます。ただし、DNSSEC 検証は、IdM を正常にインストールする際に必須となるわけではありません。
IdM インストーラーでは、デフォルトで DNSSEC 記録検証が有効化されます。DNSSEC を適切に設定したフォワーダーが必要です。インストールの際、IdM はグローバルフォワーダーをチェックします。フォワーダーが DNSSEC に対応していない場合、DNSSEC 検証はそのフォワーダーで無効化されます。
IdM DNS サーバーと使用するすべての DNS フォワーダーが Extension Mechanisms for DNS (EDNS0) と DNSSEC 規格に準拠するかどうかを検証するには:
$ dig +dnssec @IP_address_of_the_DNS_forwarder . SOA
コマンドの出力には、以下の情報が含まれます。
  • status: NOERROR
  • flags: ra
  • EDNS flags: do
  • ANSWER セクションには RRSIG レコードがある必要があります。
これらのいずれかがない場合は、使用している DNS フォワーダーのドキュメントをチェックして、EDNS0 と DNSSEC がサポートされかつ有効になっていることを確認してください。BIND サーバーの最新バージョンでは、/etc/named.conf ファイルで dnssec-enable yes; オプションが設定されている必要があります。
出力例は以下のようになります。
;; ->>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/HTTPS80、443TCP
LDAP/LDAPS389、636TCP
Kerberos88、464TCP および UDP
DNS53TCP および UDP
NTP123UDP

注記

IdM がポート 80 および 389 を使用していることについて心配は要りません。
  • ポート 80 (HTTP) は、オンライン証明書ステータスプロトコル (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 接続がタイムアウトされてしまう可能性があります。『Security Guide』の「コマンドラインインターフェース (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 のユーティリティーを使用してポートに接続するか、ポートスキャンを実行します。

注記

さらに、受信および送信トラフィックの両方でネットワークベースのファイアウォールを開く必要があることに注意してください。