全面處理Linux syn攻擊
Linux syn攻擊是一種黑客攻擊,如何處理和減少這種攻擊是系統(tǒng)管理員比較重要的工作,怎么才能出色的完成這項工作,希望通過本文能給你一啟發(fā),讓你在以后工作中能輕松完成抵御Linux syn攻擊的任務。
虛擬主機服務商在運營過程中可能會受到黑客攻擊,常見的攻擊方式有SYN,DDOS等。通過更換IP,查找被攻擊的站點可能避開攻擊,但是中斷服務的時間比較長。比較徹底的解決方法是添置硬件防火墻。不過,硬件防火墻價格比較昂貴。可以考慮利用Linux 系統(tǒng)本身提供的防火墻功能來防御。
抵御SYN SYN攻擊是利用TCP/IP協(xié)議3次握手的原理,發(fā)送大量的建立連接的網(wǎng)絡包,但不實際建立連接,最終導致被攻擊服務器的網(wǎng)絡隊列被占滿,無法被正常用戶訪問。
Linux內核提供了若干SYN相關的配置,用命令: sysctl -a | grep syn 看到:
net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlog是SYN隊列的長度,tcp_syncookies是一個開關,是否打開SYN Cookie 功能,該功能可以防止部分SYN攻擊。tcp_synack_retries和tcp_syn_retries定義SYN 的重試次數(shù)。加大SYN隊列長度可以容納更多等待連接的網(wǎng)絡連接數(shù),打開SYN Cookie功能可以阻止部分 SYN攻擊,降低重試次數(shù)也有一定效果。
調整上述設置的方法是:
增加SYN隊列長度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打開SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重試次數(shù):
sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -w net.ipv4.tcp_syn_retries=3
為了系統(tǒng)重啟動時保持上述配置,可將上述命令加入到/etc/rc.d/rc.local文件中。
防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
也有人寫作
#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
--limit 1/s 限制syn并發(fā)數(shù)每秒1次,可以根據(jù)自己的需要修改
防止各種端口掃描
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Ping洪水攻擊(Ping of Death)
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
到這里Linux syn攻擊問題的處理就可以解決了。
【編輯推薦】




















