パスワード認証を失敗時にアカウントをロックアウトする設定

“pam_tally2″モジュールを使うとパスワード認証を失敗時に、ある一定時間アカウントをロックアウトする事が出来ます。

以下、下記資料を参考に設定しました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』

1)設定方法


 
“/etc/pam.d/system-auth”に下記2箇所の設定を行います。
 
①”auth”部の先頭に下記設定を追加
 
auth required pam_tally2.so deny=5 onerr=fail unlock_time=900
 
※オプションの説明
・onerr=[fail|succeed]
 何か予期せぬことが起きた場合にPAM_SUCCESS(onerr=succeedの場合)または、該当するPAMエラーコードを返す。
 
・unlock_time=n
 アクセスに失敗した場合、n秒後にロック解除される。
 
・deny=n
 アクセス試行回数がn回を超えたらアクセスを拒否する。
 
②”account”部の先頭に下記設定を追加
 
account required pam_tally2.so
 

2)ロックアウトされたアカウントを手動で解除するには?


 
下記コマンドでロックアウトされたユーザーアカウントを手動で解除出来ます。
 
# /sbin/pam_tally2 –user ユーザー名 –reset
 

3)設定確認


 
上記1)の設定後動作確認しました。
 
①suコマンドでパスワードを5回間違えた場合の例
 

$ su - testuser
Account locked due to 5 failed logins
Password:
su: incorrect password

 
②手動でロックアウトを解除
 

# /sbin/pam_tally2 --user testuser --reset
Login           Failures Latest failure     From
testuser            5    01/20/14 11:18:59  pts/2

 

4)注意点


 
この設定によってパスワード推測攻撃に対するリスクを軽減できますが、逆にDOS(denial-of-service)攻撃によってシステムが使用できなくなるリスクは増大するので注意します。

関連記事の目次
 
ネットワーク、ポート番号
  • iptablesを使ってCentOSのファイアウォール設定
  • nmapでオープンしているポート番号とバージョンを確認
  •  
    yum、rpmパッケージ、サービス
  • CentOSで不要なサービスは起動しないようにする
  • RPMパッケージのインテグリティチェック
  •  
    パーミッション
  • cronで使用するファイルのパーミッション設定
  • CentOSのumaskの設定
  • ユーザーホームディレクトリ内の権限設定をセキュアにする
  • CentOSのパスワードファイルのパーミッション設定
  • findコマンドでファイル書込権限をいっせいにチェック
  • findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
  • findコマンドで所有者、グループが存在しないファイルを抽出
  •  
    ログイン、認証、パスワード、アカウント制御
  • ログイン時などに表示されるシステムバナーを変更するには?
  • CentOSのユーザーアカウントのパスワードポリシーを設定
  • pam_cracklibモジュールでパスワードポリシーを設定
  • pam_unix.soモジュールを使って過去のパスワード再使用を制限する
  • システムコンソールでのrootログインを制限する方法
  • suコマンドによるrootへのスイッチを制限する
  • root権限でのコマンド実行、sudoだと監査ログが取得できる
  • デーモン用アカウントなどに対しシェルを使用を無効にする
  • パスワード認証を失敗時にアカウントをロックアウトする設定
  • rootアカウントのPATH環境変数のセキュリティについて
  •  
    auditdでシステム監査
  • auditdを使ってシステム監査
  • auditdのログ容量の設定
  • auditd監査ルールの設定方法
  • auditdで時間設定変更操作を監査する
  • auditdでユーザー・グループ設定ファイル変更操作を監査する
  • auditdでネットワーク関連の設定変更を監査する
  • auditdでログイン記録のログファイルの変更を監査する
  • auditdでファイル所有者や権限の変更に関するイベントを監査する
  • auditdでsetuid、setgidプログラムの実行を監査する
  • auditdでマウント操作を監査する
  • auditdでファイル削除操作を監査する
  • auditdでsudo設定ファイルに対する操作を監査する
  • auditdでカーネルモジュールのロード、アンロードを監査する
  • マシン再起動後にauditdの設定変更を有効にする設定
  • ausearch、aureportで監査ログのサマリレポートを作成
  •  
    ツール
  • NTPのセキュリティを考慮した設定
  • セキュリティを考慮してX Windowsを設定または削除する方法
  • ファイルの改ざん対策用にTripwireを導入
  • CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
  •  
    トラブルシューティング
  • アイドルのシェルを自動で強制終了させるには?
  • CentOSでコアダンプを無効にする方法
  • Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
  • CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です