- インターネット上に公開されたWebサーバを運営している
 - IPアドレスが固定されていない
 
場合に必要な措置となる、NW保護を行います。
環境
- Ubunt 24.04
 
さっくりとした手順
- ufwを有効化します。
 - fail2banをインストールします。
 - fail2banの設定をします。
 
SSHとWeb通信のみを有効化させます。
- SSH接続を許可するが過度な接続を制限する
 
sudo ufw limit proto tcp from any to any port 22
- http通信を許可
 
sudo ufw allow 80/tcp
- https通信を許可
 
sudo ufw allow 443/tcp
- ufwの設定を反映
 
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?はyで続けます。
- 反映確認
 
sudo ufw status
以下を確認します。
状態: アクティブ
To                         Action      From
--                         ------      ----
22/tcp                     LIMIT       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
22/tcp (v6)                LIMIT       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6) 
別ウィンドウで新たなSSH接続を行い、通信できるかを確認します。
- 再起動後でもufwが有効であることを確認
 
sudo reboot
再起動後、SSH接続ができることを確認します。
sudo ufw status
上記、許可された設定が有効になっていることを確認します。
fail2banをインストールします。
- インストール
 
sudo aptitude update && sudo aptitude install fail2ban
- インストール確認
 
systemctl status fail2ban.service 
active(running)を確認します。
fail2banを設定します。
- 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は任意の(ある程度アクセス元が判明しているIPアドレス)を指定ください。スペース区切りで複数指定できます。
[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は任意の(ある程度アクセス元が判明しているIPアドレス)を指定ください。スペース区切りで複数指定できます。
- ufw.aggressiveを作成
 
sudo tee /etc/fail2ban/filter.d/ufw.aggressive.conf > /dev/null << 'EOF'
[Definition]
failregex = [UFW BLOCK].+SRC=<HOST> DST
ignoreregex =
EOF
- 設定反映
 
sudo systemctl restart fail2ban.service
systemctl status fail2ban.service 
active(running)を確認します。
- 設定確認
 
sudo cat /var/log/fail2ban.log
この時点で、
2024-09-01 17:14:26,476 fail2ban.filter         [1720]: INFO    [ufw] Found xxx.xxx.xxx.xxx - 2024-09-01 17:14:26
2024-09-01 17:14:26,623 fail2ban.actions        [1720]: NOTICE  [ufw] Ban xxx.xxx.xxx.xxx
2024-09-01 17:14:44,198 fail2ban.filter         [1720]: INFO    [ufw] Found yyy.yyy.yyy.yyy - 2024-09-01 17:14:44
2024-09-01 17:14:44,647 fail2ban.actions        [1720]: NOTICE  [ufw] Ban yyy.yyy.yyy.yyy
と、fail2banが不審なアクセスを弾いています。
sudo fail2ban-client status ufw
設定して10分も経たないうちに100ほどのIPアドレスがブロックされていました。
			
コメントを残す