.DDoS概念
分布式拒絕服務攻擊(英文意思是Distributed Denial of Service,簡稱DDoS)是指處于不同位置的多個攻擊者同時向一個或數個目標發動攻擊,或者一個攻擊者控制了位于不同位置的多臺機器并利用這些機器對受害者同時實施攻擊。由于攻擊的發出點是分布在不同地方的,這類攻擊稱為分布式拒絕服務攻擊,其中的攻擊者可以有多個。
防御DDOS是一個系統工程,攻擊花樣多,防御的成本高瓶頸多,防御起來即被動又無奈。DDOS的 特點是分布式,針對帶寬和服務攻擊,也就是四層流量攻擊和七層應用攻擊,相應的防御瓶頸四層在帶寬,七層的多在架構的吞吐量。對于七層的應用攻擊,我們還 是可以做一些配置來防御的,例如前端是Nginx,主要使用nginx的http_limit_conn和http_limit_req模塊來防御。 ngx_http_limit_conn_module 可以限制單個IP的連接數,ngx_http_limit_req_module 可以限制單個IP每秒請求數,通過限制連接數和請求數能相對有效的防御CC攻擊。
(2).編寫查看DDos攻擊的腳本
1234 [root@youxi1 ~]# yum -y install net-tools[root@youxi1 ~]# vim ddos-ip.shnetstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n[root@youxi1 ~]# chmod +x ddos-ip.sh
說明:netstat -ntu查看網絡相關信息,-n拒絕別名(顯示IP地址和端口號),-t是TCP協議,-u是UDP協議;
awk '{print $5}'是將網絡信息以空格為分隔符取第5位參數;
cut -d: -f1是將傳來的信息以冒號作為分隔符,取第1位參數;
sort排序;
uniq -c去重并進行統計;
sort -n根據字符串的數值比較進行排序,即比較統計的數值大小比較。
擴展:ss命令也可以查看網絡相關的監控,而且執行速度比netstat命令快,但是ss命令執行命令卻稍有不同ss -antu | awk '{print $6}' | cut -d: -f4 | uniq -c | sort -n。另外,這兩條命令統計的都是1分鐘以內的網絡連接信息。
模擬DDos攻擊
12345678 [root@youxi1 ~]# yum -y install httpd //需要壓測命令ab[root@youxi1 ~]# ab -n 100 -c 10 http://192.168.5.101/index.html//立即執行腳本[root@youxi1 ~]# ./ddos-ip.sh1 Address1 servers)2 192.168.5.1101 192.168.5.101
(3).防御DDos攻擊
防御DDos的方法:添加防火墻規則、加大帶寬、增加服務器、使用CDNA技術、高防服務器和帶流量清洗的ISP、流量清洗服務等,還有前段自帶的防御功能,例如nginx:nginx防止DDOS攻擊配置或nginx調優(二)。
最常見的一般是添加防火墻規則,如果IP地址數較少可以手動添加,如果IP地址數較多一般會使用軟件自動添加,例如:fail2ban(通過分析日志來判斷是否使用iptables攔截,已支持firewalld防火墻,詳情:https://blog.csdn.net/qq_23587541/article/details/84190650)、DDoS deflate(通過netstat判斷ip連接數,并使用iptables屏蔽)。
1)DDos deflate介紹
DDoS deflate是一款免費的用來防御和減輕DDoS攻擊的腳本。它通過netstat監測跟蹤創建大量網絡連接的IP地址,在檢測到某個節點超過預設的限制時,該程序會通過APF或iptables禁止或阻擋這些IP。
2)安裝
GitHUb下載地址:https://github.com/jgmdev/ddos-deflate(ss命令好像沒有調試好)
inetbase下載地址:Index of /scripts/ddos
下載install.sh文件并上傳至服務器。我使用的是GitHub下載,這是一個zip文件,需要安裝unzip
1234567891011121314 [root@youxi1 ~]# yum -y install unzip[root@youxi1 ~]# unzip ddos-deflate-master.zip[root@youxi1 ~]# cd ddos-de
最好的方法就是更換高防服務器,具體解決方案可以關注作者,教你安全小常識