web-dev-qa-db-ja.com

ldapsearchおよびkerberos認証

Ldapsearchを使用してActive Directoryドメインコントローラーに正常に接続して検索できます。ユーザー名/パスワード認証を指定するために-xオプションを使用しています(-Wによってパスワードが指定され、-Dによってユーザー名が指定されています)。

現在、MIT-kerberosドメインからディレクトリをダンプする必要があります。 Kerberosは、認証に使用できる唯一のプロトコルです。 kinitを使用して、Kerberos TGTチケットを取得できます。私はこれらのコマンドラインを使用しています:

ldapsearch  -Y SASL -b "REALM.INC" -H ldap://kerberos_IP_address
-> ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
  additional info: SASL(-4): no mechanism available: No worthy mechs found

ldapsearch -o "mech=GSSAPI" ...
-> Invalid general option name: mech

Ldapsearchを使用して、Kerberosで認証するにはどうすればよいですか?

あなたの助けと返信に感謝します

4
philippe

libsasl2-modules-gssapi-mit パッケージ。

なし:

# ldapsearch -H ldap://dc1 -Y GSSAPI -b 'DC=ad-test,DC=vx'
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
    additional info: SASL(-4): no mechanism available: No worthy mechs found

インストール:

# apt install libsasl2-modules-gssapi-mit

と:

# ldapsearch -H ldap://dc1 -Y GSSAPI -b 'DC=ad-test,DC=vx'
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 256
SASL data security layer installed.
...

SASLはデフォルトで有効になっており、互換性のあるメカニズムを自動検出するため、-Y GSSAPIも必要ありません。

# ldapsearch -H ldap://dc1 -b 'DC=ad-test,DC=vx'
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 256
SASL data security layer installed.
...
3

-YはSASLメカニズムを指定するために使用されます。これはおそらくGSSAPIですが、GSS-SPNEGO。また、ベースdnはdn構文である必要があります(つまり、dc=example,dc=com)、ドメイン構文ではありません(example.com)。

$ ldapsearch -x -b '' -s base supportedSASLMechanisms -H ldap://192.0.2.1/
dn:
supportedSASLMechanisms: GSSAPI

$ ldapsearch -Y GSSAPI -b dc=example,dc=com -H ldap://192.0.2.1/

$ ldapsearch -x -b '' -s base supportedSASLMechanisms -H ldap://192.0.2.2/
dn:
supportedSASLMechanisms: GSS-SPNEGO
supportedSASLMechanisms: GSSAPI
1
84104

ldapsearchとOSのバージョンに応じて、まずkinitを使用してkerberosに認証し、チケットを "キャッシュ"し、それをkerberos env変数で使用し、次にldapsearchにこの変数を使用させることができます。

kinit -c /tmp/<yourlogin>.cc.tmp <yourlogin>
export KRB5CCNAME=/tmp/<yourlogin>.cc.tmp
ldapsearch -Tx -h <Host> -p <port> -Y GSSAPI -b "dc=example,dc=com" cn=*
1
olivierg