天天看點

linux防止DDoS攻擊

前言

虛拟主機服務商在營運過程中可能會受到黑客攻擊,常見的攻擊方式有SYN,DDOS等。通過更換IP,查找被攻擊的站點可能避開攻擊,但是中斷服務的時間比較長。比較徹底的解決方法是添置硬體防火牆。不過,硬體防火牆價格比較昂貴。可以考慮利用Linux 系統本身提供的防火牆功能來防禦。SYN攻擊是利用TCP/IP協定3次握手的原理,發送大量的建立連接配接的網絡包,但不實際建立連接配接,最終導緻被攻擊伺服器的網絡隊列被占滿,無法被正常使用者通路。 Linux核心提供了若幹SYN相關的配置,加大SYN隊列長度可以容納更多等待連接配接的網絡連接配接數,打開SYN Cookie功能可以阻止部分 SYN攻擊,降低重試次數也有一定效果。而DDOS則是通過使網絡過載來幹擾甚至阻斷正常的網絡通訊。通過向伺服器送出大量請求,使伺服器超負荷。阻斷某一使用者通路伺服器阻斷某服務與特定系統或個人的通訊。可以通過配置防火牆或者使用腳本工具來防範

通過sysctl和iptables來防範

對sysctl參數進行修改

$ sudo sysctl -a  | grep ipv4 | 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

net.ipv4.tcp_syncookies:是否打開SYN COOKIES的功能,“1”為打開,“2”關閉。

net.ipv4.tcp_max_syn_backlog:SYN隊列的長度,加大隊列長度可以容納更多等待連接配接的網絡連接配接數。

net.ipv4.tcp_synack_retries和net.ipv4.tcp_syn_retries:定義SYN重試次數。

把如下加入到/etc/sysctl.conf即可,之後執行“sysctl -p”!

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_max_syn_backlog = 4096

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

提高TCP連接配接能力

net.ipv4.tcp_rmem = 32768

net.ipv4.tcp_wmem = 32768

net.ipv4.sack=0  

繼續閱讀