国产成人毛片毛片久久网_国产午夜激无码av毛片不_国产乱对白精彩在线播放_av资源站中文字幕_亚洲男人的天堂网站_国产成 人 综合 亚洲网_中国国产激情一区_少妇一级淫片免费放_亚洲一本大道av久在线播放_免费观看美女裸体网站

行業(yè)動態(tài)

防御吧作為15年知名老牌域名服務(wù)商,CNNIC和CANN雙認證域名注冊商,已經(jīng)
持續(xù)為500多萬個域名提供服務(wù),包括智能DNS/自由轉(zhuǎn)移/隱私保護等服務(wù)!
服務(wù)器防御DDOS攻擊方案
2019-05-23 10:26:11 【

服務(wù)器防御DDOS攻擊方案


一、DDOS防范


1、一般的DDOS攻擊可以修改/proc/sys/net/ipv4/tcp_max_syn_backlog里的參數(shù)就行了,默認參數(shù)一般都很小,設(shè)為8000以上,一般的DDOS攻擊就可以解決了。


2、如果上升到timeout階段,可以將/proc/sys/net/ipv4/tcp_fin_timeout設(shè)小點。


3、比較徹底的解決方法是添置硬件防火墻。不過,硬件防火墻價格比較昂貴?梢钥紤]利用Linux系統(tǒng)本身提供的防火墻功能來防御。


①防止syn攻擊(DDOOS攻擊的一種)


代碼如下


iptables -I INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

iptables -I FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT    防止同步包洪水(Sync Flood)


②防止各種端口掃描


代碼如下


iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT


③Ping洪水攻擊(Ping of Death)


代碼如下


iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT


④、Linux下設(shè)置


如果你的服務(wù)器配置不太好,TCPTIME_WAIT套接字數(shù)量達到兩、三萬,服務(wù)器很容易被拖死。通過修改Linux內(nèi)核參數(shù),可以減少服務(wù)器的TIME_WAIT套接字數(shù)量。


TIME_WAIT查看命令: netstat-an | grep "TIME_WAIT" | wc -l


在Linux下,如CentOS,可以通過修改/etc/sysctl.conf文件來達到目的。


查看SYN相關(guān)的配置


/sbin/sysctl -a |grep syn


vim /etc/sysctl.conf


增加以下幾行:以下是代碼片段:


代碼如下


net.ipv4.tcp_fin_timeout = 30            

net.ipv4.tcp_keepalive_time = 1200      

net.ipv4.tcp_syncookies = 1            

net.ipv4.tcp_tw_reuse = 1              

net.ipv4.tcp_tw_recycle = 1            

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_max_syn_backlog = 2048    

net.ipv4.tcp_max_tw_buckets = 5000      

net.ipv4.tcp_synack_retries = 3              

net.ipv4.tcp_syn_retries = 3                


net.ipv4.tcp_fin_timeout                       修改系統(tǒng)默認的TIMEOUT 時間。


net.ipv4.tcp_keepalive_time= 1200              表示當keepalive起用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為20分鐘。


net.ipv4.tcp_syncookies= 1                      表示開啟SYNCookies。當出現(xiàn)SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關(guān)閉;


net.ipv4.tcp_tw_reuse= 1                       表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關(guān)閉;


net.ipv4.tcp_tw_recycle= 1                     表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關(guān)閉;


net.ipv4.ip_local_port_range= 10000 65000         表示用于向外連接的端口范圍。缺省情況下很。32768到61000,改為10000到65000。(注意:這里不要將最低值設(shè)的太低,否則可能會占用掉正常的端口!)


net.ipv4.tcp_max_syn_backlog= 8192             表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。


net.ipv4.tcp_max_tw_buckets= 5000             表示系統(tǒng)同時保持TIME_WAIT的最大數(shù)量,如果超過這個數(shù)字,TIME_WAIT將立刻被清除并打印警告信息。默認為180000,改為5000。對于Apache、Nginx等服務(wù)器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字數(shù)量,但是對于 Squid,效果卻不大。此項參數(shù)可以控制TIME_WAIT的最大數(shù)量,避免Squid服務(wù)器被大量的TIME_WAIT拖死。


net.ipv4.tcp_synack_retries                      為了打開對端的連接,內(nèi)核需要發(fā)送一個SYN并附帶一個回應(yīng)前面一個SYN的ACK。也就是所謂三次握手中的第二次握手。這個設(shè)置決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量。


net.ipv4.tcp_syn_retries                         在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量



加大SYN隊列長度可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù),打開SYN Cookie功能可以阻止部分SYN攻擊,降低重試次數(shù)也有一定效果。


=========================================================================================================


二、檢測SYN攻擊

1、# netstat -n -p -t

tcp0 0 10.11.11.11:23124.173.152.8:25882 SYN_RECV-

tcp0 0 10.11.11.11:23236.15.133.204:2577 SYN_RECV-

tcp0 0 10.11.11.11:23127.160.6.129:51748 SYN_RECV-

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

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

324

查看在LINUX環(huán)境下某個端囗的未連接隊列的條目數(shù),顯示TCP端囗22的未連接數(shù)有324個,雖然還遠達不到系統(tǒng)極限,但應(yīng)該引起管理員的注意。

3、# netstat -na | grep SYN_RECV

tcp 0 0 58.193.192.20:80 221.0.108.162:32383 SYN_RECV

tcp 0 0 58.193.192.20:80 125.85.118.231:2601 SYN_RECV

tcp 0 0 58.193.192.20:80 222.242.171.215:2696 SYN_RECV

tcp 0 0 58.193.192.20:80 116.52.10.51:2629 SYN_RECV

tcp 0 0 58.193.192.20:80 218.171.175.157:1117

4、# netstat -na | grep SYN_RECV |wc

11 66 979


=========================================================================================================


三、SYN配置


1、查看系統(tǒng)SYN相關(guān)的配置

# /sbin/sysctl -a | grep syn

net.ipv6.conf.default.max_desync_factor = 600

net.ipv6.conf.all.max_desync_factor = 600

net.ipv6.conf.eth0.max_desync_factor = 600

net.ipv6.conf.lo.max_desync_factor = 600

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 = 1280

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 5

fs.quota.syncs = 18

2、SYN相關(guān)配置


防范SYN攻擊設(shè)置,縮短SYN-Timeout時間:

iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT

iptables -A INPUT -i eth0 -m limit –limit 1/sec –limit-burst 5 -j ACCEPT


每秒最多3個 syn 封包進入表達為 :

iptables -N syn-flood

iptables -A INPUT -p tcp –syn -j syn-flood

iptables -A syn-flood -p tcp –syn -m limit –limit 1/s –limit-burst 3 -j RETURN

iptables -A syn-flood -j REJECT

#設(shè)置syncookies:

sysctl -w net.ipv4.conf.all.send_redirects=0

sysctl -w net.ipv4.conf.all.accept_redirects=0

sysctl -w net.ipv4.conf.all.forwarding=0

/sbin/sysctl -w net.ipv4.conf.default.accept_source_route=0 # 禁用icmp源路由選項

/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 # 忽略icmp ping廣播包,應(yīng)開啟

/sbin/sysctl -w net.ipv4.icmp_echo_ignore_all=1 # 忽略所有icmp ping數(shù)據(jù),覆蓋上一項


=========================================================================================================


四、受到DDOS攻擊后,如何處理和切換


1、使用iptables屏蔽攻擊IP


首先使用以下代碼,找出攻擊者IP


netstat -ntu | awk'{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n


以下命令將顯示所有打開你的服務(wù)器的活躍連接,如果它顯示連接超過500,那么將肯定有問題。


使用以下代碼顯示連接到80段口的活躍的網(wǎng)絡(luò)連接


netstat -n | grep:80 |wc -l


以下命令結(jié)果是100或以上,那么服務(wù)器可能被同步攻擊。


netstat -n | grep:80 | grep SYN |wc -l



一旦你獲得了攻擊你的服務(wù)器的IP列表,你可以很容易地阻止它。


使用下面的命令來阻止IP或任何其他特定的IP:


route addipaddress reject


一旦你在服務(wù)器上阻止了一個特定IP的訪問,你可以檢查對它的阻止是否有效


通過使用下面的命令:


route -n |grepIPaddress



當你發(fā)現(xiàn)攻擊你服務(wù)器的IP你可以使用下面的命令來關(guān)閉他們的連接:


iptables -A INPUT1 -s $IPADRESS -j DROP/REJECT


請注意你必須用你使用netstat命令找到的IP數(shù)替換$IPADRESS


service iptablesrestart


service iptablessave


上面的命令執(zhí)行后,停止httpd連接,重啟httpd服務(wù)


使用下面的命令:


killall -KILLhttpd


service httpdstartssl



2、軟件解決


㈠、使用DDoS deflate+iptables


DDoS deflate是一款免費的用來防御和減輕DDoS攻擊的腳本。它通過netstat監(jiān)測跟蹤創(chuàng)建大量網(wǎng)絡(luò)連接的IP地址,在檢測到某個結(jié)點超過預(yù)設(shè)的限制時,該程序會通過APF或IPTABLES禁止或阻擋這些IP.


安裝DDoS deflate

wget http://www.inetbase.com/scripts/ddos/install.sh //下載DDoSdeflate

chmod 0700 install.sh //添加權(quán)限

./install.sh //執(zhí)行


配置DDoS deflate


下面是DDoS deflate的默認配置位于/usr/local/ddos/ddos.conf,默認如下:


##### Paths of thescript and other files

PROGDIR="/usr/local/ddos"

PROG="/usr/local/ddos/ddos.sh"

IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" //IP地址白名單

CRON="/etc/cron.d/ddos.cron" //定時執(zhí)行程序

APF="/etc/apf/apf"

IPT="/sbin/iptables"



##### frequency inminutes for running the script

##### Caution: Every time this setting is changed, run the script with --cron

##### option so that the new frequency takes effect

FREQ=1 //檢查時間間隔,默認1分鐘


##### How manyconnections define a bad IP? Indicate that below.

NO_OF_CONNECTIONS=150 //最大連接數(shù),超過這個數(shù)IP就會被屏蔽,一般默認即可


##### APF_BAN=1(Make sure your APF version is atleast 0.96)

##### APF_BAN=0 (Uses iptables for banning ips instead of APF)

APF_BAN=1 //使用APF還是iptables。推薦使用iptables,將APF_BAN的值改為0即可。


##### KILL=0 (BadIPs are'nt banned, good for interactive execution of script)

##### KILL=1 (Recommended setting)

KILL=1 //是否屏蔽IP,默認即可


##### An email issent to the following address when an IP is banned.

##### Blank would suppress sending of mails

EMAIL_TO="root" //當IP被屏蔽時給指定郵箱發(fā)送郵件,推薦使用,換成自己的郵箱即可



##### Number ofseconds the banned ip should remain in blacklist.

BAN_PERIOD=600 //禁用IP時間,默認600秒,可根據(jù)情況調(diào)整


用戶可根據(jù)給默認配置文件加上的注釋提示內(nèi)容,修改配置文件。


查看/usr/local/ddos/ddos.sh文件的第117行


netstat -ntu | awk‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST


修改為以下代碼即可!


netstat -ntu | awk‘{print $5}’ | cut -d: -f1 | sed -n ‘/[0-9]/p’ | sort |uniq -c | sort -nr > $BAD_IP_LIST




測試防御ddos攻擊效果


NO_OF_CONNECTIONS=3        

#這里為了方便測試,設(shè)置為3。生產(chǎn)環(huán)境下,幾十到幾百都可以理解為正常,上千肯定就是不正常了,除非是應(yīng)用內(nèi)部各個服務(wù)器之間的通信

通過一臺固定ip的機器ssh連接該服務(wù)器,當連接到超過3甚至更多時,不會立刻顯示連不上,因為ddos.sh默認一分鐘運行一次,當過不到一分鐘時,會發(fā)現(xiàn)連接掉了,查看部署了防ddos軟件的服務(wù)器上可以看到iptables的策略中多了:


DROP all --31.210.16.29.broad.cs.gd.dynamic.163data.com.cn anywhere


說明確實生效了,當10分鐘后,iptables上這條策略會被取消的


關(guān)于如何查看單個IP的連接數(shù)目可以通過如下命令查看,依次排列:


netstat -na|grep ESTABLISHED|awk'{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n

..............

    40 127.0.0.1

     1 121.9.252.28

     1 173.117.140.69


ddos攻擊很常見,攻擊效果也很好,比如像前段時間由于維基創(chuàng)始人引發(fā)的那次大范圍的攻擊。

如果有專門防止ddos的硬件設(shè)備的話最好,沒有的話就利用DDoS-Deflate結(jié)合iptables在一定程度上防范ddos攻擊也是一種很好的策略。


㈡、使用智能dns解析,自動解析到好的服務(wù)器


需要在dnspod.cn購買


㈢、使用負載均衡


兩臺或兩臺服務(wù)器以上,LVS+Keepalive或LVS+heartbeat實現(xiàn)雙機或多機熱備



】【打印關(guān)閉】 【返回頂部
分享到QQ空間
分享到: 
上一篇防ddos攻擊解決方案 下一篇網(wǎng)絡(luò)安全等級保護制度正式邁入2.0..

立足首都,輻射全球,防御吧專注云防御及云計算服務(wù)15年!

聯(lián)系我們

服務(wù)熱線:13051179500 18910191973
企業(yè)QQ:1245940436
技術(shù)支持:010-56159998
E-Mail:xihedata.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解決防御與加速) 版權(quán)所有 增值許可:京B2-20140042號
售前咨詢
公司總機:18910191973
24小時電話:010-56159998
投訴電話:18910191973
值班售后/技術(shù)支持
售后服務(wù)/財務(wù)
備案專員
緊急電話:18610088800