TL;DR
LPIC303試験のハンズオン学習です。
pam_pwquality.soを使ったパスワード複雑性ポリシーの設定を行います。
また、LPIC202試験の復習もかねて、PAMの設定について補足します。
今回の参考書はこちらです。
PAMの設定については202試験の参考書より記載しております。
パスワード複雑性ポリシーの設定
/etc/pam.d/system-auth または /etc/pam.d/password-auth のいずれかに設定を記載します。
この二つのファイルは初期状態では同じ内容が記載されています。(調査環境はRocky Linux release 8.5)
ただし、 /etc/pam.d/system-auth > /etc/pam.d/password-auth という順に読み込みが行われるようです。
初期設定状態では以下のような内容になっています。
vi /etc/pam.d/system-auth

PAMの設定ファイルの見方
PAMの設定ファイルの配置場所
/etc/pam.d
PAMの設定ファイルの書式
モジュールタイプ コントロール モジュールのパス 引数
モジュールタイプ
タイプ | 説明 |
auth | ユーザー認証を行う。 |
account | ユーザー認証ができるか確認する。 |
password | パスワードの設定と変更に使用される。 |
session | ユーザー認証の前後に実行すべき処理を指定する。 |
主なコントロール
タイプ | 説明 |
requisite | モジュールの実行に失敗すれば、すぐに認証を拒否する。 |
required | モジュールの実行に失敗してもすぐには拒否せず、同じタイプのモジュールの実行がすべて完了した時点で、認証を拒否する。 |
sufficient | モジュールの実行に成功した場合、より上位のrequired行がすべて成功であれば、その時点で認証を成功とする。 失敗した場合は引き続き評価を行う。 |
include | 指定したファイルの設定を読み込んで処理する。 |
pam_pwquality.soの主な引数
項目 | 説明 |
minlen=N | パスワード全体でN文字以上でなくてはならない。デフォルトは9文字 |
dcredit=-N | パスワードにN文字以上の数字を含めなければならない。 |
ucredit=-N | パスワードにN文字以上の大文字の英文字を含めなければならない。 |
lcredit=-N | パスワードにN文字以上の小文字の英文字を含めなければならない。 |
ocredit=-N | パスワードにN文字以上の記号を含めなければならない。 |
retry=N | エラーとなるまでの試行回数を指定。 |
difok=N | 変更前のパスワードとN文字以上違っていなければならない。 |
設定例
以下はパスワードの最低文字数を8、パスワードに数字・大文字・小文字・記号を最低1つ以上含むパスワードを要求する。
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1