web-dev-qa-db-ja.com

openLDAPでパスワードハッシュ(SSHA)をオンにするにはどうすればよいですか?

私の人生では、これをどこにも見つけることができないようです。誰かが私にリンクを与えることさえできれば、私は非常に感謝しています。

OpenLDAPでSSHAハッシュをオンにしようとしています。デフォルトでは、パスワードはプレーンテキストで保存されます。これは犯罪者だと思いますが、私はADの人なので、何を知っていますか。ただし、必要に応じて、ハッシュをオンにするために必要な情報を簡単に見つけることができると思います。そして、あなたは選びませんか?

8
Sevil Natas

'password-hash'を使用して、ハッシュアルゴリズムを変更できます。デフォルトのアルゴリズムはSSHAです(クリアテキストではありません)。

Slapdは、クライアントから送信されたパスワードがプレーンテキストの場合にのみ上記を使用し、クライアントがハッシュされたパスワードを送信している場合は、そのまま保存されることに注意してください。

例:pam_ldapで、pam_password exop(またはclear)を使用します

パスワードがハッシュ化されており、それがopenLDAPが宣伝する機能であることがわかっている場合、サーバーでパスワード強度テストはどのように実行されますか?

ハッシュ化されたパスワードを送信した場合、slapdは強度テストを実行できないため、クライアントはクリアテキストでパスワードを送信する必要があります(ppolicyにはハッシュ化されたパスワードを受け入れる/拒否するオプションがあります)。

注意:

  1. クライアントがssl/tlsを使用していることを確認してください(パスワードがクリアテキストで送信されないようにするため)
  2. userpassword属性には特殊文字({})が含まれているため、使用されているハッシュアルゴリズムを識別するためにbase64-dを実行する必要があります。

例:通常、属性は次の形式で返されます(::結果がbase64でエンコードされていることを示します)

userPassword:: e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ=
 =

$ echo e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ==|openssl base64 -d
{SSHA}B54UsfAhI7WPgqol5RCYyDu3NUjkYnUXXWicng==
9
Najmuddin

LDAP仕様では、相互運用性のためにプレーンテキストのパスワードが必要です。上記のセキュリティに関するリンクは、サーバーが適用できるデフォルトのハッシュタイプのオプションを提供しますが、その影響を考慮してください。

2
jeffmedcalf

LDAP操作の追加/変更でuserPassword属性を保存しようとすると、userPassword値がプレーンテキストとして保存されます。ただし、OpenLDAPのppolicyオーバーレイモジュールのppolicy_hash_cleartextオプションを使用してこの動作をオーバーライドできます。有効にすると、クライアントがプレーンテキストのパスワードを送信すると、デフォルトでSSHAとして保存されます。 OpenLADPでハッシュパスワードを有効にする方法の詳細については、 ここ を参照してください。

2
Asela

OpenLDAPは、管理者が選択できるさまざまなストレージスキームをサポートしています。アカウントの作成に使用するツールは、ハッシュを実行するように構成する必要があります。サーバーは、クライアントが要求する形式でパスワードを保存します。ハッシュが適切に行われると、ldapsearchは次のようにハッシュされたパスワードを表示します。

userPassword: {SSHA}d0Q0626PSH9VUld7yWpR0k6BlpQmtczb

詳細については、 http://www.openldap.org/doc/admin24/security.html を参照してください。

管理ツールに関しては、個人的にお勧めします http://phpldapadmin.sourceforge.net

1
anttix

これは古い質問ですが、それでも関連性があります。総当たり攻撃が比較的簡単なため、SSHA(SHA-1など)の使用は推奨されなくなりました。

より安全なハッシュアルゴリズムはSHA-512です。次のように、OpenSSL 1.1を使用して、クライアント側でより強力なハッシュを生成できます。

_generate_password_hash() {
  local plaintext; plaintext="$1"

  command printf "{CRYPT}%s" "$(openssl passwd -6 -stdin <<< "${plaintext}")"
}

これにより、次のような文字列が出力されます。

{CRYPT}$6$SGIWzAbjh.3WoQQJ$vEFlcRBQpd2fJ8dxcbojr83pjQcXcJ.InRMzNRryTQ//fMYJoCRFWAPn22EvJyDikG.MNuUqRYqQtI97Clj2F0

最初の{CRYPT}ではなく{SSHA}に注意してください。

たとえば、ldapmodifyを使用してパスワードを適用できます。

ldapmodify -h "${LDAP_Host}" -D cn=user,dc=example,dc=com -W <<EOF
dn: cn=user,dc=example,dc=com
changetype: modify
replace: userPassword
userPassword: $(_generate_password_hash NEW_PASSWORD_HERE)
EOF

LibreSSLには、使用可能なハッシュアルゴリズムの異なるセットがあることに注意してください。 openssl versionopenssl passwd --helpオプションが表示されない場合は、-6で実際のOpenSSLバージョンを確認してください。

0
Petrus Repo