Red Hat Training

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

33.3. Kerberos 対応の NFS サーバーの設定

Identity Management を使って Kerberos 対応の NFS サーバーを設定することができます。

注記

NFS サーバーは Red Hat Enterprise Linux 上で稼働する必要はありません。

33.3.1. Kerberos 対応の NFS サーバーの設定

  1. IdM ツールを実行する前に Kerberos チケットを取得します。
    [jsmith@server ~]$ kinit admin
  2. NFS ホストマシンが IdM ドメインにクライアントとして追加されていない場合は、ホストエントリーを作成します。「ホストエントリーの追加」 を参照してください。
  3. IdM ドメインで NFS サービスエントリーを作成します。例を示します。
    [jsmith@server ~]$ ipa service-add nfs/nfs-server.example.com
  4. ipa-getkeytab コマンドで NFS サーバー用の NFS サービス keytab を作成し、キーをホスト keytab に直接保存します。例を示します。
    [jsmith@server ~]$ ipa-getkeytab -s ipaserver.example.com -p nfs/nfs-server.example.com -k /etc/krb5.keytab

    注記

    サービスエントリーをチェックして、NFS サービスが IdM で適切に設定されていることを keytab で確認します。
    [jsmith@server ~]$ ipa service-show nfs/nfs-server.example.com 
    Principal: NFS/nfs-server.example.com@EXAMPLE.COM 
    Keytab: True

    注記

    この手順では、ipa-getkeytab が実行可能な Red Hat Enterprise Linux または UNIX システム上で、NFS サーバーが稼働していることを想定しています。
    NFS サーバーが ipa-getkeytab を実行できないシステム上で稼働している場合は、システムツールを使って keytab を作成します。これには、以下の 2 つを実行する必要があります。
    • キーは /root (またはそれに相当する) ディレクトリー内で作成する必要があります。
    • ktutil コマンドは、キーをシステムの /etc/krb5.keytab ファイルにマージすることができます。このツールの使用方法は、ktutil man page で説明されています。
  5. NFS パッケージをインストールします。
    [root@nfs-server ~]# yum install nfs-utils
  6. weak crypto のサポートを設定します。これは、ドメイン内の いずれかの クライアント (Red Hat Enterprise Linux 5 クライアントのような) が DES といった古い暗号化オプションを使用する場合に、すべての NFS クライアントで必要になります。
    1. krb5.conf ファイルを編集して、weak crypto を許可します。
      [root@nfs-server ~]# vim /etc/krb5.conf
      
      allow_weak_crypto = true
    2. IdM サーバーの Kerberos 設定を更新し、DES 暗号化タイプに対応させます。
      [jsmith@ipaserver ~]$ ldapmodify -x -D "cn=directory manager" -w password -h ipaserver.example.com -p 389
      
      dn: cn=EXAMPLEREALM,cn=kerberos,dc=example,dc=com
      changetype: modify
      add: krbSupportedEncSaltTypes
      krbSupportedEncSaltTypes: des-cbc-crc:normal
      -
      add: krbSupportedEncSaltTypes
      krbSupportedEncSaltTypes: des-cbc-crc:special
      -
      add: krbDefaultEncSaltTypes
      krbDefaultEncSaltTypes: des-cbc-crc:special
  7. ipa-client-automount コマンドを実行して NFS 設定を設定します。
    デフォルトでは、/etc/sysconfig/nfs ファイル内でセキュアな NFS が有効になり、IdM DNS ドメインを /etc/idmapd.conf ファイル内の Domain パラメーターに設定します。
  8. /etc/exports ファイルを編集して、Kerberos 情報を追加します。
    /export  *(rw,sec=krb5:krb5i:krb5p)
  9. NFS サーバーと関連サービスを再起動します。
    [root@nfs-server ~]# systemctl restart nfs.service
    [root@nfs-server ~]# systemctl restart nfs-server.service
    [root@nfs-server ~]# systemctl restart nfs-secure.service
    [root@nfs-server ~]# systemctl restart nfs-secure-server.service
  10. 「Kerberos 対応の NFS クライアントの設定」 の説明にしたがって、NFS サーバーを NFS クライアントとして設定します。

33.3.2. Kerberos 対応の NFS クライアントの設定

  1. IdM ツールを実行する前に Kerberos チケットを取得します。
    [jsmith@server ~]$ kinit admin
  2. NFS クライアントが IdM ドメインにクライアントとして登録されていない場合は、「ホストエントリーの追加」 にあるように必要なホストエントリーを作成します。
  3. ipa-client-automount コマンドを実行して NFS 設定を設定します。
    デフォルトでは、/etc/sysconfig/nfs ファイル内でセキュアな NFS が有効になり、IdM DNS ドメインを /etc/idmapd.conf ファイル内の Domain パラメーターに設定します。
  4. GSS デーモンを起動します。
    [root@nfs-client-server ~]# systemctl start rpc-gssd.service
    [root@nfs-client-server ~]# systemctl start rpcbind.service
    [root@nfs-client-server ~]# systemctl start nfs-idmapd.service
  5. ディレクトリーをマウントします。
    [root@nfs-client-server ~]# echo "$NFSSERVER:/this /mnt/this nfs4 sec=krb5i,rw,proto=tcp,port=2049"  >>/etc/fstab
    [root@nfs-client-server ~]# mount -av
  6. クライアントシステム上の SSSD がホームディレクトリーを管理し、Kerberos チケットを更新するように設定します。
    1. --enablemkhomedir オプションで SSSD を有効にします。
      [root@nfs-client-server ~]# authconfig --update --enablesssd --enablesssdauth --enablemkhomedir
    2. OpenSSH クライアントを再起動します。
      [root@nfs-client-server ~]# systemctl restart sssh.service
    3. SSSD 設定ファイルの IdM ドメインセクションを編集し、keytab 更新オプションを設定します。
      [root@nfs-client-server ~]# vim /etc/sssd/sssd.conf
      
      [domain/EXAMPLE.COM]
      cache_credentials = True
      krb5_store_password_if_offline = True
      ipa_domain = example.com
      id_provider = ipa
      auth_provider = ipa
      ...
      krb5_renewable_lifetime = 50d
      krb5_renew_interval = 3600
    4. SSSD を再起動します。
      [root@nfs-client-server ~]# systemctl restart sssd.service