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. 定期的なチェック: セキュリティの状態を確認し、必要な更新や変更を行います。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ
▲