DMZ 内の読み取り専用 Windows KDC に対して認証するための LAMP サーバーの Kerberos 構成

DMZ 内の読み取り専用 Windows KDC に対して認証するための LAMP サーバーの Kerberos 構成

背景:

当社には、VPN経由で接続され、AD信頼関係を確立したADネットワーク(ドメイン)が多数あります。外部にホストされたWebサーバーがあり、シームレスな認証信頼できるネットワーク内のすべてのユーザーに対して。これは機能しますが、IT 部門によって管理されていない外部 Web サーバーへの VPN の存在は、ネットワーク チームによってセキュリティ リスクが大きすぎると判断されました。

内部ネットワークへの管理者アクセス権はありませんが、Web サーバーに対する完全な管理者アクセス権はあります。

をしたい:

DMZ 内の読み取り専用 DC を使用してすべての認証要求を処理することにより、VPN なしで同じシームレスな認証を確立します。

詳細:

  1. 当社には、相互に信頼され、VPN トンネルを介して接続された多数の AD ドメインがあります。
  2. メインADネットワークに接続されたDMZに読み取り専用DCがあります
  3. 外部LAMPウェブサーバー - 新しい構成をテストするために単一のインスタンスを使用しています

完了したタスク:

  1. DMZ DCをホストファイルに追加しました
  2. krb5.conf ファイルを更新し、単一のレルムとドメイン (domain1) を DMZ DC に関連付けました。
  3. kinit を使用してコマンドラインで認証をテストしました (動作しました)
  4. すべてのドメインが DMZ DC を指すように、追加のレルムとドメイン レルム マッピングを使用して krb5.conf ファイルを更新しました。
  5. 追加のレルムの 1 つからのユーザーを使用してコマンド ラインで認証をテストしましたが、失敗しました。

現在の設定の例

/etc/hosts/ : (機密保持のため、実際の IP を x に、実際のドメイン名を置き換えました)

xxx.xxx.xxx.xxx  dc01.domain1.com, dc01.domain2.com, dc01.domain3.com, dc01.domain4.com

/etc/krb5.conf:

[libdefaults]
 default_realm = REALM1.COM
 dns_lookup_realm = true
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 clockskew = 12000
 kdc_timesync = 1

[realms]
 REALM1.COM = {
  kdc = dc01.domain1.com
  admin_server= dc01.domain1.com
 }
 REALM2.COM = {
  kdc = dc01.domain2.com
  admin_server= dc01.domain2.com
 }
 REALM3.COM = {
  kdc = dc01.domain3.com
  admin_server= dc01.domain3.com
 }
 REALM4.COM = {
  kdc = dc01.domain4.com
  admin_server= dc01.domain4.com
 }

問題:

DMZ は信頼されたドメインの認証要求を処理していません。これが DC の構成の結果なのか、Kerberos 構成の結果なのかはわかりませんが、そのため支援を求めています。

serverfault の他の質問を調べたり、グーグルで検索したり、チュートリアルを読んだりするのに数時間を費やしましたが、私たちのシナリオに一致するものは何もないようです。

私たちが試みていることは実行できますか? 実行できる場合、それを機能させるには何をする必要がありますか? DMZ を他のレルムの kdc のプロキシとして設定するだけの簡単なケースですか?


Nathan C への返答として、セキュリティ ログには次のような Kerberos サービス チケットの要求が表示されます。

監査成功 2014/05/14 11:05 Microsoft-Windows-Security-Auditing 4769 Kerberos サービス チケット操作 「Kerberos サービス チケットが要求されました。

アカウント情報: アカウント名: [メールアドレス] アカウント ドメイン: DOMAIN1.COM ログオン GUID: {C93D9AAC-6968-6C00-83EF-2C2D54E2363B}

サービス情報: サービス名: RODC01$ サービス ID: DOMAIN1\RODC01$

ネットワーク情報: クライアント アドレス: ::1 クライアント ポート: 0

追加情報: チケットオプション: 0x40810000 チケット暗号化タイプ: 0x17 失敗コード: 0x0 転送されたサービス: -

このイベントは、コンピューターや Windows サービスなどのリソースへのアクセスが要求されるたびに生成されます。サービス名は、アクセスが要求されたリソースを示します。

このイベントは、各イベントのログオン GUID フィールドを比較することで、Windows ログオン イベントと相関させることができます。ログオン イベントはアクセスされたマシンで発生しますが、多くの場合、サービス チケットを発行したドメイン コントローラーとは異なるマシンです。

チケット オプション、暗号化タイプ、および失敗コードは、RFC 4120 で定義されています。

残念ながら、私に送られてきたログの抜粋は、私が認証を試みていた時間と一致しないため、そのログ エントリが実際に何に関連しているのかわかりません。別の抜粋をリクエストしました。


口座情報:

アカウント名: jameel.rahmaa

指定されたレルム名: DOMAIN1.COM

ユーザーID: NULL SID

サービス情報:

サービス名: krbtgt/DOMAIN1.COM

サービス ID: NULL SID

ネットワーク情報:

クライアントアドレス: [WEB IP HIDDEN]

クライアントポート: 34567

追加情報:

チケットオプション: 0x40800000

結果コード: 0x6

チケット暗号化タイプ: 0xffffffff

事前認証タイプ: -

証明書情報:

証明書発行者名:

証明書のシリアル番号:

証明書の拇印:

証明書情報は、事前認証に証明書が使用された場合にのみ提供されます。

事前認証タイプ、チケット オプション、暗号化タイプ、および結果コードは、RFC 4120 で定義されています。

理由は分かりませんが、私の名前の最後の文字が切り取られてしまいました。

答え1

0x6. KDC_ERR_C_PRINCIPAL_UNKNOWNそうです...これを調査してください。SPN が正しく設定されていないか、存在しないアカウントを使用しようとしているようです。Wireshark は、Web サーバーで実行して、要求時に DC から取得される内容を確認できるもう 1 つの優れたツールです。

関連情報