web-dev-qa-db-ja.com

MIT Kerberos5に対してWindows7を認証する

私は、Windows7をMIT Kerberos 5レルム(Arch Linuxサーバーで実行されている)に対して認証するようにしようと頭を悩ませてきました。

私はサーバー(別名dc1)で次のことを行いました:

  • インストールおよび構成されたNTPタイムサーバー
  • インストールおよび構成されたDHCPおよびDNS(ドメインtnet.locのセットアップ)
  • ソースからKerberosをインストールしました
  • データベースをセットアップします
  • キータブを構成しました
  • ACLファイルを次のように設定します:* @ TNET.LOC *
  • ユーザーとマシンのポリシーを追加しました:
 addpol users 
 addpol admin 
 addpol hosts 
 ank -policy users [email protected] 
 ank -policy admin tom/admin @TNET。 LOC 
 ank -policy hosts Host/wdesk3.tnet.loc -pw MYPASSWORDHERE 

次に、Windows 7クライアント(別名wdesk3)に対して次のことを行いました。

  • IPアドレスがDHCPサーバーから提供され、dc1.tnet.locが正常にpingされていることを確認しました
  • インターネットタイムサーバーを私のLinuxサーバー(別名dc1.tnet.loc)に設定します
  • Ksetupを使用してレルムを構成しました。
ksetup/SetRealm TNET.LOC 
 ksetup/AddKdc dc1.tnet.loc 
 ksetip/SetComputerPassword MYPASSWORDHERE 
 ksetip/MapUser * *
  • いくつかグーグルした後、DES暗号化はWindows7によってデフォルトで無効にされており、Kerberosを介したDES暗号化をサポートするためにポリシーをオンにしました
  • 次に、Windowsクライアントを再起動しました

しかし、それをすべて行った後でも、Windowsクライアントからログインできません。 :(

サーバー上のログを確認します。要求は正常に見え、すべてが正常に機能します。問題は、KDCからの応答がWindowsクライアントによって認識されず、「ログイン失敗:ユーザー名またはパスワードが無効です」という一般的なログインエラーが表示されることだと思います。

サーバーのログファイルは次のようになります(これを調整したので、Windowsマシンがログインを試行したときに発生していることがわかります):スクリーンショット: http://dl.dropbox.com/u/577250 /email/login_attempt.png

ログインウィンドウで無効なレルムを指定すると、まったく異なるエラーメッセージが表示されるので、クライアントからサーバーへの接続の問題ではないと思いますか?しかし、Windowsマシンでエラーログが見つかりませんか? (誰でも知っているこれらはどこにありますか?)

試してみると:runas/netonly /user:[email protected] cmd.exeすべてが機能します(サーバーに何も表示されませんが)ログなので、サーバーにアクセスしていないのではないかと思いますか??)、実行すると:runas /user:[email protected] cmd.exe同じ認証エラーが発生します。

次に何を試すべきかについて私にいくつかのアイデアを与えることができるKerberosの達人はいますか?かなりお願いしますか?

5
tommed

チェックアウト pGina 。 Kerberosプラグインがないため、プラグインを作成する必要があります。または、OpenLDAPをプロキシとして使用し、pGinaLDAPプラグインを使用することもできます。

3
ptman

WindowsクライアントがADが追加する標準のKerberosチケットへの小さな拡張を必要とするため、Windowsクライアントがある場合は明らかにADが絶対に必要です。

現時点では、MIT KerberosServerはそれ自体でWindowsクライアントを認証できません。

(MIT Kerberosニュースグループで取得された情報)

2
tommed

@ jyvenard-tommedがやった可能性が高いのは、SSHまたはその他の方法を使用してボックスを認証することでした。彼がSSHを使用した場合(おそらくこの状況で私が行うこと)、彼はおそらく使用ケルベロスに対して認証したホストを持っています。

このような方法では:

[クライアント]-ssh-> [ホスト]-sshのpamサポート-> [KDCサーバー]

[クライアント] <-ssh- [ホスト] <-成功または失敗-[KDCサーバー]

これは、Kerberosを使用して、KDCに対して資格情報を検証しようとするホストにSSHで接続しようとすることにより、クライアントシステムに対してユーザーを認証しますが、Kerberosチケットが実際にクライアントによって取得されることはなく、sshセッションでの成功または失敗のみです。

1
user63135