Fail2Banの通知をLINEのbotから受け取るまでの設定
fail2banとは総当たり攻撃などを防ぐため、一定の試行回数失敗したIPアドレスをbanするソフトです。今回は、LINEのbotでbanした通知を受け取るようにしたので書いていきます。
環境
- Ubuntu18.04
- Fail2Ban v0.10.2
- nginx/1.14.0
- LINEbotが作成した状態
インストール
sudo apt-get install fail2ban
でインストールできます。
LINEを送信する準備
/etc/fail2ban/action.d/send-line.confを作成し、LINEを送信する次の設定を書き込みます。
[Definition] actionban = curl -X POST -H 'Content-Type:application/json' -H 'Authorization: Bearer {アクセストークン}' -d '{ "to": "送信するアカウントID", "messages":[ { "type":"text", "text":"<ip>が<name>にログイン失敗しました。IPアドレスをBANしました。" } ] }' https://api.line.me/v2/bot/message/push [Init]
banした時の設定
/etc/fail2ban/jail.confの設定したい項目に以下のような設定を書き込みます。
[nginx-http-auth] port = http,https enabled = true filter = nginx-http-auth logpath = /var/log/nginx/*error*.log maxretry = 1 bantime = -1 #action = iptables-multiport[name=404, port="http,https", protocol=tcp] action = send-line[name=nginx] iptables-multiport[name=404, port="http,https", protocol=tcp]
action= は複数行う場合、字下げをしないと二つ目が実行されないので、注意が必要です。 今回はnginxだったので、nginx-http-authの欄に書き込み、send-lineにname=nginxを渡しています。例えば、sshで設定する場合はsshdの欄で、name=sshとすればいいと思います。
LINE通知
このような形でLINEで通知が来ます。
まとめ
メールやSlackよりもLINEを見ることが多いという人は、おすすめです。