【不正アクセス対策】fail2banのsshdとrecidiveの組み合わせが大変効果的と思う理由
長期BANを行うrecidiveは該当IPに対して全てのポートをアクセス拒否にする
fail2banでrecidiveを有効にしておくと
デフォルトでは
ssh等で1日に5回BANした場合に、1週間、該当IPからのアクセスを拒否し続けるのですが、
きっかけとなったssh等だけではなく該当IPからのすべてのポートアクセスを拒否するようなので、攻撃に対して大変有効だと思います。実際、sshだけではなくrsyncdとか外のサービスも不正アクセス試行されますので。
実験してみた
試しに実験してみたところ、
sshd,ftp,httpを開けておいたサーバに対して
fail2banのsshdとrecidiveを有効にし、
WindowsからのTeratermでsshアクセスをわざと連続で失敗したところ、
4回まではsshアクセスは不可でも、ftp,httpアクセスはできましたが、
5回失敗してresidiveに登録されたとたん、sshだけではなく、ftpもhttpもアクセスできなくなりました。
手動で制限を解除する
手動解除はダイレクトのssh経由ではできませんが(拒否されてますからね)
拒否されていない、他のサーバ経由や実際の画面を開けるならそちらから
以下でできます。
拒否されていることを確認
fail2ban-client status sshd [root@localhost ~]# fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 30 | `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd `- Actions |- Currently banned: 1 |- Total banned: 5 `- Banned IP list: xxx.xxx.xxx.xxx ←目的のIPが拒否されていることを確認
sshの拒否を解除
fail2ban-client set sshd unbanip xxx.xxx.xxx.xxx
これだけだとftp,httpは拒否されたままなので
[root@localhost ~]# fail2ban-client status recidive Status for the jail: recidive |- Filter | |- Currently failed: 0 | |- Total failed: 5 | `- File list: /var/log/fail2ban.log `- Actions |- Currently banned: 1 |- Total banned: 2 `- Banned IP list: xxx.xxx.xxx.xxx ←目的のIPが拒否されていることを確認
recidiveも解除
fail2ban-client set recidive unbanip xxx.xxx.xxx.xxx