web-dev-qa-db-ja.com

ユーザーがパスワードを持っていないときにパスワードの有効期限が切れないようにする方法はありますか?

さて、私たちは皆セキュリティに関心があるので、ユーザーは定期的にパスワードを変更する必要があります(パスワードは下着のようなものだと誰が言ったのですか?)。

Redhatおよびcentos(5.xおよび6.x)では、すべての実際のユーザーパスワードを45日後に期限切れにし、7日前に警告することができます。

/ etc/shadowエントリは次のようになります:

testuser:$6$m8VQ7BWU$b3UBovxC5b9p2UxLxyT0QKKgG1RoOHoap2CV7HviDJ03AUvcFTqB.yiV4Dn7Rj6LgCBsJ1.obQpaLVCx5.Sx90:15588:1:45:7:::

これは非常にうまく機能し、ほとんどのユーザーは頻繁にパスワードを変更します。

一部のユーザーは、パスワードではなくssh公開鍵を使用すると便利だと感じています(そして私はそれらを奨励したいと思います)。

その後、45日後、パスワードを忘れて変更するように求められたため、ログインできなくなりました。

パスワードが無効になっている場合にのみ、パスワードの有効期限が切れないようにする方法はありますか?

設定testuser:!!:15588:1:45:7::: in/etc/shadowが機能しませんでした:testuserは45日後にパスワードを変更するように求められます。

もちろん、パスワードの有効期限を99999日に戻すことはできますが、次のようになります。

  • 追加の作業が必要です。
  • セキュリティ監査人は満足していない可能性があります。

ユーザーが本当にパスワードを持っている場合にのみ、期限切れのパスワードを変更するようにユーザーに促すシステム全体のパラメーターはありますか?

5
user130370

ユーザーがパスワードを覚えていない場合、それは確かにユーザーがパスワードを使用する必要がないためです。 LDAPなどの一元化された認証システムを使用することをお勧めします。これにより、各ユーザーは、すべてにアクセスできるパスワードを1つだけ持つことができます。

これにより、いくつかの問題が1つで解決されます。

  • 各ホストで個別のパスワードを管理することを心配する必要はありません
  • ユーザーはパスワードが必要なため、実際にパスワードを覚えています。
  • パスワードポリシーを1つの中央の場所(LDAPディレクトリ)で管理し、必要に応じてユーザーにそこでパスワードを変更させることができます(数日前の有効期限について警告する電子メールなどを考えてください)。
  • ユーザー管理が一元化され、新しいアカウントを作成する必要がある場合、または古いアカウントを無効にする必要がある場合に、全員の時間を節約できます(「すべてのシステムでそのユーザーのアカウントをできるだけ早く無効にする」という言葉を聞いたことがない人はいますか?)
1
Jonathan Clarke

SUに関するこの回答 によると、ユーザーは、パスワードの有効期限が切れていても、秘密鍵を使用してログインできるはずです。

「鍵」とは、ユーザーが期限切れのパスワードを持っていることだと思います。秘密鍵は、ログインするためのもう1つの方法です。パスワードベースのログインを無効にしない限り(設定はsshd_configでPasswordAuthentication)、ユーザーはパスワードを使用してログインできると思います。

Sshd_configにはPermitEmptyPasswordsという別の設定があり、デフォルトは「no」です。ユーザーのパスワードを削除した場合、ログインする唯一の方法はユーザーの秘密鍵を使用することです。その時点ではパスワードがないので、おそらく有効期限はありません。

ただし、これはsshに基づいています。コンソールやsuなど、他にも注目すべき領域があります。空のパスワードをどのように処理するのかわかりません。

最後の手段として、いつでもcronにbashスクリプトを配置して、どのユーザーがキーを持っているかを確認し、それに応じて有効期限を設定することができます。また、逆のことも行います。ユーザーがキーを持っていない場合は、有効期限が離れすぎていないことを確認してください。

個人的には、すべてのユーザーに公開鍵と秘密鍵のペアを作成します。

1
Luke

従来のUNIXのpasswd/shadowファイルを使用していますか?もしそうなら、sshd設定でUsePAMを無効にしてみましたか?

OpenSSH5.8_p1でUsePAMを無効にすることをテストしましたが、PasswordAuthenticationを通過するユーザーは、アカウントの有効期限が切れると適切に拒否され、パスワードの変更を適切に求められます。キーを使用してログインする場合は何も要求されません(また、UsePAMが有効になっている場合、キーを使用するときにシステムがパスワードの変更を要求していることを確認できます)。

1
b0fh

だからあなたは経由で情報を照会することができます

chage -l username

また、次の方法でシステム全体のデフォルトを上書きできます

chage -I -1 -m 0 -M 99999 -E -1 username

設定できるものはないと思います。ユーザーはパスワードを持っていないので無視してください。

1
Mike