私の人生では、これをどこにも見つけることができないようです。誰かが私にリンクを与えることさえできれば、私は非常に感謝しています。
OpenLDAPでSSHAハッシュをオンにしようとしています。デフォルトでは、パスワードはプレーンテキストで保存されます。これは犯罪者だと思いますが、私はADの人なので、何を知っていますか。ただし、必要に応じて、ハッシュをオンにするために必要な情報を簡単に見つけることができると思います。そして、あなたは選びませんか?
'password-hash'を使用して、ハッシュアルゴリズムを変更できます。デフォルトのアルゴリズムはSSHAです(クリアテキストではありません)。
Slapdは、クライアントから送信されたパスワードがプレーンテキストの場合にのみ上記を使用し、クライアントがハッシュされたパスワードを送信している場合は、そのまま保存されることに注意してください。
例:pam_ldapで、pam_password exop(またはclear)を使用します
パスワードがハッシュ化されており、それがopenLDAPが宣伝する機能であることがわかっている場合、サーバーでパスワード強度テストはどのように実行されますか?
ハッシュ化されたパスワードを送信した場合、slapdは強度テストを実行できないため、クライアントはクリアテキストでパスワードを送信する必要があります(ppolicyにはハッシュ化されたパスワードを受け入れる/拒否するオプションがあります)。
注意:
例:通常、属性は次の形式で返されます(::結果がbase64でエンコードされていることを示します)
userPassword:: e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ=
=
$ echo e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ==|openssl base64 -d
{SSHA}B54UsfAhI7WPgqol5RCYyDu3NUjkYnUXXWicng==
LDAP仕様では、相互運用性のためにプレーンテキストのパスワードが必要です。上記のセキュリティに関するリンクは、サーバーが適用できるデフォルトのハッシュタイプのオプションを提供しますが、その影響を考慮してください。
LDAP操作の追加/変更でuserPassword
属性を保存しようとすると、userPassword
値がプレーンテキストとして保存されます。ただし、OpenLDAPのppolicy
オーバーレイモジュールのppolicy_hash_cleartext
オプションを使用してこの動作をオーバーライドできます。有効にすると、クライアントがプレーンテキストのパスワードを送信すると、デフォルトでSSHA
として保存されます。 OpenLADPでハッシュパスワードを有効にする方法の詳細については、 ここ を参照してください。
OpenLDAPは、管理者が選択できるさまざまなストレージスキームをサポートしています。アカウントの作成に使用するツールは、ハッシュを実行するように構成する必要があります。サーバーは、クライアントが要求する形式でパスワードを保存します。ハッシュが適切に行われると、ldapsearchは次のようにハッシュされたパスワードを表示します。
userPassword: {SSHA}d0Q0626PSH9VUld7yWpR0k6BlpQmtczb
詳細については、 http://www.openldap.org/doc/admin24/security.html を参照してください。
管理ツールに関しては、個人的にお勧めします http://phpldapadmin.sourceforge.net
これは古い質問ですが、それでも関連性があります。総当たり攻撃が比較的簡単なため、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 version
にopenssl passwd --help
オプションが表示されない場合は、-6
で実際のOpenSSLバージョンを確認してください。