web-dev-qa-db-ja.com

ユーザーがADに保存されている場合、WindowsマシンはKerberosを使用してSambaに対して認証できますか?

タイトルがはっきりしないのではないかと思いますが、これ以上のことは考えられませんでした。

2つのドメインがあります。それらをexample.comsubnet.example.comと呼びましょう。前者はActiveDirectoryサーバーによって管理され、一部のサーバーとすべてのWindowsクライアントを収容します。後者は多くのUnixマシン(主にSolaris)を収容しています。レルムSUBNET.EXAMPLE.COMからEXAMPLE.COMへの一方向の信頼があります。

この設定では、sshログイン、NFSv4などの通常のものが正常に機能します。

さて、私がやりたいのは、subnet.example.comのUnixマシンでSambaサーバーを実行することです。 Windowsユーザーは、これらのサーバー上のファイルにアクセスできる必要があります。

SambaでKerberos認証を設定しましたが、どのLinuxクライアントからでも完全に機能します。 Kerberos TGTを使用している場合、smbclientを介してマシンにアクセスできますが、ドロップすると動作を停止します。ユーザーマッピングは期待どおりに機能します。マシンには、MIT Kerberosサーバーにcifs/hostnameエントリがあります。

ただし、Windowsクライアントは同じことを行うことができません。 Sambaログを見ると、SambaサーバーがADサーバーと通信しようとしていることがわかりますが、SambaサーバーがADドメインに参加していないため、これを行うことは許可されていません。

それで、あなたが尋ねるのを聞きます:"なぜあなたはただADドメインに参加しませんか?"。答えは、サブネット上のシステムは、1日に何度もインストールおよび再インストールされるテストシステムであり、AD管理者にこれを構成(および削除)させたくないため、それを行うことができないということです同様に)テストシステムがインストールまたはオフラインになるたび。

その上、すべてがLinuxクライアントに対して完全に機能するため、これを何らかの方法で機能させることができるはずだと私は信じています。

だから、私の質問は:これも可能ですか? Windowsには、通常のKerberosレルムのクライアントになれないという制限がありますか?もしそうなら、この問題の最善の回避策は何でしょうか?

2

私は問題を解決しました。問題は、Windowsクライアントがsubnet.example.comが別のレルムに属していることを知らなかったことです。解決策は、これをクライアントに通知することです。これは、次の2つのコマンドで実行できます。これは、Unixシステムのkrb5.confにドメイン情報を追加するのと似ていると思います。

ksetup /addkdc SUBNET.EXAMPLE.COM hostname.of.kerberos.server
ksetup /addhosttorealmmap .subnet.example.com SUBNET.EXAMPLE.COM

これを行った後、クライアント認証は期待どおりに機能しました。

2