Linuxでのパスワードセキュリティポリシー

Linux PAM

LinuxのPAM(Pluggable Authentication Modules)は、システム認証に関する柔軟な設定を可能にします。/etc/pam.d/system-authファイルには、以下の4つの主要な機能が含まれます。

  1. 認証管理(auth):ユーザーのIDを確認するためのモジュールです。例えば、パスワード入力を促したり、ユーザーがrootかどうかを判断します。
  2. アカウント管理(account):アカウントの属性を検証します。ログイン許可やrootユーザーの端末制限などを含みます。
  3. パスワード管理(password):ログイン前またはログアウト後の操作を定義します。ユーザーデータの開閉やファイルシステムのマウントなどが該当します。
  4. セッション管理(session):ユーザー情報を使って更新を行います。パスワード変更などの処理がこれに含まれます。

以下はsystem-authファイルの例です:

#%PAM-1.0
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet
auth        sufficient    pam_unix.so nullok try_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     required      pam_permit.so

password    requisite     pam_pwquality.so minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     required      pam_unix.so

パスワードの複雑さ設定

/etc/pam.d/system-authファイルでパスワードの複雑さを設定できます。

password    requisite     pam_pwquality.so minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 try_first_pass local_users_only retry=3 authtok_type=

フィールドの説明:

  • minlen:パスワードの最小長。
  • lcredit:小文字の使用数。
  • ucredit:大文字の使用数。
  • dcredit:数字の使用数。
  • ocredit:記号の使用数。
  • enforce_for_root:rootユーザーにも複雑さのルールを適用。

パスワード有効期限の設定

パスワードの有効期限を設定するには、/etc/login.defsファイルを使用します。このファイルは、新規作成されたユーザーにのみ影響を与えます。

PASS_MAX_DAYS   90    # パスワードの最大有効日数
PASS_MIN_DAYS   2     # パスワード変更間隔の最小日数
PASS_MIN_LEN    8     # パスワードの最小文字数
PASS_WARN_AGE   7     # パスワード有効期限前の警告日数

特定のユーザーに対して有効期限を設定するには、chageコマンドを使用します。

chage -m 5 -M 90 -I 30 -W 14 root

ログインセキュリティの設定

ログイン試行回数に基づくロックアウト機能は、pam_tally2.soモジュールによって実現されます。

auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=600

パラメーターの説明:

  • deny:連続して失敗したログイン試行回数の上限。
  • unlock_time:ロック解除までの時間(秒単位)。
  • even_deny_root:rootユーザーも制限対象にする。
  • root_unlock_time:rootユーザーのロック解除時間。

例として、次の設定を追加します。

vi /etc/pam.d/login
#%PAM-1.0 の直後に以下を追加
auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=600

タグ: linux PAM セキュリティ

10月24日 01:23 投稿