
辺境の自宅サーバでもクラックしようとするアクセスがそれなりになるのでログが膨らんでいやんな感じなのでfail2banという、何回かアクセスに失敗したらブロックするようにするパッケージを入れてみた。
基本的にうざいのはapache/postfix/dovecotあたりへのアタック。
以前はapacheやsecureのログを見て怪しげなエラーになっているのを適当なスクリプトを組んでiptablesに追加するようにしていたのだけども、fail2banは自動でやってくれるという優れものみたい。
1.fail2banのパッケージはEPELというリポジトリにあるそうなんで追加
# yum install epel-release
2.fail2banをインストール
# yum install fail2ban
3.設定ファイルを作成
インストール時に
/etc/fail2ban/fail2ban.conf
が作成されているが、こいつはデフォルト値が書かれていてカスタマイズするにはこの
ファイルをいじるんじゃなくて
/etc/fail2ban/fail2ban.local
というファイルを作ってそれに差分を記述らしい。
とりあえずこんな感じで、と設定ファイルも載せようと思ったけど、微妙にやばいかもしれないので省略。
方針としては、5回エラーになったら24時間アクセス不可。
(追記)
個々のポート(サーバアプリ)の設定は、jail.confというのでやっていて、こっちはjail.localというファイルを作って差分で各々の設定を行うらしい。
最初からメジャーなアプリケーションについては用意されているのでいくつかチェックするようにしてみた。
設定ができて
# service fail2ban start
で起動後、fail2ban-clientで動作を確認。
全体だと、
[root@dauphine fail2ban]# fail2ban-client status Status |- Number of jail: 18 `- Jail list: apache-auth, apache-badbots, apache-botsearch, apache-fakegooglebot, apache-modsecurity, apache-nohome, apache-noscript, apache-overflows, apache-shellshock, php-url-fopen, postfix, postfix-sasl, proftpd, sendmail-auth, sendmail-reject, sshd, sshd-ddos, vsftpd [root@dauphine fail2ban]# [root@dauphine fail2ban]# ps ax | grep ftp 1725 ? Ss 0:02 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 28810 pts/2 R+ 0:00 grep ftp
その中からsshdのステータスの表示で、
[root@dauphine fail2ban]# fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 4 | `- File list: /var/log/secure `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list:
というふうに実行状況を確認できる。