詳解Linux系統(tǒng)如何防止TCP洪水攻擊
更新時間:2017年05月19日 10:07:57 作者:yanest
本篇文章主要介紹了詳解Linux系統(tǒng)如何低于TCP洪水攻擊,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
#最關鍵參數(shù),默認為5,修改為0 表示不要重發(fā) net.ipv4.tcp_synack_retries = 0 #半連接隊列長度 net.ipv4.tcp_max_syn_backlog = 200000 #系統(tǒng)允許的文件句柄的最大數(shù)目,因為連接需要占用文件句柄 fs.file-max = 819200 #用來應對突發(fā)的大并發(fā)connect 請求 net.core.somaxconn = 65536 #最大的TCP 數(shù)據(jù)接收緩沖(字節(jié)) net.core.rmem_max = 1024123000 #最大的TCP 數(shù)據(jù)發(fā)送緩沖(字節(jié)) net.core.wmem_max = 16777216 #網絡設備接收數(shù)據(jù)包的速率比內核處理這些包的速率快時,允許送到隊列的數(shù)據(jù)包的最大數(shù)目 net.core.netdev_max_backlog = 165536 #本機主動連接其他機器時的端口分配范圍 net.ipv4.ip_local_port_range = 10000 65535 # ……省略其它……
注意,以下參數(shù)面對外網時,不要打開。因為副作用很明顯,具體原因請google,如果已打開請顯式改為0,然后執(zhí)行sysctl -p關閉。因為經過試驗,大量TIME_WAIT狀態(tài)的連接對系統(tǒng)沒太大影響:
#當出現(xiàn) 半連接 隊列溢出時向對方發(fā)送syncookies,調大 半連接 隊列后沒必要 net.ipv4.tcp_syncookies = 0 #TIME_WAIT狀態(tài)的連接重用功能 net.ipv4.tcp_tw_reuse = 0 #時間戳選項,與前面net.ipv4.tcp_tw_reuse參數(shù)配合 net.ipv4.tcp_timestamps = 0 #TIME_WAIT狀態(tài)的連接回收功能 net.ipv4.tcp_tw_recycle = 0 #當出現(xiàn) 半連接 隊列溢出時向對方發(fā)送syncookies,調大 半連接 隊列后沒必要 net.ipv4.tcp_syncookies = 0 #TIME_WAIT狀態(tài)的連接重用功能 net.ipv4.tcp_tw_reuse = 0 #時間戳選項,與前面net.ipv4.tcp_tw_reuse參數(shù)配合 net.ipv4.tcp_timestamps = 0 #TIME_WAIT狀態(tài)的連接回收功能 net.ipv4.tcp_tw_recycle = 0
為了處理大量連接,還需改大另一個參數(shù):
# vi /etc/security/limits.conf
在底下添加一行表示允許每個用戶都最大可打開409600個文件句柄(包括連接):
* – nofile 409600
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。