概要
AWSはメジャーなサービスのため、ここで使われているIPアドレスは攻撃のリスクがとても高くなります。
ここでSSH権限を乗っ取ろうとする攻撃に備え、Fail2Banを導入しました。
Fail2Banとは
様々なログファイルを読み込み、何度もアクセスを繰り返すようなアクセス元を遮断するプログラムです。
前提
- AWS Ligthsailで動かしているUbuntu 20.04サーバ/Ubuntu22.04サーバで動作を確認しています。
- (当然のように)SSHが導入されていることが大前提です。
手順
- 全て管理者権限で実施しています。
- パッケージ管理にaptitudeを利用しています。必要に応じてaptに読み替えてください。
参考:
https://www.kkaneko.jp/tools/server/fail2ban.html
Fail2Banのインストール
aptitude update
aptitude install fail2ban
wget https://raw.githubusercontent.com/mitchellkrogza/Fail2Ban-Blacklist-JAIL-for-Repeat-Offenders-with-Perma-Extended-Banning/master/filter.d/blacklist.conf -O /etc/fail2ban/filter.d/blacklist.conf
wget https://raw.githubusercontent.com/mitchellkrogza/Fail2Ban-Blacklist-JAIL-for-Repeat-Offenders-with-Perma-Extended-Banning/master/action.d/blacklist.conf -O /etc/fail2ban/action.d/blacklist.conf
systemctl restart fail2ban
systemctl status fail2ban
# active (running) を確認します
Fail2Banのログローテーション変更
mv /etc/logrotate.d/fail2ban /backup/directory/path/fail2ban.bak
vi /etc/logrotate.d/fail2ban
設定内容
/var/log/fail2ban.log {
monthly
rotate 13
compress
delaycompress
missingok
notifempty
postrotate
fail2ban-client flushlogs 1>/dev/null
endscript
create 640 root adm
}
設定反映
fail2ban-client reload
# OKを確認します
fail2ban-client status sshd
#以下のように表示されました
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
systemctl enable fail2ban
# 自動起動を行います
設定ファイルを作成します
vi /etc/fail2ban/jail.local
設定内容
[DEFAULT]
port = 0:65535
filter = %(__name__)s
[blacklist]
enabled = true
logpath = /var/log/fail2ban.*
filter = blacklist
banaction = blacklist
action = %(action_)s
bantime = 31536000 ; 1 year
findtime = 31536000 ; 1 year
maxretry = 10
追加した設定を反映させます
touch /etc/fail2ban/ip.blacklist
chmod 775 /etc/fail2ban/ip.blacklist
systemctl restart fail2ban
fail2ban-client reload
systemctl restart sshd
systemctl enable fail2ban
導入後に注意する内容
cat /var/log/fail2ban.log
cat /etc/fail2ban/ip.blacklist
AWSで運用しているだけあって、かなりのログが引っかかっています。