本記事では、Ubuntu Server(Raspberry Pi)にfail2banを導入し、不正アクセスを自動的にブロックする方法を解説します。
■ fail2banとは
fail2banはログを監視し、不正アクセス(ブルートフォース攻撃)を検知すると
自動的にIPアドレスをブロックするセキュリティツールです。
■ なぜ必要か(重要)
サーバー公開後は以下の攻撃が必ず来ます:
・SSH総当たり攻撃
・メールサーバー認証攻撃
・ボットによるスキャン
👉 対策しないと数分で攻撃されます
■ インストール
sudo apt update
sudo apt install fail2ban -y
■ サービス確認
sudo systemctl status fail2ban
■ 設定ファイル
sudo vi /etc/fail2ban/jail.local
※ jail.conf は編集しない(上書きされるため)
■ 基本設定(重要)
[DEFAULT]
bantime = 604800
findtime = 600
maxretry = 3
backend = systemd
■ 設定の意味
・bantime → 7日間ブロック
・findtime → 10分以内
・maxretry → 3回失敗でBAN
■ SSH保護
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
■ メールサーバー保護(重要)
Postfix + Dovecotの場合:
[dovecot]
enabled = true
[postfix-sasl]
enabled = true
👉 メールサーバーは攻撃対象になりやすいので必須
■ fail2ban起動
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
■ 自動起動設定(重要)
fail2banは再起動後も有効にするため、
必ず自動起動設定を行います。
設定しない場合、再起動後に防御が無効になります。
■ 状態確認(重要)
sudo fail2ban-client status
■ jailごとの確認
sudo fail2ban-client status sshd
■ BANされたIP確認
sudo fail2ban-client status sshd
👉 Banned IP list に表示される
■ 手動でBAN
sudo fail2ban-client set sshd banip 1.2.3.4
■ 手動で解除
sudo fail2ban-client set sshd unbanip 1.2.3.4
■ よくあるトラブル
● BANされない
→ logpath設定ミス
● ログが読めない
→ backendがsystemdでない
● 自分がBANされた
→ 別端末から解除 or コンソール操作
■ 注意(重要)
fail2ban設定を誤ると自分自身がロックアウトされる可能性があります。
■ 本環境の設定例
・SSH:3回失敗で7日BAN
・メールサーバー:強め設定
・Fail2Ban + Firewall併用
■ 次の記事
次はファイアウォール設定(ufw / firewalld)を行います。

コメント