# VPS サーバーのセキュリティ対策:fail2ban 導入完全ガイド
VPS サーバーの Ubuntu に総当たりブルートフォース攻撃を受けているようだったため、fail2banを導入しました。本記事では、fail2ban の導入から設定、動作確認まで詳しく解説します。
# 環境
| 項目 | 内容 |
|---|---|
| OS | Ubuntu 22.04 |
| 目的 | ブルートフォース攻撃の防止 |
# fail2ban とは
fail2banは、サーバーへの不正アクセスや攻撃を自動的に検知・対策するツールです。
# fail2ban の主な役割
- パスワードを総当たりで試すブルートフォース攻撃の防止
- リアルタイムにログ監視
- 不審な活動の自動検出と制御
効果
導入後 3 日間で、すでに713 の IP アドレスをブロックしました。fail2ban の効果は非常に高いです。
# fail2ban とは
fail2ban はサーバーへの不正アクセスや攻撃を自動的に検知・対策するツール
# fail2ban の役割
- パスワードを総当たりで試すブルートフォース攻撃の防止
- リアルタイムにログ監視
- 不審な活動が自動検出と制御
# fail2ban の導入手順
# ステップ 1:パッケージのインストール
sudo apt update
sudo apt install fail2ban -y
# ステップ 2:設定ファイルのコピー
デフォルト設定は/etc/fail2ban/jail.confにありますが、アップデート時に上書きされる可能性があるため、jail.localを作成します。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
設定ファイルの優先順位
jail.localがjail.confより優先されます- アップデート時も
jail.localは上書きされません
# ステップ 3:設定ファイルの編集
jail.localを編集します。
sudo vim /etc/fail2ban/jail.local
# 推奨設定値
# ブロックする時間(デフォルトは秒単位)
# 12moは12ヶ月
bantime = 12mo
# 監視する時間(デフォルトは秒単位)
# 1moは1ヶ月
findtime = 1mo
# findtime内に許容される失敗回数
maxretry = 3
設定の説明
- bantime: IP アドレスをブロックする期間(12 ヶ月 = 非常に長い期間)
- findtime: 監視する時間範囲(1 ヶ月)
- maxretry: この期間内に 3 回失敗したらブロック
これらの設定により、1 ヶ月以内に 3 回失敗した IP アドレスを 12 ヶ月間ブロックします。
# ステップ 4:サービスの再起動
設定を反映させるため、fail2ban を再起動します。
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban # 自動起動を有効化
# 動作確認
# ステータスの確認
fail2ban が正常に動作しているか確認します。
# 全体のステータス確認
sudo fail2ban-client status
出力例:
Status
|- Number of jail: 1
`- Jail list: sshd
# 個別の jail(sshd)のステータス確認
sudo fail2ban-client status sshd
出力例:
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 713
|- Total banned: 713
`- Banned IP list:
実績
導入して 3 日間で、すでに713 の IP アドレスをブロックしています。fail2ban の効果は非常に高いです。
# よく使うコマンド
# 特定のIPアドレスを手動でブロック
sudo fail2ban-client set sshd banip <IPアドレス>
# 特定のIPアドレスのブロックを解除
sudo fail2ban-client set sshd unbanip <IPアドレス>
# すべてのブロックを解除
sudo fail2ban-client unban --all
# ログの確認
sudo tail -f /var/log/fail2ban.log
# 実装時の注意点
fail2ban を導入することで、VPS サーバーへのブルートフォース攻撃を効果的に防げる。
# 導入の効果
- 自動的な攻撃検知: ログを監視して不審なアクセスを自動検出
- IP アドレスの自動ブロック: 失敗回数が閾値を超えた IP を自動的にブロック
- 設定の柔軟性: ブロック期間や失敗回数の閾値を自由に設定可能
# 次のステップ
- Nginx のセキュリティ対応
- ファイアウォール(UFW)の設定
- 定期的なログ監視
参考リンク: