系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當前位置:系統(tǒng)之家 > 系統(tǒng)教程 > linux檢測及防止DDOS攻擊

linux檢測及防止DDOS攻擊的技巧

時間:2015-06-08 17:10:54 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150608/50328.html 手機查看 評論

  身為一個網(wǎng)站的站長,不僅要保證網(wǎng)站的流量提升,還要預防DDOS攻擊,那么在Linux系統(tǒng)下要如何檢測DDOS攻擊呢?又該如何防止DDOS攻擊呢?這都是一門學問。

linux檢測及防止DDOS攻擊的技巧

  1、利用netstat 工具來檢測查看SYN連接

  netstat -n -p -t

  Active Internet connections (w/o servers)

  Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

  tcp 0 0 192.168.0.200:5050 192.168.0.38:48892 TIME_WAIT -

  tcp 0 0 192.168.0.200:5050 192.168.0.38:36604 TIME_WAIT -

  tcp 0 0 192.168.0.200:5050 192.168.0.38:52988 TIME_WAIT -

  tcp 0 0 192.168.0.200:5050 192.168.0.38:38911 TIME_WAIT -

  tcp 0 0 192.168.0.200:5050 192.168.0.38:58623 TIME_WAIT -

  tcp 0 0 192.168.0.200:43690 192.168.0.200:61616 ESTABLISHED 10415/java

  當然我上面的都是正常連接。當然TIME_WAIT如果占比過多,肯定也是不正常的。(要么受到了攻擊,要么需要參數(shù)調(diào)優(yōu)。)

  而受到DDOS惡意攻擊的情況下會在系統(tǒng)中看到的,很多連接處于SYN_RECV狀態(tài)(在WINDOWS系統(tǒng)中是SYN_RECEIVED狀態(tài))源IP地址都是隨機的,表明這是一種帶有IP欺騙的SYN攻擊。

  tcp 0 10.11.11.11:23 124.173.152.8:25882 SYN_RECV-

  tcp 0 10.11.11.11:23 236.15.133.204:2577 SYN_RECV-

  tcp 0 10.11.11.11:23 127.160.6.129:51748 SYN_RECV-

  具體主機的端口狀態(tài)有以下幾種:

  CLOSED:無連接是活動的或正在進行

  LISTEN:服務器在等待進入呼叫

  SYN_RECV:一個連接請求已經(jīng)到達,等待確認

  SYN_SENT:應用已經(jīng)開始,打開一個連接

  ESTABLISHED:正常數(shù)據(jù)傳輸狀態(tài)

  FIN_WAIT1:應用說它已經(jīng)完成

  FIN_WAIT2:另一邊已同意釋放

  ITMED_WAIT:等待所有分組死掉

  CLOSING:兩邊同時嘗試關閉

  TIME_WAIT:另一邊已初始化一個釋放

  LAST_ACK:等待所有分組死掉

  稍微更詳細的說明可以看下百度百科上對ESTABLISHED狀態(tài)的解釋及延伸。

  具體SYN_RECV狀態(tài)的統(tǒng)計比較多,我這里介紹兩種腳本的寫法:

  netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

  上面的腳本會列出所有狀態(tài)的連接數(shù)。

  netstat -n -p -t | grep SYN_RECV | grep :80 | wc -l

  當然,上面80是特指web站點受到DDOS攻擊。

  2、LINUX下DDOS SYN攻擊的防范

  防范也主要從兩方面入手,一是sysctl的自身的關于syn方面的配置,二是防火墻策略上。

  sysctl -w net.ipv4.tcp_syncookies=1 # tcp syncookie,默認關閉

  sysctl -w net.ipv4.tcp_max_syn_backlog=1280 # syn隊列,默認1024,》 1280可能工作不穩(wěn)定,需要修改內(nèi)核源碼參數(shù)

  sysctl -w net.ipv4.tcp_synack_retries=2 # syn-ack握手狀態(tài)重試次數(shù),默認5,遭受syn-flood攻擊時改為1或2

  sysctl -w net.ipv4.tcp_syn_retries=2 # 外向syn握手重試次數(shù),默認4

  以上四處是網(wǎng)上經(jīng)常提到的幾個地方,當然還有未提到的也可以通過下列命令查看。

 。踨oot@web3 nginx]# sysctl -a|grep syn

  net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60

  net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120

  net.ipv4.tcp_max_syn_backlog = 1024

  net.ipv4.tcp_syncookies = 1

  net.ipv4.tcp_synack_retries = 5

  net.ipv4.tcp_syn_retries = 5

  fs.quota.syncs = 25

  如未受到攻擊,上面的參數(shù)不建議修改。據(jù)說有增加主機的不穩(wěn)定性的風險。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關注
掃碼關注

掃碼關注 官方交流群 軟件收錄