root化とかカスタムROMとか

いろいろいじってます

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通知

f:id:jesuscorona:20200220163713j:plain

このような形でLINEで通知が来ます。

まとめ

メールやSlackよりもLINEを見ることが多いという人は、おすすめです。