在Ubuntu系統中,使用iptables來防止DDoS攻擊是一種常見的方法。以下是一些基本的步驟和策略,可以幫助你配置iptables以增強系統的安全性:
更新系統: 確保你的Ubuntu系統是最新的,這樣可以避免已知的安全漏洞。
sudo apt update && sudo apt upgrade
限制連接速率:
使用iptables的limit模塊來限制特定IP地址或網絡接口的連接速率,這可以防止大量的請求涌入。
# 限制每分鐘最多5個新連接
sudo iptables -A INPUT -p tcp --syn -m limit --limit 5/min -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP
阻止可疑IP地址: 如果你發現有可疑的IP地址,可以使用iptables來阻止它們。
# 阻止單個IP地址
sudo iptables -A INPUT -s 123.123.123.123 -j DROP
# 阻止一個IP段
sudo iptables -A INPUT -s 123.123.123.0/24 -j DROP
限制并發連接數:
使用iptables的connlimit模塊來限制每個IP地址的并發連接數。
# 限制每個IP地址最多10個并發連接
sudo iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 10 -j DROP
啟用SYN Cookies: SYN Cookies可以幫助防止SYN Flood攻擊。
sudo sysctl -w net.ipv4.tcp_syncookies=1
調整TCP參數: 調整一些TCP參數可以增強系統的抗DDoS能力。
# 增加TCP最大連接數
sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sudo sysctl -w net.core.somaxconn=4096
# 啟用TCP時間戳和窗口縮放
sudo sysctl -w net.ipv4.tcp_timestamps=1
sudo sysctl -w net.ipv4.tcp_window_scaling=1
# 啟用TCP SYN重傳超時
sudo sysctl -w net.ipv4.tcp_synack_retries=2
sudo sysctl -w net.ipv4.tcp_syn_retries=2
保存iptables規則: 為了確保重啟后規則仍然有效,需要保存iptables規則。
sudo iptables-save > /etc/iptables/rules.v4
如果你使用的是UFW(Uncomplicated Firewall),可以使用以下命令來保存規則:
sudo ufw disable
sudo ufw enable
請注意,這些只是一些基本的策略,實際的DDoS防護可能需要更復雜的配置和專業的安全設備。如果你面臨嚴重的DDoS攻擊,建議聯系專業的網絡安全服務提供商。