カテゴリー
Linux

Fail2ban で不正アクセス防止 (apache 編)

Fail2ban を導入してから、dovecot の不正アクセス防止に効果があったので、httpd (apache) へも適用することにしました。

Fail2ban の基本的な設定としては jail.conf とフィルター設定が対になっていることがわかりました。dovecot では両方作成したのですが、apache については、インストール時に既定のjail.conf 設定とフィルター設定がいくつかあるので参考にしながら作成しました。

今回は Directory traversal 攻撃 への対策をしました。

1. jail.conf の変更

jail.conf をエディターで開いて、以下の設定を追加します。

[apache-exploit]
enabled  = true
filter   = apache-exploit
action   = iptables[name=apache-exploit, port=http, protocol=tcp]
           sendmail-whois[name=apache-exploit, dest=root, sender=fail2ban]
logpath  = /var/log/httpd/access_log
maxretry = 1

– フィルター名に apache-exploit、
– アクションには iptables で http のポート、tcp プロトコルをアクセス禁止にします。 そして、root 宛てにメールを送信します。
– スキャンするログファイルは apache のアクセスログを指定します。

2. apache-exploit.conf (フィルター) の作成

次にフィルターを作成します。フィルターとは、fail2ban にそのログからアクセスを禁止させたい失敗パターン(認証失敗など)を指定します。

/etc/fail2ban/filter.d/ の下に apache-exploit.conf 名前でファイルを作成して以下の内容で保存します。

[Definition]
failregex = ^ -.*"(GET|POST).*?.*../../../.* HTTP/.*$

ignoreregex = 

上記のフィルターで、以下のアクセスがマッチしてアクセス元のIP アドレスからのアクセスを禁止します。

1XX.XXX.XX.X - - [09/Oct/2012:09:00:35 +0900] "GET //index.php?option=com_Jgrid&controller=../../../../../../../../../../../../../../../proc/self/environ%00 HTTP/1.1" 404 294 "-" "libwww-perl/5.834"

fail2ban が不正アクセスを検出すると、以下のようなメールが送信されてきます。

~ 抜粋 ~
Hi,
 
The IP 1XX.XXX.XX.X has just been banned by Fail2Ban after
1 attempts against apache-exploit.
 
 
Here are more information about 1XX.XXX.XX.X:
~ 以下省略 ~

以上です。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください