オプション 1: 無視してください
これは間違いだと思われがちですが、無視してパスワードを再入力してください。
[root@localhost ~]# passwd ユーザー root のパスワードを変更します。 新しいパスワード: 無効なパスワード: パスワードが 8 文字未満です 新しいパスワードを再入力してください: passwd: すべての認証トークンが正常に更新されました。 [root@localhost ~]#
オプション 2: パスワード ルールを設定する
この部分は、記事「Linux China」: Linux システムのパスワード ポリシーを設定する方法を参照しています。
DEB ベースのシステムでパスワードの長さを設定する
デフォルトでは、すべての Linux オペレーティング システムでは、ユーザーパスワードの長さが 6 文字以上である必要があります。この制限を下回らないことを強くお勧めします。また、本名、両親、配偶者、子供の名前、誕生日などをパスワードとして使用しないでください。初心者のハッカーでも、そのようなパスワードをすぐに解読できます。適切なパスワードは 6 文字以上で、数字、大文字、特殊記号が含まれている必要があります。
通常、DEB ベースのオペレーティング システムでは、パスワードと認証に関連する構成ファイルは /etc/pam.d/
ディレクトリに保存されます。
パスワードの最小長を設定し、 /etc/pam.d/common-password
ファイルを編集します。
$ sudo nano /etc/pam.d/common-password
次の行を見つけます。
パスワード [成功=2 デフォルト=無視] pam_unix.so 不明瞭な sha512
最後に追加のテキストを追加します: minlen=8
。ここで設定したパスワードの最小長は です 8
。
パスワード [成功=2 デフォルト=無視] pam_unix.so 不明瞭な sha512 minlen=8
ファイルを保存して閉じます。その結果、ユーザーは 8 文字未満のパスワードを設定できなくなりました。
RPM ベースのシステムでパスワードの長さを設定する
RHEL、CentOS、Scientific Linux 7.x システムでは、root として次のコマンドを実行してパスワードの長さを設定します。
# authconfig --passminlen=8 --update
パスワードの最小長を確認するには、次のコマンドを実行します。
# grep "^minlen" /etc/security/pwquality.conf
出力サンプル:
ミンレン = 8
RHEL、CentOS、Scientific Linux 6.x システムでは、 /etc/pam.d/system-auth
ファイルを編集します。
# nano /etc/pam.d/system-auth
次の行を見つけて最後に追加します。
パスワード必須 pam_cracklib.so try_first_pass retry=3 type= minlen=8
上記の設定では、パスワードの最小長は 8
文字数です。
DEB ベースのシステムでのパスワードの複雑さの設定
この設定では、パスワードに大文字、小文字、その他の文字などの文字の種類を何種類含めるかを強制します。
まず、次のコマンドを使用してパスワード品質検出ライブラリをインストールします。
$ sudo apt-get install libpam-pwquality
その後、 /etc/pam.d/common-password
ファイルを編集します。
$ sudo nano /etc/pam.d/common-password
パスワードに少なくとも 1 つの大文字が含まれるように設定するには、次の行の末尾にテキストを追加します ucredit=-1
。
パスワード必須 pam_pwquality.so retry=3 ucredit=-1
以下に示すように、パスワードには少なくとも 1文字の小文字が含まれるように設定してください。
パスワード必須 pam_pwquality.so retry=3 dcredit=-1
以下に示すように、パスワードに少なくとも 1 文字の追加文字が含まれるように設定します。
パスワード必須 pam_pwquality.so retry=3 ocredit=-1
上の例でわかるように、パスワードには少なくとも 1 つの大文字、1 つの小文字、および 1 つの特殊文字が含まれるように設定しています。許可される大文字、小文字、および特殊文字の最大数を設定できます。
パスワードで許可される文字クラスの最大数または最小数を設定することもできます。
次の例は、新しいパスワードに必要な文字クラスの最小数の設定を示しています。
パスワード必須 pam_pwquality.so retry=3 minclass=2
RPM ベースのシステムでのパスワードの複雑さの設定
RHEL 7.x / CentOS 7.x / Scientific Linux 7.x の場合:
パスワードに少なくとも 1 つの小文字が含まれるように設定するには、次のコマンドを実行します。
# authconfig --enablereq lower --update
この設定を表示するには、次を実行します。
# grep "^lcredit" /etc/security/pwquality.conf
出力サンプル:
lcredit = -1
同様に、次のコマンドを使用して、パスワードに少なくとも 1 つの大文字が含まれるように設定します。
# authconfig --enablerequpper --update
この設定を確認してください:
# grep "^ucredit" /etc/security/pwquality.conf
出力サンプル:
ucredit = -1
パスワードに少なくとも 1 つの数字を設定するには、次のコマンドを実行します。
# authconfig --enablereqdigit --update
この設定を表示するには、次を実行します。
# grep "^dcredit" /etc/security/pwquality.conf
出力サンプル:
dcredit = -1
少なくとも 1 つの他の文字を含むようにパスワードを設定するには、次のコマンドを実行します。
# authconfig --enablereqother --update
この設定を表示するには、次を実行します。
# grep "^ocredit" /etc/security/pwquality.conf
出力サンプル:
クレジット = -1
RHEL 6.x / CentOS 6.x / Scientific Linux 6.x システムでは 、root としてファイルを編集します /etc/pam.d/system-auth
。
# nano /etc/pam.d/system-auth
次の行を見つけて最後に追加します。
パスワード必須 pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
上記の設定では、パスワードには少なくとも 8
文字が含まれている必要があります。さらに、パスワードには少なくとも 1 つの大文字、1 つの小文字、1 つの数字、およびその他の文字が含まれている必要があります。
DEB ベースのシステムでパスワードの有効期限を設定する
今回は以下のようなポリシーを設定していきます。
- パスワードが使用された最大日数。
- パスワードを変更するまでに許容される最小日数。
- パスワードの有効期限が切れる前に警告する日数。
これらのポリシーを設定するには、次を編集します。
$ sudo nano /etc/login.defs
各要件の後に値を設定します。
PASS_MAX_DAYS 100 PASS_MIN_DAYS 0 PASS_WARN_AGE 7
上の例でわかるように、ユーザーは 100
1 日に 、7
パスワードの有効期限が切れる数日前から警告メッセージが表示され始めます。
これらの設定は、新しく作成されたユーザーに対して有効になることに注意してください。
既存のユーザーのパスワード変更間の最大日数を設定するには、次のコマンドを実行する必要があります。
$ sudo chage -M <日数> <ユーザー名>
パスワード変更間の最小日数を設定するには、次のコマンドを実行します。
$ sudo chage -m <日数> <ユーザー名>
パスワードの有効期限が切れる前に警告を設定するには、次のコマンドを実行します。
$ sudo chage -W <日数> <ユーザー名>
既存のユーザーのパスワードを表示するには、次のコマンドを実行します。
$ sudo chage -l sk
ここで、sk は私のユーザー名です。
出力サンプル:
最終パスワード変更 : 2017 年 2 月 24 日 パスワードの有効期限: なし パスワードが無効です : 決して使用しません アカウントの有効期限が切れる : なし パスワード変更間の最小日数: 0 パスワード変更間の最大日数: 99999 パスワードの有効期限が切れるまでの警告日数: 7
上記の出力からわかるように、パスワードは無期限です。
既存のユーザーのパスワードの有効期間を変更します。
$ sudo chage -E 24/06/2018 -m 5 -M 90 -I 10 -W 10 sk
上記のコマンドは、ユーザー sk
のパスワードの有効期限 を設定します24/06/2018
。また、パスワードを変更する最小間隔は 5
日、最大間隔は 90
日です。ユーザー アカウントは 数日後に自動的にロックされ、10
有効期限が切れる数日前に 10
警告メッセージが表示されます。
RPM ベースのシステムでパスワードの有効期限を設定する
これは DEB ベースのシステムと同じです。
DEB ベースのシステムで最近使用したパスワードを無効にする
ユーザーがすでに使用されているパスワードを設定できないように制限できます。平たく言えば、これはユーザーが同じパスワードを再度使用できないことを意味します。
これを設定するには、 /etc/pam.d/common-password
ファイルを編集します。
$ sudo nano /etc/pam.d/common-password
次の行を見つけて、最後にテキストを追加します remember=5
。
パスワード [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 remember=5
上記のポリシーにより、ユーザーは最後の 5 つのパスワードを使用できなくなります。
RPM ベースのシステムで最近使用したパスワードを無効にする
これは、RHEL 6.x および RHEL 7.x、およびその派生システムである CentOS および Scientific Linux についても同様です。
ファイルを root として編集します /etc/pam.d/system-auth
。
# vi /etc/pam.d/system-auth
以下の行を見つけて、最後にテキストを追加します remember=5
。
十分なパスワード pam_unix.so sha512 シャドウ nullok try_first_pass use_authtok remember=5
これで、Linux のパスワード ポリシーと、DEB および RPM ベースのシステムで異なるパスワード ポリシーを設定する方法を理解できました。
以上です。もうすぐ、ここで興味深く役立つ投稿をまたお届けする予定です。それまでお待ちください。このチュートリアルが役に立ったと思われた場合は、ソーシャルネットワークやプロフェッショナルネットワークで共有し、私たちをサポートしてください。