2026年6月29日

2026年6月29日

fail2banでApache/Nginxの不正アクセスをブロックする方法

ステップ1: fail2banをインストールする

まず、fail2banのインストールを行います。

# UbuntuやDebian系のLinuxサーバー
sudo apt update && sudo apt install -y fail2ban

# CentOS系のLinuxサーバー
sudo yum install epel-release && sudo yum install -y fail2ban

ステップ2: Apache/Nginx用のフィルタとアクションを設定する

# Apache用のフィルタ設定ファイルを作成します。
sudo nano /etc/fail2ban/filter.d/apache-auth.conf

# 以下のように内容を追記します。
[Definition]
failregex = ^<HOST> -.*\] \"(?:GET|POST) .+? HTTP\/1\.0\" 401 .*$
ignoreregex =

# Nginx用のフィルタ設定ファイルを作成します。
sudo nano /etc/fail2ban/filter.d/nginx-auth.conf

# 以下のように内容を追記します。
[Definition]
failregex = ^<HOST> -.*\] \"(?:GET|POST) .+? HTTP\/1\.0\" 401 .*$
ignoreregex =

ステップ3: fail2banのルールを作成する

# Apache用のルールファイルを作成します。
sudo nano /etc/fail2ban/jail.d/apache-auth.conf

# 以下のように内容を追記します。
[apache-auth]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache2/*.log
maxretry = 5
bantime  = 3600

# Nginx用のルールファイルを作成します。
sudo nano /etc/fail2ban/jail.d/nginx-auth.conf

# 以下のように内容を追記します。
[nginx-auth]
enabled  = true
port     = http,https
filter   = nginx-auth
logpath  = /var/log/nginx/*.log
maxretry = 5
bantime  = 3600

ステップ4: fail2banを再起動して設定を反映させる

sudo systemctl restart fail2ban

注意事項

  • 定期的な確認: fail2banの設定は定期的に確認し、必要に応じて調整すること。
  • パフォーマンスへの影響: 大量のログが発生する場合、パフォーマンスに影響を与える可能性があるため注意が必要です。
  • IPアドレスの一時ブロック解除: 必要に応じて一時的にブロックを解除したい場合は、/etc/fail2ban/jailed.localファイルに設定を追加します。

まとめ

1. fail2banのインストール: ApacheとNginx用のフィルタとアクションを作成し、fail2banを実行することで不正アクセスをブロックできます。

2. ルールの調整: 不正ログのパターンやブロック時間などは、サーバーの状況に合わせて調整することが重要です。

3. パフォーマンスへの注意: 大量のログが発生する場合、パフォーマンスへの影響を考慮に入れる必要があります。

4. 定期的な確認: 定期的にfail2banの設定を確認し、必要に応じて調整すること。

5. IPアドレスの一時解除: 必要に応じてブロックを一時的に解除できるようにするための手順を学びます。

関連記事:

お気軽にご相談ください

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