在 ArchLinux 安裝 fail2ban
# pacman -S fail2ban
但安裝好了之後,在 /var/log 目錄下卻一直找不到相關的 log 檔,後來才又安裝了 syslog-ng 解決了這個問題!
ArchLinux 的系統 ssh log 檔
修改設定檔,加入對 ssh 的攻擊防護,因為根據自己架設的 Server,大部分都是嘗試對 ssh 的錯誤連線,而 ftp 的部分幾乎都沒有。
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all — 61.174.51.232 0.0.0.0/0
DROP all — 61.174.51.235 0.0.0.0/0
DROP all — 122.225.109.217 0.0.0.0/0
DROP all — 218.2.0.123 0.0.0.0/0
RETURN all — 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-vsftpd (1 references)
target prot opt source destination
RETURN all — 0.0.0.0/0 0.0.0.0/0[@more@]# vim /etc/fail2ban/jail.conf
修改並加入下面的設定
[sshd]
enabled = true
port = ssh
logpath = /var/log/ssh.log
#logpath = %(sshd_log)s
maxretry = 3
bantime = 86400
重新啟動 fail2ban
# systemctl start fail2ban
設定開機時啟動
# systemctl enable fail2ban
檢查 fail2ban 的狀態
# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd
以 Client IP 192.168.1.10 嘗試對 Server IP 192.168.1.106 嘗試連線錯誤幾次之後
列出 fail2ban 偵測到的 SSH 攻擊
# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 3
| `- File list: /var/log/ssh.log
`- Actions
|- Currently banned: 1
|- Total banned: 1
`- Banned IP list: 192.168.1.10
列出 f2b-sshd 的規則
# iptables -t filter -L f2b-sshd -n
Chain f2b-sshd (1 references)
target prot opt source destination
REJECT all — 192.168.1.10 0.0.0.0/0 reject-with icmp-port-unreachable
RETURN all — 0.0.0.0/0 0.0.0.0/0
刪除防火牆規則
# iptables -D f2b-sshd -s 192.168.1.10 -j REJECT