このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

23.6.1 Kerberosサーバーの構成

Kerberos認証を使用するようにクライアント・システムを構成する場合は、最初にKerberosサーバーを構成することをお薦めします。 その後に、必要なクライアントを構成できます。

ノート

Kerberosサーバーとして構成するシステムは、厳密にセキュアな状態を保持し、他のサービス機能を実行するように構成しないでください。

キー配布センター(KDC)およびKerberos管理サーバーとして機能できるKerberosサーバーを構成するには:

  1. DNSを使用し、サーバーのドメイン名とIPアドレスの直接および逆引き名前参照が機能するように、サーバーを構成します。

    DNSの構成の詳細は、第13章「名前サービス構成」を参照してください。

  2. ネットワーク・タイム・プロトコル(NTP)や高精度時間プロトコル(PTP)などのネットワーク・タイム同期化方式を使用するように、サーバーを構成します。 Kerberosでは、Kerberosサーバーとクライアントのシステム時間が可能なかぎり緊密に同期化される必要があります。 サーバーとクライアントのシステム時間の差異が300秒(デフォルト)を超えると、認証が失敗します。

    詳細は、第14章「ネットワーク時間の構成」を参照してください。

  3. krb5-libskrb5-serverおよびkrb5-workstationパッケージをインストールします。

    # yum install krb5-libs krb5-server krb5-workstation
  4. 次の例のように、/etc/krb5.confを編集してKerberosレルムの設定を構成します。

    [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
     default_realm = MYDOM.COM
     dns_lookup_realm = false
     dns_lookup_kdc = false
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
    
    [realms]
     MYDOM.COM = {
      kdc = krbsvr.mydom.com
      admin_server = krbsvr.mydom.com
     }
    
    [domain_realm]
     .mydom.com = MYDOM.COM
     mydom.com = MYDOM.COM
    
    [appdefaults]
     pam = {
       debug = true
       validate = false
     }

    この例では、KerberosレルムはDNSドメインmydom.com内のMYDOM.COMで、krbsvr.mydom.com (ローカル・システム)はKDCおよび管理サーバーの両方として機能します。 [appdefaults]セクションでは、pam_krb5.soモジュールのオプションを構成します。

    詳細は、krb5.conf(5)およびpam_krb5(5)の各マニュアル・ページを参照してください。

  5. 次の例のように、/var/kerberos/krb5kdc/kdc.confを編集してキー配布センターの設定を構成します。

    kdcdefaults]
     kdc_ports = 88
     kdc_tcp_ports = 88
    
    [realms]
     MYDOM.COM = {
      #master_key_type = aes256-cts
      master_key_type = des-hmac-sha1
      default_principal_flags = +preauth
      acl_file = /var/kerberos/krb5kdc/kadm5.acl
      dict_file = /usr/share/dict/words
      admin_keytab = /etc/kadm5.keytab
      supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal \
      arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
     }

    詳細は、kdc.conf(5)マニュアル・ページを参照してください。

  6. Kerberosデータベースを作成し、データベース・パスワードをstashファイルに格納します。

    # /usr/sbin/kdb5_util create -s
  7. 次の例のように、/var/kerberos/krb5kdc/kadm5.aclを編集して、Kerberosデータベースへの管理アクセス権を持つプリンシパルを定義します。

    */admin@EXAMPLE.COM     *

    この例では、adminのインスタンス(例: alice/admin@MYDOM.COM)を使用するプリンシパルが、MYDOM.COMドメインに対してKerberosデータベースの完全な管理統制権限を持ちます。 通常、データベース内の一般ユーザーは空のインスタンス(例: bob@MYDOM.COM)を使用します。 このようなユーザーは、データベースに格納された自分のパスワードを変更すること以外、管理統制権限はありません。

  8. 次の例のように、adminインスタンスを使用するプリンシパルをユーザーごとに作成します。

    # kadmin.local -q "addprinc alice/admin"
  9. 管理Kerberosチケットを復号化するためにkadmindで使用するキーを/etc/kadm5.keytabにキャッシュします。

    # kadmin.local -q "ktadd -k /etc/kadm5.keytab kadmin/admin"
    # kadmin.local -q "ktadd -k /etc/kadm5.keytab kadmin/changepw"
  10. KDCおよび管理サービスを開始し、システムの再起動後に開始するように構成します。

    # service krb5kdc start
    # service kadmin start
    # chkconfig krb5kdc on
    # chkconfig kadmin on 
  11. 次の例のように、kadmin.localまたはkadminのいずれかを使用して、ユーザーのプリンシパルおよびKerberosサーバーを追加し、サーバーのホスト・プリンシパルのキーを/etc/kadm5.keytabにキャッシュします。

    # kadmin.local -q "addprinc bob"
    # kadmin.local -q "addprinc -randkey host/krbsvr.mydom.com"
    # kadmin.local -q "ktadd -k /etc/kadm5.keytab host/krbsvr.mydom.com"
  12. ポート88、464および749への着信TCP接続、およびUDPポート88、464および749でのUDPデータグラムを許可します。

    # iptables -I INPUT -s subnet_addr/prefix_length -p tcp \
      -m state --state NEW -m tcp --dport 88 -j ACCEPT
    # iptables -I INPUT -s subnet_addr/prefix_length -p tcp \
      -m state --state NEW -m tcp --dport 464 -j ACCEPT
    # iptables -I INPUT -s subnet_addr/prefix_length -p tcp \
      -m state --state NEW -m tcp --dport 749 -j ACCEPT
    # iptables -I INPUT -s subnet_addr/prefix_length -p udp \
      -m udp --dport 88 -j ACCEPT
    # iptables -I INPUT -s subnet_addr/prefix_length -p udp \
      -m udp --dport 464 -j ACCEPT
    # iptables -I INPUT -s subnet_addr/prefix_length -p udp \
      -m udp --dport 749 -j ACCEPT
    # service iptables save

    この例では、subnet_addr / prefix_lengthによって、192.168.1.0/24などのネットワーク・アドレスが指定されます。

    krb5kdcは、TCPポート88およびUDPポート88でリクエストを処理します。kadmindは、TCPポート464および749でリクエストを処理し、UDPポート464および749でリクエストを処理します。

    さらに、他のアプリケーション用に、別のポートでのTCPアクセスやUDPアクセスの許可が必要になる場合があります。

詳細は、kadmin(1)マニュアル・ページを参照してください。