2026年10月11日
2026年10月11日
サーバーのパスワードポリシーを強化する方法
はじめに
パスワードはシステムのセキュリティにとって非常に重要な要素です。特に、Webサイトやアプリケーションをホストするサーバーでは、管理者アカウントやデフォルトユーザーへの不正アクセスを防ぐために、強力なパスワードポリシーが必要となります。本記事ではLinuxサーバー上でセキュリティを向上させるために、パスワードポリシーの設定と強化方法について解説します。
症状・背景
- サーバーへの不正アクセスが疑われる
- パスワードが外部に漏洩した可能性がある
- アプリケーションやサービスが脆弱性を持っている
- 管理者のパスワードを頻繁に変更する必要がある
手順・設定方法
ステップ1: パスワードポリシーファイルの確認と編集
Linuxサーバーでは、通常/etc/login.defsファイルや/etc/pam.d/common-passwordファイルにパスワードポリシーが記述されています。まずはこれらのファイルを確認し、必要に応じて編集します。
# パスワディポリシーファイルを開く
nano /etc/login.defs
# 最小文字数の設定(デフォルトは6)
PASS_MIN_LEN 12
# パスワードの有効期限を設定(デフォルトは99999日)
PASS_MAX_DAYS 90
# パスワードの無効期間を設定
PASS_WARN_AGE 7
# 変更可能になるまでの最小間隔(デフォルトなし)
PASS_MIN_DAYS 14
ステップ2: パスワード強度チェックの有効化
パスワードの強度チェックは、ユーザーが弱いパスワードを設定できないようにします。これによりサーバー全体のセキュリティを向上させることができます。
# 強力なパスワードポリシーを有効にするためのPAMモジュールをインストール
apt-get install libpam-cracklib
# /etc/pam.d/common-passwordファイルを開き、次の行を追加または編集します。
nano /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
# パスワードの最小文字数、大文字小文字数字記号の必須数を指定します。
ステップ3: SSH接続時のパスワード認証を無効化
SSH経由でサーバーにログインする際には、鍵ベースの認証の方が安全性が高いため、パスワードによる認証は無効化しましょう。
# SSH設定ファイルを開く
nano /etc/ssh/sshd_config
# 以下の行を有効にするか新規で追加します。
PasswordAuthentication no
# パスワード認証を使用しないように設定する
ステップ4: サーバーの自動ロック機能を有労化
不正なログイン試行が一定回数続くと、ユーザーが自動的にロックされるようになります。これによりサーバーへの不正アクセスを防ぐことができます。
# SSH設定ファイルを開く
nano /etc/ssh/sshd_config
# 以下の行を有効にするか新規で追加します。
MaxAuthTries 3
注意事項
- パスワードポリシーは厳しすぎると、ユーザーが適切なパスワードを覚えるのが困難になることがあります。バランスの取れた設定が必要です。
- 鍵ベース認証を有効にした後でパスワード認証を使用しないようにする場合、既存の鍵ファイルがあることを確認してください。
- 不正アクセスログを定期的にチェックし、異常な試行回数やIPアドレスがあれば対応が必要です。
まとめ
1. 強力なパスワードポリシー: パスワードの最小文字数と有効期間を適切に設定します。
2. パスワード強度チェック: PAMモジュールを使用してパスワードの複雑さを確認する。
3. SSHでの鍵ベース認証: SSH接続時のセキュリティを向上させるため、パスワード認証は無効にします。
4. 自動ロック機能: 不正なログイン試行回数を超えるとユーザーが自動的にロックされるように設定します。
5. 定期的なチェック: セキュリティの状態を確認し、必要な更新や変更を行います。
関連記事: