□fail2ban でうざいアクセスをシャットアウト -2-
追記 2016.03.31
fail2banはIPv6に(まだ)対応していないので、上記のツールをお勧めします。 🙂
『□fail2ban でうざいアクセスをシャットアウト』っていうのを前に書いたのだけど、
ありがたいことに今ではepelの方にfail2banパッケージが用意されていて、
yum –enablerepo=epel -y install fail2ban
とするだけで一式全部入るようになっている。
あとは、/etc/fail2ban/jail.confを見て、どんなJailsが様子されているかを見ながら、
必要なフィルターのみ、
cat > /etc/fail2ban/jail.local
----------
[DEFAULT]
destemail = hogehoge@example.co.jp
sender = fail2ban@example.co.jp
[sshd]
enabled = true
[sshd-ddos]
enabled = true
[apache-auth]
enabled = true
[apache-badbots]
enabled = true
[apache-nohome]
enabled = true
[apache-modsecurity]
enabled = true
[apache-shellshock]
enabled = true
[vsftpd]
enabled = true
[postfix]
enabled = true
[dovecot]
enabled = true
[postfix-sasl]
enabled = true
----------
のように、jail.localファイルに有効にするタグと「enabled = true」を書いて
/etc/init.d/fail2ban restart
するだけ。
※該当サービスのログファイルがないと怒られるよ。
さらに補足:2015.11.06
/etc/init.d/fail2ban restart をした後に、tail -f /var/log/messages などで、きちんと動作しているかどうか確認すること。
CentOS6では、「option `-w’ requires an argument」などといわれて、iptablesで-wが使えないのに使おうとして実際にはfail2banが動作していなかった。
emacs /etc/fail2ban/action.d/iptables-common.conf
----------
#lockingopt = -w
lockingopt =
----------
というように、-wオプションをはずして、
/etc/init.d/fail2ban restart
すればOK…なんだけど、これがCentOS7の場合にはfirewalld対応がデフォルトになっているので、iptablesを使うよって切り替えた場合には、やっぱり見かけ動作しているようでしていない。CentOS7でiptablesベースにしたときにfail2banを有効にするには
emacs /etc/fail2ban/jail.d/00-firewalld.conf
----------
#[DEFAULT]
#banaction = firewallcmd-ipset
----------
として、コメントアウトすればいい。(´Д`)ハァ…