# 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.localjail.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)の設定
  • 定期的なログ監視

参考リンク:

同じタグを持つ記事をピックアップしました。