web-dev-qa-db-ja.com

PAMのパスワード要件を無効または変更するにはどうすればよいですか?

私はFedora 19を使用しています。デフォルトでは、「password」のような不正なパスワードを無効にするようにpamが設定されています。これはいい。このデフォルトを変更しようとすると腹立たしいです。 これは、インターネットに接続されていない、内部にあるものをテストするためのボックスでもありません。不正なパスワードは、テストプロセスを容易にします。または、パスワードの要件をどのように変更するのですか?

システム認証

man pam_cracklibには、さまざまなパスワード要件を設定する優れた例がいくつかあります。だから私は/etc/pam.d/system-auth、ここには次のような行があります。

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

*ヘッドデスク*。私の経験では、このような警告は、パッケージマネージャーが実行されるたびに、またはランダムに変更がワイプされることを意味します。

authconfig

だから...authconfigは次のステップです。 「authconfig」という名前のすべてのファイルを探します。 /etc/sysconfig/authconfigは有望に見えます。そして、気まぐれで私の編集を破壊することについて上部に警告はありません。この行を見つけるUSEPWQUALITY=yesと変更します。今私は実行します:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

wtf。だから読みましょうman authconfig少し近づきました。ああ!そのファイルはauthconfigによってreadされていないようです、それはchangedです。だから... authconfigをどのように設定しますか?マニュアルはsystem-config-authentication、私がインストールし、pam_pwqualityを無効にするチェックボックスに似たものを何も提供していません。マニュアルからの次の提案は、コマンドラインオプションです。すごい!コマンドラインツールが大好きです。ただ、文書化されたコマンドラインオプションはいずれもpam_pwqualityを無効にしません。

pwquality.conf

Aaronの回答のおかげで、数年前にFedoraが/etc/security/pwquality.conftheパスワードの品質要件を構成する場所。残念ながら、ファイルとman 5 pwquality.conf、そこには(1)辞書のチェックを無効にする方法がなく、(2)許可されたパスワードの長さを6未満に設定できません。

9
djeikyb

/usr/sbin/authconfig/usr/share/authconfig/authinfo.pyのソースコードをざっと見てみます。

  • マニュアルページは不完全です。スクリプトが受け入れるオプションの完全なリストはauthconfig --helpにあります
  • コマンドラインですべてを上書きできます(パスワードの最小長などの/etc/security/pwquality.conf設定も)except pwquality自体。私見、これはバグであり、報告する必要があります。
  • authinfo.py行2489および2156から:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...
    

    最初にreadSysconfig/etc/sysconfig/authconfigを読み取ります。次に、そこに置いたものがreadPAMによって/etc/pam.d/*内のもの(特にpassword_auth*およびsystem_auth*)で上書きされます。

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)
    

TL; DR:オーバーライドされない(またはオーバーライドできない)オプションの場合、設定は現在の構成から取得され、自動生成のタグが付けられたファイルが含まれます 。これを機能させるには、/etc/sysconfig/authconfigを編集しますおよびgrep -E pwq\|crack /etc/pam.d/*で示される行を削除します


Edit:2番目のバグがあり、上記のアドバイスがまだ機能していません:2248行目:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

品質管理の2つの実装のうち1つを選択する必要があります。そうしないと、1つが選択されます。最初のバグと組み合わせると、これを無効にすることができなくなります。

4
eddygeek

_system-auth_ファイルを手動で制御できます。新しいファイルを作成し(_system-auth-ac_のコピーから開始できます)、新しいファイルを指すように_system-auth_シンボリックリンクを変更します。

これにより、authconfigがシンボリックリンクまたはそれが指すファイルにアクセスしなくなるため、PAM構成のこの部分を更新する必要があります。ただし、authconfigは引き続き_system-auth-ac_ファイルを更新するため、必要に応じて参照として引き続き使用できます。多少の賢さがあれば、それをローカルコピーにincludeすることもできますが、その方法はこの質問の範囲を超えています。

_password-auth_などの他のシンボリックリンクも確認する必要があります。あなたは彼らに同じ扱いをする必要があるかもしれません。


authconfig(8)マンページのFilesの下:

_/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 
_

したがって、_system-auth_がファイルの場合、authconfigはそれを_system-auth-ac_にリンクするように変更します。ただし、_system-auth_がシンボリックリンクの場合、authconfigはそれをそのままにします。

2
Jander

/etc/security/pwquality.confで設定できるようです

ソース: https://fedoraproject.org/wiki/Features/PasswordQualityChecking

1
Aaron Okano

コマンドラインから変更することもできます。警告が表示されますが、短すぎるパスワードや、複雑さのルールを満たさないパスワードを設定できます。

1
user280281

私は関連する検索に基づいてこの質問を見つけました。私はあなたに答えがあると思います。

Fedoraはauthconfigが生成したファイルへのシンボリックリンクを作成します。つまり、system-authsystem-auth-acにリンクしています。 system-authを独自のファイルにすると、理論的にはauth-configによって行われる今後の変更はすべてsystem-auth-acを更新しますが、変更したファイルは変更しません。

それは実際には非常にエレガントですが、*-acファイルが何をしたのか疑問に思ったときにのみ、それを発見しました。

0
Cyclone