1).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
最好的方法就是更换高防服务器,具体解决方案可以关注作者,教你安全小常识