linux如何防止DDOS攻擊
本文是linux如何防止DDOS攻擊,歡迎大家閱讀借鑒。
1. 抵御SYN
SYN攻擊是利用TCP/IP協(xié)議3次握手的原理,發(fā)送大量的建立連接的網(wǎng)絡(luò)包,但不實際建立連接,最終導(dǎo)致被攻擊服務(wù)器的網(wǎng)絡(luò)隊列被占滿,無法被正常用戶訪問。
Linux內(nèi)核提供了若干SYN相關(guān)的配置,用命令:
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是一個開關(guān),是否打開SYN Cookie
功能,該功能可以防止部分SYN攻擊。tcp_synack_retries和tcp_syn_retries定義SYN
的重試次數(shù)。
加大SYN隊列長度可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù),打開SYN Cookie功能可以阻止部分
SYN攻擊,降低重試次數(shù)也有一定效果。
調(diào)整上述設(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中
Linux禁止ping
以root進入Linux系統(tǒng),然后編輯文件icmp_echo_ignore_all
vi /proc/sys/net/ipv4/icmp_echo_ignore_all
將其值改為1后為禁止PING
將其值改為0后為解除禁止PING
使用iptables禁止ping:
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 2 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-port-unreachable