linux伺服器歷險之sysctl優化linux網路
tcp_syncookies 引數型別:整型
只有在核心編譯時選擇了CONFIG_SYNCOOKIES時才會發生作用。當出現syn等候隊列出現溢位時象對方傳送syncookies。目的是為了防止syn flood攻擊。預設值是false。
注意:該選項千萬不能用於那些沒有收到攻擊的高負載伺服器,如果在日誌中出現 synflood訊息,但是調查發現沒有收到synflood攻擊,而是合法使用者的連線負載過高的原因,你應該調整其它引數來提高伺服器效能。參考: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.
syncookie嚴重的違背TCP協議,不允許使用TCP擴充套件,可能對某些服務導致嚴重的效能影響(如SMTP轉發)。
開啟TCP SYN cookies,保護伺服器避免受syn-flood攻擊,包括服務取決denial-of-service (DoS) 或者分散式服務拒絕distributed denial-of-service (DDoS) (僅適用Red Hat Enterprise Linux AS)9 關閉路由相關功能net.ipv4.conf.lo.accept_source_route=0net.ipv4.conf.all.accept_source_route=0net.ipv4.conf.eth0.accept_source_route=0net.ipv4.conf.default.accept_source_route=0net.ipv4.conf.lo.accept_redirects=0net.ipv4.conf.all.accept_redirects=0net.ipv4.conf.eth0.accept_redirects=0net.ipv4.conf.default.accept_redirects=0net.ipv4.conf.lo.secure_redirects=0net.ipv4.conf.all.secure_redirects=0net.ipv4.conf.eth0.secure_redirects=0net.ipv4.conf.default.secure_redirects=0net.ipv4.conf.lo.send_redirects=0net.ipv4.conf.all.send_redirects=0net.ipv4.conf.eth0.send_redirects=0net.ipv4.conf.default.send_redirects=0/proc/sys/net/ipv4/*/secure_redirects 其實所謂的“安全重定向”就是隻接受來自閘道器的“重定向”icmp包。該引數就是 用來設定“安全重定向”功能的。引數值為布林值,1表示啟用,0表示禁止,預設值 為啟用。send_redirects - 布林型別 如果是router,傳送重定向訊息,預設值是TRUE
accept_redirects - 布林型別 收發接收ICMP重定向訊息。對於主機來說預設為True,對於用作路由器時預設值為False。
·以下命令使伺服器忽略來自被列入閘道器的伺服器的重定向。因重定向可以被用來進行攻擊,所以我們只接受有可靠來源的重定向。另 外,你可以配置接受或拒絕任何ICMP重定向。ICMP重定向是路由器傳輸路由資訊的機制。比如,當閘道器接收到來自所接網路主機的Internet資料報 時,閘道器可以傳送重定向資訊到一臺主機。閘道器檢查路由表獲得下一個閘道器的地址,第二個閘道器將資料報路由到目標網路.關閉這些重定向得命令如下: ·如果這個伺服器不是一臺路由器,那麼它不會發送重定向,所以可以關閉該功能:10 優化TCP接收/傳送緩衝區net.ipv4.tcp_rmem=4096 87380 16777216net.ipv4.tcp_wmem=4096 65536 1677721625) /proc/sys/net/ipv4/tcp_wmem該檔案包含3個整數值,分別是:min,default,maxMin:為TCP socket預留用於傳送緩衝的記憶體最小值。每個TCP socket都可以使用它。Default:為TCP socket預留用於傳送緩衝的記憶體數量,預設情況下該值會影響其它協議使用的net.core.wmem中default的 值,一般要低於net.core.wmem中default的值。Max:為TCP socket預留用於傳送緩衝的記憶體最大值。該值不會影響net.core.wmem_max,今天選擇引數SO_SNDBUF則不受該值影響。預設值為128K。預設設定:4096 16384 13107226) /proc/sys/net/ipv4/tcp_rmem該檔案包含3個整數值,分別是:min,default,maxMin:為TCP socket預留用於接收緩衝的記憶體數量,即使在記憶體出現緊張情況下TCP socket都至少會有這麼多數量的記憶體用於接收緩衝。Default: 為TCP socket預留用於接收緩衝的記憶體數量,預設情況下該值影響其它協議使用的 net.core.wmem中default的值。該值決定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的 預設值情況下,TCP 視窗大小為65535。Max:為TCP socket預留用於接收緩衝的記憶體最大值。該值不會影響 net.core.wmem中max的值,今天選擇引數 SO_SNDBUF則不受該值影響。
tcp_wmem - 三個整數的向量: min, default, max min:為TCP socket預留用於傳送緩衝的記憶體最小值。每個tcp socket都可以在建議以後都可以使用它。預設值為4K。 default:為TCP socket預留用於傳送緩衝的記憶體數量,預設情況下該值會影響其它協議使用的net.core.wmem_default 值,一般要低於net.core.wmem_default的值。預設值為16K。 max: 用於TCP socket傳送緩衝的記憶體最大值。該值不會影響net.core.wmem_max,今天選擇引數SO_SNDBUF則不受該值影響。預設值為128K。
tcp_rmem - 三個整數的向量: min, default, max min:為TCP socket預留用於接收緩衝的記憶體數量,即使在記憶體出現緊張情況下tcp socket都至少會有這麼多數量的記憶體用於接收緩衝,預設值為8K。 default:為TCP socket預留用於接收緩衝的記憶體數量,預設情況下該值影響其它協議使用的 net.core.wmem_default 值。該值決定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win:0是預設值情況下,tcp 視窗大小為65535。 max:用於TCP socket接收緩衝的記憶體最大值。該值不會影響 net.core.wmem_max,今天選擇引數 SO_SNDBUF則不受該值影響。預設值為 128K。預設值為87380*2 bytes。
11,配置伺服器拒絕接受廣播風暴或者smurf 攻擊attacks:12,·有些路由器針對廣播禎傳送無效的迴應,每個都產生警告並在核心產生日誌.這些迴應可以被忽略:13,# don net.ipv4.tcp_no_metrics_save =