概要¶
fail2banを導入し、不穏なアクセスからサーバを保護します。
どういう保護を行うか¶
- Ubuntu系の標準ファイアウォールufwと連携します
- ufwが検知した不審なアクセス元は恒久的にアクセスを禁止します
- ssshdに関しては接続3回失敗で恒久的にアクセスを禁止します
参考記事:
https://blog.fernvenue.com/archives/ufw-with-fail2ban/
前提:¶
- ufwが有効になっていること。
sudo ufw status
として、
To Action From
-- ------ ----
22/tcp LIMIT Anywhere # SSH:過度のアクセスを禁止
80/tcp ALLOW Anywhere # HTTP通信を全許可
443/tcp ALLOW Anywhere # HTTPS通信を全許可
22/tcp (v6) LIMIT Anywhere (v6) # SSH:過度のアクセスを禁止
80/tcp (v6) ALLOW Anywhere (v6) # HTTP通信を全許可
443/tcp (v6) ALLOW Anywhere (v6) # HTTPS通信を全許可
等、有効であることを確認します。(こちらはコメント込みで設定しています)
また、インストールは
sudo aptitude install fail2ban
を実行した状態とします。(筆者の好みで aptitude
を用いています)
手順¶
ここからはroot権限の方が確実です。
jail.localを編集します。¶
教義・信仰に沿ったエディタで以下のファイルを編集(作成)します。
- ファイル名 /etc/fail2ban/jail.local
○内容
[ufw]
enabled=true
filter=ufw.aggressive
action=iptables-allports
logpath=/var/log/ufw.log
maxretry=1
bantime=-1
ignoreip = 127.0.0.0/8 ::1
# ignoreipは任意の(自分のアクセス元)を指定ください
[sshd]
enabled=true
filter=sshd
mode=normal
port=22
protocol=tcp
logpath=/var/log/auth.log
maxretry=3
bantime=-1
ignoreip = 127.0.0.0/8 ::1
# ignoreipは任意の(自分のアクセス元)を指定ください
- ファイル名 /etc/fail2ban/filter.d/ufw.aggressive.conf
○内容
[Definition]
failregex = [UFW BLOCK].+SRC=<HOST> DST
ignoreregex =
設定反映¶
systemctl enable fail2ban
systemctl start fail2ban
systemctl status fail2ban
これで、不審なアクセスは次回以降は有無を言わせずブロックする設定となります。