用squid是利用端口映射的功能,可以將80端口轉(zhuǎn)換一下,其實(shí)一般的DDOS攻擊可以修改/proc/sys/net/ipv4/tcp_max_syn_backlog里的參數(shù)就行了,默認(rèn)參數(shù)一般都很小,設(shè)為8000以上,一般的DDOS攻擊就可以解決了。如果上升到timeout階段,可以將/proc/sys/net/ipv4/tcp_fin_timeout設(shè)小點(diǎn)。
鳳城網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
大家都在討論DDOS,個(gè)人認(rèn)為目前沒(méi)有真正解決的方法,只是在緩沖和防御能力上的擴(kuò)充,跟黑客玩一個(gè)心理戰(zhàn)術(shù),看誰(shuí)堅(jiān)持到最后,網(wǎng)上也有很多做法,例如syncookies等,就是復(fù)雜點(diǎn)。
sysctl -w net.ipv4.icmp_echo_ignore_all=1
echo 1 /proc/sys/net/ipv4/tcp_syncookies
sysctl -w net.ipv4.tcp_max_syn_backlog="2048"
sysctl -w net.ipv4.tcp_synack_retries="3"
iptables -A INPUT -i eth0 -p tcp --syn -j syn-flood
# Limit 12 connections per second (burst to 24)
iptables -A syn-flood -m limit --limit 12/s --limit-burst 24 -j RETURN
這個(gè)地方可以試著該該:
iptbales -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
虛擬主機(jī)服務(wù)商在運(yùn)營(yíng)過(guò)程中可能會(huì)受到黑客攻擊,常見(jiàn)的攻擊方式有SYN,DDOS等。
通過(guò)更換IP,查找被攻擊的站點(diǎn)可能避開(kāi)攻擊,但是中斷服務(wù)的時(shí)間比較長(zhǎng)。比較徹底
的解決方法是添置硬件防火墻。不過(guò),硬件防火墻價(jià)格比較昂貴??梢钥紤]利用Linux
系統(tǒng)本身提供的防火墻功能來(lái)防御。
1. 抵御SYN
SYN攻擊是利用TCP/IP協(xié)議3次握手的原理,發(fā)送大量的建立連接的網(wǎng)絡(luò)包,但不實(shí)際
建立連接,最終導(dǎo)致被攻擊服務(wù)器的網(wǎng)絡(luò)隊(duì)列被占滿,無(wú)法被正常用戶(hù)訪問(wèn)。
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隊(duì)列的長(zhǎng)度,tcp_syncookies是一個(gè)開(kāi)關(guān),是否打開(kāi)SYN Cookie
功能,該功能可以防止部分SYN攻擊。tcp_synack_retries和tcp_syn_retries定義SYN
的重試次數(shù)。
加大SYN隊(duì)列長(zhǎng)度可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù),打開(kāi)SYN Cookie功能可以阻止部分
SYN攻擊,降低重試次數(shù)也有一定效果。
調(diào)整上述設(shè)置的方法是:
增加SYN隊(duì)列長(zhǎng)度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打開(kāi)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)重啟動(dòng)時(shí)保持上述配置,可將上述命令加入到/etc/rc.d/rc.local文件中。
2. 抵御DDOS
DDOS,分布式拒絕訪問(wèn)攻擊,是指黑客組織來(lái)自不同來(lái)源的許多主機(jī),向常見(jiàn)的端口,如80,
25等發(fā)送大量連接,但這些客戶(hù)端只建立連接,不是正常訪問(wèn)。由于一般Apache配置的接受連接
數(shù)有限(通常為256),這些“假” 訪問(wèn)會(huì)把Apache占滿,正常訪問(wèn)無(wú)法進(jìn)行。
使用ipchains抵御DDOS,就是首先通過(guò)netstat命令發(fā)現(xiàn)攻擊來(lái)源地址,然后用ipchains命令阻斷
攻擊。發(fā)現(xiàn)一個(gè)阻斷一個(gè)。
首先查看ipchains服務(wù)是否設(shè)為自動(dòng)啟動(dòng):
chkconfig --list ipchains
DDOS和CC攻擊的區(qū)別
dos攻擊指借助于客戶(hù)/服務(wù)器技術(shù),將多個(gè)計(jì)算機(jī)聯(lián)合起來(lái)作為攻擊平臺(tái),對(duì)一個(gè)或多個(gè)目標(biāo)發(fā)動(dòng)攻擊,從而成倍地提高拒絕服務(wù)攻擊的威力。ddos的攻擊方式有很多種,最基本的dos攻擊就是利用合理的服務(wù)請(qǐng)求來(lái)占用過(guò)多的服務(wù)資源,從而使合法用戶(hù)無(wú)法得到服務(wù)的響應(yīng)。
CC攻擊模擬多個(gè)用戶(hù)(多少線程就是多少用戶(hù))不停的進(jìn)行訪問(wèn)(訪問(wèn)那些需要大量數(shù)據(jù)操作,就是需要大量CPU時(shí)間的頁(yè)面).這一點(diǎn)用一個(gè)一般的性能測(cè)試軟件就可以做到大量模擬用戶(hù)并發(fā)。CC攻擊的原理就是攻擊者控制某些主機(jī)不停地發(fā)大量數(shù)據(jù)包給對(duì)方服務(wù)器造成服務(wù)器資源耗盡,一直到宕機(jī)崩潰。
ddos攻擊和cc攻擊區(qū)別主要是針對(duì)對(duì)象的不同。DDoS是主要針對(duì)IP的攻擊,而CC攻擊的主要是網(wǎng)頁(yè)。CC攻擊相對(duì)來(lái)說(shuō),攻擊的危害不是毀滅性的,但是持續(xù)時(shí)間長(zhǎng);而ddos攻擊就是流量攻擊,這種攻擊的危害性較大,通過(guò)向目標(biāo)服務(wù)器發(fā)送大量數(shù)據(jù)包,耗盡其帶寬,甚至影響整個(gè)機(jī)房網(wǎng)絡(luò),所以一般的云服務(wù)商都是會(huì)設(shè)置有DDos防御值,比如阿里云都是免費(fèi)5G的防御值,超過(guò)了后會(huì)把IP拉入黑洞,由此可看DDoS的威力更大。
那么如何做好CC和DDoS的防御呢?
其中高防服務(wù)器和高防IP價(jià)格相對(duì)較貴,主機(jī)吧推薦使用高防CDN,比如百度云加速高防CDN,價(jià)格既便宜,防御又好,還可以加速,還有清晰的報(bào)表顯示,非常不錯(cuò)。
百度云加速提供四到七層的DDoS攻擊防護(hù),包括CC、SYN flood、UDP flood等所有DDoS攻擊方式, 通過(guò)分布式高性能防火墻+精準(zhǔn)流量清洗+CC防御+WEB攻擊攔截,組合過(guò)濾精確識(shí)別,有效防御各種類(lèi)型攻擊。相關(guān)鏈接
服務(wù)器出現(xiàn)緩慢的狀況可能由很多事情導(dǎo)致,比如錯(cuò)誤的配置,腳本和差的硬件。但是有時(shí)候它可能因?yàn)橛腥藢?duì)你的服務(wù)器用DoS或者DDoS進(jìn)行洪水攻擊。
如何在Linux上使用netstat命令查證DDOS攻擊
DoS攻擊或者DDoS攻擊是試圖讓機(jī)器或者網(wǎng)絡(luò)資源不可用的攻擊。這種攻擊的攻擊目標(biāo)網(wǎng)站或者服務(wù)通常是托管在高防服務(wù)器比如銀行,信用卡支付網(wǎng)管,甚至根域名服務(wù)器,DOS攻擊的實(shí)施通常迫使目標(biāo)重啟計(jì)算機(jī)或者消耗資源,使他們不再提供服務(wù)或者妨礙用戶(hù),訪客訪問(wèn)。
在這篇小文章中,你可以知道在受到攻擊之后如何在終端中使用netstat命令檢查你的服務(wù)器。
一些例子和解釋
netstat -na顯示所有連接到服務(wù)器的活躍的網(wǎng)絡(luò)連接netstat -an | grep :80 | sort只顯示連接到80段口的活躍的網(wǎng)絡(luò)連接,80是http端口,這對(duì)于web服務(wù)器非常有用,并且對(duì)結(jié)果排序.對(duì)于你從許多的連接中找出單個(gè)發(fā)動(dòng)洪水攻擊IP非常有用netstat -n -p|grep SYN_REC | wc -l這個(gè)命令對(duì)于在服務(wù)器上找出活躍的SYNC_REC非常有用,數(shù)量應(yīng)該很低,最好少于5.在dos攻擊和郵件炸彈,這個(gè)數(shù)字可能非常高.然而值通常依賴(lài)于系統(tǒng),所以高的值可能平分給另外的服務(wù)器.netstat -n -p | grep SYN_REC | sort -u列出所有包含的IP地址而不僅僅是計(jì)數(shù).netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'列出所有不同的IP地址節(jié)點(diǎn)發(fā)送SYN_REC的連接狀態(tài)netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n使用netstat命令來(lái)計(jì)算每個(gè)IP地址對(duì)服務(wù)器的連接數(shù)量netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n列出使用tcp和udp連接到服務(wù)器的數(shù)目netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr檢查ESTABLISHED連接而不是所有連接,這可以每個(gè)ip的連接數(shù)netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1顯示并且列出連接到80端口IP地址和連接數(shù).80被用來(lái)作為HTTP
如何緩解DDoS攻擊
當(dāng)你發(fā)現(xiàn)攻擊你服務(wù)器的IP你可以使用下面的命令來(lái)關(guān)閉他們的連接:
iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
請(qǐng)注意你必須用你使用netstat命令找到的IP數(shù)替換$IPADRESS
在完成以上的命令,使用下面的命令殺掉所有httpd連接,清除你的系統(tǒng),然后重啟httpd服務(wù)。
killall -KILL httpd service httpd start #For Red Hat systems /etc/init/d/apache2 restar
Linux系統(tǒng)用netstat命令查看DDOS攻擊具體命令用法如下:
代碼如下:netstat -na
顯示所有連接到服務(wù)器的活躍的網(wǎng)絡(luò)連接
代碼如下:netstat -an | grep :80 | sort
只顯示連接到80段口的活躍的網(wǎng)絡(luò)連接,80是http端口,這對(duì)于web服務(wù)器非常有用,并且對(duì)結(jié)果排序.對(duì)于你從許多的連接中找出單個(gè)發(fā)動(dòng)洪水攻擊IP非常有用
代碼如下:netstat -n -p|grep SYN_REC | wc -l
這個(gè)命令對(duì)于在服務(wù)器上找出活躍的SYNC_REC非常有用,數(shù)量應(yīng)該很低,最好少于5.
在dos攻擊和郵件炸彈,這個(gè)數(shù)字可能非常高.然而值通常依賴(lài)于系統(tǒng),所以高的值可能平分給另外的服務(wù)器.
代碼如下:netstat -n -p | grep SYN_REC | sort -u
列出所有包含的IP地址而不僅僅是計(jì)數(shù).
代碼如下:netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
列出所有不同的IP地址節(jié)點(diǎn)發(fā)送SYN_REC的連接狀態(tài)
代碼如下:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
使用netstat命令來(lái)計(jì)算每個(gè)IP地址對(duì)服務(wù)器的連接數(shù)量
代碼如下:netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
列出使用tcp和udp連接到服務(wù)器的數(shù)目
代碼如下:netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
檢查ESTABLISHED連接而不是所有連接,這可以每個(gè)ip的連接數(shù)
代碼如下:netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
顯示并且列出連接到80端口IP地址和連接數(shù).80被用來(lái)作為HTTP
如何緩解ddos攻擊
當(dāng)你發(fā)現(xiàn)攻擊你服務(wù)器的IP你可以使用下面的命令來(lái)關(guān)閉他們的連接:
代碼如下:iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT
請(qǐng)注意你必須用你使用netstat命令找到的IP數(shù)替換$IPADRESS
使用DDoS deflate腳本自動(dòng)屏蔽攻擊ip
DDoS deflate是一款免費(fèi)的用來(lái)防御和減輕DDoS攻擊的腳本。它通過(guò)netstat監(jiān)測(cè)跟蹤創(chuàng)建大量網(wǎng)絡(luò)連接的IP地址,在檢測(cè)到某個(gè)結(jié)點(diǎn)超過(guò)預(yù)設(shè)的限制時(shí),該程序會(huì)通過(guò)APF或IPTABLES禁止或阻擋這些IP.
DDoS deflate其實(shí)是一個(gè)Shell腳本,使用netstat和iptables工具,對(duì)那些鏈接數(shù)過(guò)多的IP進(jìn)行封鎖,能有效防止通用的惡意掃描器,但它并不是真正有效的DDoS防御工具。
DDoS deflate工作過(guò)程描述:
同一個(gè)IP鏈接到服務(wù)器的連接數(shù)到達(dá)設(shè)置的伐值后,所有超過(guò)伐值的IP將被屏蔽,同時(shí)把屏蔽的IP寫(xiě)入ignore.ip.list文件中,與此同時(shí)會(huì)在tmp中生成一個(gè)腳本文件,這個(gè)腳本文件馬上被執(zhí)行,但是一
運(yùn)行就遇到sleep預(yù)設(shè)的秒,當(dāng)睡眠了這么多的時(shí)間后,解除被屏蔽的IP,同時(shí)把之前寫(xiě)入ignore.ip.list文件中的這個(gè)被封鎖的IP刪除,然后刪除臨時(shí)生成的文件。
一個(gè)事實(shí):如果被屏蔽的IP手工解屏蔽,那么如果這個(gè)IP繼續(xù)產(chǎn)生攻擊,那么腳本將不會(huì)再次屏蔽它(因?yàn)榧尤氲搅薸gnore.ip.list),直到在預(yù)設(shè)的時(shí)間之后才能起作用,加入到了ignore.ip.list中的
IP是檢測(cè)的時(shí)候忽略的IP。可以把IP寫(xiě)入到這個(gè)文件以避免這些IP被堵塞,已經(jīng)堵塞了的IP也會(huì)加入到ignore.ip.list中,但堵塞了預(yù)定時(shí)間后會(huì)從它之中刪除。
如何確認(rèn)是否受到DDOS攻擊?
[root@test3-237 ~]# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1 Address
1 servers)
2 103.10.86.5
4 117.36.231.253
4 19.62.46.24
6 29.140.22.18
8 220.181.161.131
2911 167.215.42.88
每個(gè)IP幾個(gè)、十幾個(gè)或幾十個(gè)連接數(shù)都還算比較正常,如果像上面成百上千肯定就不正常了。比如上面的167.215.42.88,這個(gè)ip的連接有2911個(gè)!這個(gè)看起來(lái)就很像是被攻擊了!
Linux 防止DDOS方法
方法一:先說(shuō)這個(gè)簡(jiǎn)單效果不大的方法,Linux一般是apache做web服務(wù)軟件,一般來(lái)說(shuō)按照訪問(wèn)習(xí)慣全是設(shè)置的80端口。你可以改變一下服務(wù)端口,編輯httpd.conf文件,Linux下不清楚路徑可以
find / -name httpd.conf
然后
vi $path$/httpd.conf
找到里面的
listen:80
更改為
listen:8080
重新啟動(dòng)apache,這樣你的站點(diǎn)就運(yùn)行在8080端口下了。
方法二:,方法一中攻擊者如果對(duì)你足夠關(guān)注的話還是會(huì)再攻擊你的8080端口,所以還是會(huì)死得很慘,那么如何更有效的阻止攻擊呢。這就要用到iptables了,安裝一下iptables然后再配置一下。
iptables下載:
下載文件的名字一般是iptables-1.*.*.tar.bz2
下載完后解壓縮
tar -xvjf ./iptables-1.*.*.tar.bz2 -C /usr/src
我是解壓到了/usr/src里
然后
cd /usr/src/iptables-1.*.*
安裝:
/bin/sh -c make
/bin/sh -c make install
可以用iptables -V來(lái)檢查安裝是否正確。
如果有問(wèn)題用這個(gè)命令修復(fù)一下
cp ./iptables /sbin
iptables的使用:
安裝了iptables后先關(guān)閉ICMP服務(wù)
iptables -A OUTPUT -p icmp -d 0/0 -j DROP
這個(gè)是做什么的呢,最簡(jiǎn)單直觀的說(shuō)就是你服務(wù)器上的ip不能被ping到了,這個(gè)能防止一部分攻擊。
比如你跟你的ISP聯(lián)系了知道了ddos的來(lái)源ip 200.200.200.1可以用下面這個(gè)命令來(lái)阻止來(lái)自這個(gè)ip的數(shù)據(jù)流
iptables -A INPUT -s 200.200.200.1 -j DROP
說(shuō)明:這個(gè)命令里200.200.200.1/24 200.200.200.* 格式都是有效的。
執(zhí)行完后你輸入命令
iptables -L
會(huì)看到下面的結(jié)果
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 200.200.200.1 anywhere
你每輸入一個(gè)iptables命令都會(huì)有個(gè)對(duì)應(yīng)的num號(hào),比如上面你執(zhí)行的這個(gè)是第一次執(zhí)行的那么這個(gè)對(duì)應(yīng)的input id就是1,刪除這個(gè)限制只要
iptables -D INPUT 1就可以了。
因?yàn)樵贒DOS這個(gè)過(guò)程里很多ip是偽造的,如果你能找到他們的來(lái)源的mac地址(你太厲害了,太有關(guān)系了)那么你還可以用這個(gè)命令來(lái)禁止來(lái)自這個(gè)mac地址的數(shù)據(jù)流:
iptables -A INPUT --mac-source 00:0B:AB:45:56:42 -j DROP
以上是幾個(gè)簡(jiǎn)單應(yīng)用,關(guān)于一些別的應(yīng)用我下面給出的英文文獻(xiàn)里還有,大家可以根據(jù)自己的情況來(lái)利用iptables防止DDOS攻擊。
文章名稱(chēng):linux命令ddos linux命令grep用法
轉(zhuǎn)載來(lái)于:http://jinyejixie.com/article2/hpdhic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、網(wǎng)站內(nèi)鏈、網(wǎng)站改版、品牌網(wǎng)站制作、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)