前回の運用編①にて、sshdの公開鍵認証にしたわけだが、侵入者はそれにもかかわらずアタックを続けてくる。secureログを見ても一目瞭然だ。
今日に入って数時間、それにもかかわらずこれだけのアクセスがあるわけだ。ユーザー名を適当に選んで片っ端から侵入を試みようという感じだ。まったく節操もない連中だ。
IPを特定して対処、というのが堅いやりかたなのだろうけど、それだと毎回見つけるたびに対処しなくてはならず、とてもじゃないが個人のWebサーバでそこまでの労力を割くわけにもいかない。
そこで今回、fail2banの名の通り、攻撃を繰り返す侵入者を自動的にBAN(一定時間追放)するためのツールを入れて対応することにしよう。
まず、インストールはこれまでの通り簡単だ。
yum install fail2ban
ただし、このfail2banは単体で動いていない。firewalldやip-tablesといったセキュリティツールと連動して侵入者をBANするので、設定がいささかややこしい。sshdだけを簡単に設定するために、以下のような手順と設定を行った。
cd /etc/fail2ban/jail.d vi jail.local
/etc/fail2/ban/jail.d/jail.local という設定ファイルを作成し、そこに設定を書き込む。これにより、このファイルの内容を優先して設定されることになる。
[DEFAULT] bantime = 86400 findtime = 86400 maxretry = 3 backend = systemd [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.* banaction = firewallcmd-ipset [sshd-ddos] enabled = true port = ssh filter = sshd-ddos logpath = /var/log/auth.* banaction = firewallcmd-ipset
fail2banの設定について、fail2banのバージョンや、設定の書き方などですぐに動かなくなる(起動してくれない)ので注意が必要だ。
systemctl start fail2ban systemctl enable fail2ban
まず、起動させてみて何もエラーメッセージが出てこなかったら成功だ、とは思うが念のためstatusもチェックして正常動作か確認しておこう。
これでしばらく様子を見てみよう。どれだけ捕まったかは以下のコマンドで調べられる。
fail2ban-client status sshd
早速これだけ掛かってきている。凄まじいがこれが事実だ。fail2banはシステムの門番兵としてとても有用な働きをしてくれる。ひとまずこれでやっていくことにしよう。
コメント