プロジェクト

全般

プロフィール

 

他の形式にエクスポート: PDF

Fail2Banによる不正アクセスからの保護

概要

fail2banを導入し、不穏なアクセスからサーバを保護します。

どういう保護を行うか

  1. Ubuntu系の標準ファイアウォールufwと連携します
  2. ufwが検知した不審なアクセス元は恒久的にアクセスを禁止します
  3. 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

これで、不審なアクセスは次回以降は有無を言わせずブロックする設定となります。

クリップボードから画像を追加 (サイズの上限: 50 MB)