自己DIY主機環境一定都需要注意資訊安全。
然後最常遇到的就是ssh 被暴力破解,這個時候在主機上安裝Fail2ban就變得很重要和基本。
簡單介紹Fail2Ban

Fail2Ban是一個入侵”檢測”系統的工具,可以保護伺服器免暴力攻擊。
以Python程式語言撰寫,只能安裝在Unix系統上運作。
類似的軟體也有不少,但自己覺得Fail2Ban很多人使用,再找相關資訊時也很方便。
這次我就用Fail2Ban來幫我的網站主機防禦暴力攻擊。
Ubuntu 安裝Fail2Ban 紀錄
這次安裝的環境是Ubuntu 20.04 TLS (CentOs也有差不多的安裝流程)
步驟1、 先更新系統 (這個很重要)
sudo apt update
apt list --upgradable
sudo apt -y upgrade
sudo apt -y autoremove
安裝與設定
$ sudo apt install fail2ban
確認啟動
$ sudo systemctl status fail2ban
編輯設定檔: /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 3600
destmail = 我的mail
因為Linode主機有開啟SSH 、HTTP和HTTPS服務 SSH一定會被攻擊(暴力密碼攻擊)
所以我設定
bantime=3600(秒) 1H封鎖
findtime=600(秒) 10分鐘內
maxretry= 5 嘗試登入錯5次
這組IP就會被列入黑名單,所以一直錯一直鎖。
如果不小心封鎖到自己的IP
fail2ban-client set sshd unbanip x.x.x.x
就可以解開
時不時就檢查一下有多少IP被封鎖
指令: iptables -L -n
root@localhost:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-sshd tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 22
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-sshd (1 references)
target prot opt source destination
REJECT all -- 111.229.251.100 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 1.116.78.23 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 104.236.151.120 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 113.31.112.237 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 42.192.88.13 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 81.68.161.14 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 65.49.206.125 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 46.101.81.12 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 142.93.77.117 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 138.255.148.35 0.0.0.0/0 reject-with icmp-port-unreachable
RETURN all -- 0.0.0.0/0 0.0.0.0/0