在Debian系統中,使用iptables來保護SSH服務是一個常見的安全措施。以下是一些基本的步驟和規則,可以幫助你增強SSH服務的安全性:
首先,確保你的系統是最新的:
sudo apt update && sudo apt upgrade -y
如果你的系統還沒有安裝iptables,可以使用以下命令安裝:
sudo apt install iptables -y
以下是一些基本的iptables規則,可以幫助你保護SSH服務:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -j DROP
默認情況下,iptables規則在系統重啟后會丟失。為了持久化這些規則,可以使用iptables-persistent
包:
sudo apt install iptables-persistent -y
在安裝過程中,系統會提示你是否保存當前的iptables規則。選擇“是”以確保規則被保存。
為了進一步增強安全性,可以限制SSH訪問到特定的IP地址或IP范圍。例如,只允許來自特定IP的SSH連接:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Fail2Ban是一個入侵防御軟件框架,可以用來監控日志文件并根據配置的規則禁止惡意IP地址。安裝并配置Fail2Ban:
sudo apt install fail2ban -y
編輯Fail2Ban的配置文件/etc/fail2ban/jail.local
,添加以下內容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
然后重啟Fail2Ban服務:
sudo systemctl restart fail2ban
為了進一步提高安全性,建議使用SSH密鑰認證而不是密碼認證。生成SSH密鑰對并將其添加到服務器:
ssh-keygen -t rsa -b 4096
將公鑰復制到服務器的~/.ssh/authorized_keys
文件中:
ssh-copy-id user@server_ip
通過以上步驟,你可以顯著提高Debian系統上SSH服務的安全性。記住,安全是一個持續的過程,定期檢查和更新你的安全措施是非常重要的。