kerberos preauth pkinitの初期化に失敗しました:pkinitをサポートするためにゾーンが正しく構成されていません。

kerberos preauth pkinitの初期化に失敗しました:pkinitをサポートするためにゾーンが正しく構成されていません。

Debian wheezyにKerberosを正常にインストールし、kinitでKerberosチケットを使用してサービス認証(Apache、ssh)を実行できます。

パスワードの代わりにkinit(pkinit)証明書を使用したいと思います。

説明した手順に従いました。ここ

次のコマンドを使用して認証しようとしています。

kinit -C FILE:client.pem,client.key [email protected]

返されたパスワードが正しくありません。

私は問題がクライアントではなくサーバーにあると確信しています。クライアントは pkinit を使用すると Wireshark から証明書を送信します。 kdcはAS-REPを提供しないため、クライアントは一般的な「パスワードが正しくありません」というエラーメッセージを受け取ることがあります。これは、チケットが入力されていないため、チケットを復号化できないことを意味します。

私はこのサーバーの/etc/krb5.conf設定で終わりました。

[realms]
 MAYTACAPAC.INC = { 
  kdc             = kerberos.maytacapac.inc
  admin_server    = kerberos.maytacapac.inc
  default_domain  = maytacapac.inc
  detabase_module = openldap_ldapconf

  kdc_tcp_ports   = 88
  allow_pkinit    = yes 
  pkinit_identity = FILE:/root/pkinit/kdc.pem,/root/pkinit_wiki/kdc.key
  pkinit_anchors  = FILE:/root/pkinit/ca.pem
  module          = pkinit:/usr/lib/x86_64-linux-gnu/krb5/plugins/preauth/pkinit.so
} 

その後、krb5-kdcサービスを開始しましたが、ログファイルに次のメッセージがあります。

# systemctl -l status krb5-kdc
● krb5-kdc.service - Kerberos 5 Key Distribution Center
Loaded: loaded (/lib/systemd/system/krb5-kdc.service; enabled)
Drop-In: /lib/systemd/system/krb5-kdc.service.d
       └─slapd-before-kdc.conf
Active: active (running) since Fri 2016-04-29 14:59:57 CEST; 1min 3s ago
Process: 1042 ExecStart=/usr/sbin/krb5kdc -P /var/run/krb5-kdc.pid $DAEMON_ARGS (code=exited, status=0/SUCCESS)
Main PID: 1043 (krb5kdc)
CGroup: /system.slice/krb5-kdc.service
       └─1043 /usr/sbin/krb5kdc -P /var/run/krb5-kdc.pid
Apr 29 14:59:57 kerberos krb5kdc[1042]: preauth pkinit failed to initialize: No realms configured correctly for pkinit support
Apr 29 14:59:57 kerberos krb5kdc[1042]: setting up network...
Apr 29 14:59:57 kerberos krb5kdc[1042]: listening on fd 8: udp 0.0.0.0.88 (pktinfo)
Apr 29 14:59:57 kerberos krb5kdc[1043]: commencing operation

これはこちらに問題があることを示します。

私は成功せずにしばらくこのエラーを検索してきました。 kinitはパスワードの確認にはまだうまく機能します。

修正する

証明書をデフォルトのディレクトリ/var/lib/krb5kdcに配置しました。サーバーを再起動すると、説明したエラーがログから消えます。

ただし、クライアントサーバーからTGTをインポートしようとするとエラーが発生します。サーバーログに次の情報が表示されます。

preauth (pkinit) verify failure: Key parameter not accepted

クライアント側で、次のエラーメッセージが表示されます。

kinit: krb5_get_init_creds: PREAUTH_FAILED

Wiresharkはas-reqに応答してこのエラーを表示します。

KDC_ERR_KEY_TOO_WEAK

client/etc/krb5.conf に pkinit_dh_min_bits=1024 を設定しました。今働いてチケットを受け取りました\o/

しかし、dh交換のために少なくとも2048ビット長のキーを使用することを好みましたが、今は使用できません(同じ最後のエラーが発生しました)。

クライアントは1024ビットdhパラメータを使用しようとしていますが、サーバーは接続を拒否して閉じているようです。クライアント/etc/krb5.confのpkinit_dh_min_bits = 2048が効果がないため、クライアントにdhパラメータの2048ビット以上を提供するように強制する方法がわかりません。

ベストアンサー1

おすすめ記事