fail2banでアタックを検知したらSlackに通知させる

前回CentOS 7上でfail2banのインストール・設定を行ったが、アタックを検知して対象のIPアドレスをBANした際、メールではなくSlackに通知させることもできるようだ。 まず、事前にSlackのWebHookを作成しておく必要がある。

次に、actionとしてslackへのポストが行えるよう、設定ファイルを作成する。

/etc/fail2ban/action.d/slack.conf
[Definition] actionban = curl -X POST --data-urlencode 'payload={"channel": "#test", "username": "fail2ban", "text": "不正なアクセスが多発したため、フィルター「<name>」に基づき<ip>からのアクセスを<bantime>秒遮断します。", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXX

次に、jail側でslack呼び出しをするようにactionの値を書き換えてやる。

/etc/fail2ban/jail.d/jail.local
[apache-ddos] enabled = true port = http,https filter = apache-ddos logpath = %(apache_access_log)s maxretry = 10 findtime = 5 bantime = 86400 action = %(action_mwl)s slack[name=%(__name__)s, bantime="%(bantime)s"] destemail = user@domain.com

設定完了後、ログローテートを行ってからサービスの再起動を行う。

/usr/sbin/logrotate -f /etc/logrotate.conf
systemctl restart fail2ban

その後、問題のあるアクセスが発生しBANが発生すると、Slackに以下のような通知がされるようになる。


参考