web-dev-qa-db-ja.com

KerberosとLinuxKDCを使用するWindows7NFSクライアント

KerberosとLinuxKDCを使用してLinuxNFSサーバーにNFSv4共有をマウントするようにWindows7Enterpriseクライアントを構成しようとしています。

設定は次のとおりです。

  • IPAサーバー(OS:Scientific Linux 6.4、パッケージ:ipa-server)
  • NFSサーバー(OS:Scientific Linux 6.4、パッケージ:nfs-utils)
  • Windows 7クライアント(OS:Enterprise 64ビット、機能:Client for NFS)

手順:

  1. IPAサーバーで、パスワードを使用して、Windowsクライアントのプリンシパルを作成します。

    ipa Host-add --ip-address=10.10.0.100 win7ent-client.contoso.com
    ipa-getkeytab -s ipa.contoso.com -p Host/win7ent-client.contoso.com -k win7ent-client.keytab -P
    ^
    | 
    This will create a principal and register the client with IPA server
    Set a random password - e.g. - jU96e3Urp6
    

    クライアントのNFSサービスを追加します。

    ipa service-add nfs/win7ent-client.contoso.com

  2. Windowsクライアントの場合:

    ksetup /setdomain CONTOSO.COM
    ksetup /setmachpassword <password set on step 1>
    ksetup /addrealmflags CONTOSO.COM sendaddress delegate
    ksetup /mapuser * *
    

    Windowsクライアントを再起動します。

    実行:

    ksetup.exe/DumpState

    これは現在の構成を示しています。

    default realm = CONTOSO.COM (external)
    CONTOSO.COM:
        (no kdc entries for this realm)
        Realm Flags = 0x5 SendAddress Delegate
    Mapping all users (*) to a local account by the same name (*).
    

    Windowsクライアントでローカルユーザーを作成する場合、IPAサーバーに存在する名前のパスワードは必要ありません。そうしないと、エラーが発生します-1332:アカウント名とセキュリティIDの間のマッピングが行われませんでした

    ユーザーとしてチケットを取得できることをテストします。

    runas /user:[email protected] cmd

    新しいコマンドウィンドウで、次のコマンドを実行します。

    klist

    これにより、現在のチケット情報が出力されます。

    現在のLogonIdは0:0x6c70eです

    Cached Tickets: (1)
    
    #0> Client: joe @ CONTOSO.COM
        Server: krbtgt/CONTOSO.COM @ CONTOSO.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize
        Start Time: 2/22/2014 5:22:07 (local)
        End Time:   2/23/2014 5:22:07 (local)
        Renew Time: 3/1/2014 5:22:07 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
    
  3. NFSサーバー構成

    mkdir -p /winshare/joe
    chown -R joe:joe/winshare/joe
    exportfs -o rw,sec=krb5 *:/winshare/joe
    

上記の共有をWindowsクライアントにマウントしようとすると、次のようになります。

mount -o sec = krb5 nfs.contoso.com:/winshare/joe E:

次のエラーが発生します。

ネットワークエラー-121

Type 'NET HELPMSG 121' for more information.

C:\Windows\system32>NET HELPMSG 121

The semaphore timeout period has expired.

ms-nfs41-client-x64 を使用しようとすると失敗します:

C:\ Users\joe\Desktop\ms-nfs41-client-x64> nfs_mount.exe -o sec = krb5 * nfs.contoso.com:/winshare/joe

WNetUseConnection(*:, \\nfs.contoso.com\winshare\joe) failed with error code 1231.
The network location cannot be reached. For information about network troubleshooting, see Windows Help.
  1. Sec = sysを使用したNFS共有が機能する
  2. Joeの動作中にWindows-7クライアントにログインします。
  3. Windowsロギングが機能した後のNFSサーバーへのPuTTY(MIT Windows用のKerberosクライアントを最初にインストールする場合)。

Kerberosを使用する場合、機能しないのはNFSだけです。

8
Mike

私の知る限り、この手順はおそらく必要ありません。

クライアントのNFSサービスを追加します。

ipa service-add nfs/win7ent-client.contoso.com

サーバーにはnfsサービスが必要です。

Windowsクライアントにnfsサービスが必要であることが確実な場合は、そのクライアントのホストプリンシパルとまったく同じパスワードを使用する必要があります。

さらに:サーバーでセキュアnfsを有効にしましたか?以前にCentOS 7に移行したときの詳細は覚えていません(systemctl(enable | start)nfs-secureはあなたの友達です)が、/ etc/sysconfig/nfsで探す必要があると思います。

1
Tomek