DDos攻击解决办法

(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攻击的脚本

[[email protected] ~]# yum -y install net-tools
[[email protected] ~]# vim ddos-ip.sh
netstat -ntu | awk ‘{print $5}‘ | cut -d: -f1 | sort | uniq -c | sort -n
[[email protected] ~]# 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攻击

[[email protected] ~]# yum -y install httpd  //需要压测命令ab
[[email protected] ~]# ab -n 100 -c 10 http://192.168.5.101/index.html
//立即执行脚本
[[email protected] ~]# ./ddos-ip.sh
1 Address
1 servers)
2 192.168.5.1
101 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下载地址:http://www.inetbase.com/scripts/ddos/

  下载install.sh文件并上传至服务器。我使用的是GitHub下载,这是一个zip文件,需要安装unzip

[[email protected] ~]# yum -y install unzip
[[email protected] ~]# unzip ddos-deflate-master.zip
[[email protected] ~]# cd ddos-deflate-master/
[[email protected] ddos-deflate-master]# ls
ChangeLog  install.sh  Makefile  README.md  uninstall.sh
config     LICENSE     man       src
[[email protected] ddos-deflate-master]# ll install.sh
-rwxr-xr-x 1 root root 5788 5月  29 23:36 install.sh
[[email protected] ddos-deflate-master]# ./install.sh  //执行安装,都是yum安装
//在最后会出现安装地址
Installation has completed!
Config files are located at /etc/ddos/
[[email protected] ddos-deflate-master]# ls /etc/ddos/
ddos.conf  ignore.host.list  ignore.ip.list

  查看配置文件

[[email protected] ddos-deflate-master]# vim /etc/ddos/ddos.conf  //查看配置文件
//脚本和其他文件的路径
# Paths of the script and other files
PROGDIR="/usr/local/ddos"
SBINDIR="/usr/local/sbin"
PROG="$PROGDIR/ddos.sh"  //执行脚本地址
IGNORE_IP_LIST="ignore.ip.list"  //IP地址白名单列表
IGNORE_HOST_LIST="ignore.host.list"  //主机白名单列表
CRON="/etc/cron.d/ddos"  //计划任务文件地址
//防火墙命令地址
APF="/usr/sbin/apf"
CSF="/usr/sbin/csf"
IPF="/sbin/ipfw"
IPT="/sbin/iptables"
IPT6="/sbin/ip6tables"
TC="/sbin/tc"
//第22行,检查DDos时间间隔,默认1分钟
FREQ=1
//第25行,作为一个守护进程时,运行的频率,单位秒
DAEMON_FREQ=5
//第28行,最大连接数,超过该数值后IP就会被禁止,一般默认即可
NO_OF_CONNECTIONS=150
//第33行,为true时仅统计接入连接,会比统计in/out更慢禁止
ONLY_INCOMING=false
//第38行,为true时脚本将会使用tcpdump扫描由CloudFlare服务器发送的CF-Connecting-IP头标签,
//并且禁止使用iptables字符串匹配模块
ENABLE_CLOUDFLARE=false
//第43行,为true时启用PORT_CONNECTIONS,与ONLY_INCOMING相同,但更慢
ENABLE_PORTS=false
//第54行,端口连接检测,为每个端口分配监听规则,格式为“端口(或端口端):最大连接数:禁用时间(单位秒)”
PORT_CONNECTIONS="80:150:600 443:150:600 20-21:150:600"
//第58行,使用的防火墙,包括:auto, apf, csf, ipfw, and iptables
FIREWALL="auto"
//第62行,当ip被屏蔽是给指定邮箱发送邮件
EMAIL_TO="root"
//第65行,IP禁止时间,单位秒
BAN_PERIOD=600
//第71行,要阻止的连接状态,状态之间使用冒号分隔,例如:established:syn-sent:syn-recv:fin-wait-1:fin-wait-2
//该例默认情况下,会阻止监听和关闭之外的所有状态,状态详见:man ss
CONN_STATES="connected"
//第74行,当使用netstat时要阻止的连接状态,状态详见:man netstat。那理论上,上面是使用ss时阻止的连接状态?
CONN_STATES_NS="ESTABLISHED|SYN_SENT|SYN_RECV|FIN_WAIT1|FIN_WAIT2|TIME_WAIT|CLOSE_WAIT|LAST_ACK|CLOSING"
//第78行,是否监控每个ip使用的带宽,超过时降低速率(需要iftop和tc命令)
BANDWIDTH_CONTROL=false
//第82行,触发降速的带宽速率,目前支持kbit和mbit
BANDWIDTH_CONTROL_LIMIT="1896kbit"
//第87行,触发降速时,会在指定时间周期内,速率上限
BANDWIDTH_DROP_RATE="512kbit"
//第91行,降速的时间周期,单位秒,即600秒内会有速率上限
BANDWIDTH_DROP_PERIOD=600
//第95行,如果为true时,仅考虑从客户端接收的数据,而不考虑服务器发给客户端的数据
BANDWIDTH_ONLY_INCOMING=true

  注意:在配置文件中,ENABLE_PORTS(第43行)参数开启时,PORT_CONNECTIONS(第54行)才能使用;BANDWIDTH_CONTROL(第78行)参数开启时,BANDWIDTH_CONTROL_LIMIT(第82行)、BANDWIDTH_DROP_RATE(第87行)、BANDWIDTH_DROP_PERIOD(第91行)、BANDWIDTH_ONLY_INCOMING(第95行)才能使用。

  另外最新DDoS deflate已支持systemctl命令管理

[[email protected] ~]# systemctl status ddos
● ddos.service - (D)Dos Deflate
   Loaded: loaded (/usr/lib/systemd/system/ddos.service; enabled; vendor preset: disabled)
   Active: active (running) since 六 2019-08-31 17:40:05 CST; 8min ago
  Process: 1126 ExecStart=/usr/local/sbin/ddos --start (code=exited, status=0/SUCCESS)
 Main PID: 1163 (ddos.sh)
   CGroup: /system.slice/ddos.service
           ├─1163 /bin/sh /usr/local/ddos/ddos.sh -l
           └─4375 sleep 5

8月 31 17:40:04 youxi1 systemd[1]: Starting (D)Dos Deflate...
8月 31 17:40:05 youxi1 ddos[1126]: starting ddos daemon...
8月 31 17:40:05 youxi1 systemd[1]: Started (D)Dos Deflate.

  由于DDos deflate目前不支持firewalld,所以需要安装iptables

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[[email protected] ~]# yum -y install iptables-services
[[email protected] ~]# systemctl start iptables
[[email protected] ~]# systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.[[email protected] ~]# iptables -F  //清空规则方便实验

  注意:最新版的DDos deflate1.3版(GitHUb下载)使用了ss命令,但是ss命令使用-ntu选项时对已完成的网络连接不进行统计,我个人感觉没有原来的(inetbase下载)好。原来的使用请看:https://blog.csdn.net/huangyuxin_/article/details/100116403

3)卸载

  运行./uninstall.sh即可。

参考:https://www.cnblogs.com/bokejiayuan/p/4341350.html

   https://blog.csdn.net/huangyuxin_/article/details/100116403

原文地址:https://www.cnblogs.com/diantong/p/11438756.html

时间: 2024-11-08 17:06:16

DDos攻击解决办法的相关文章

SylixOS ARP攻击解决办法

1.ARP攻击介绍 1.1 ARP协议 ARP(地址解析协议)位于数据链路层,主要负责将某个IP地址解析成对应的MAC地址. 1.2 ARP原理 当局域网中的某台机器A要向机器B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输.如果未找到,则A广播一个ARP请求报文(携带机器A的IP地址,物理地址),请求B的IP地址回答对应的MAC地址.局域网所有机器包括B都收到ARP请求,但只有机器B识别自己的IP地址,于是向A主机发回一个ARP响应报文.其中就包含有B

XSS漏洞攻击原理与解决办法

转自:http://www.frostsky.com/2011/10/xss-hack/ 对于的用户输入中出现XSS漏洞的问题,主要是由于开发人员对XSS了解不足,安全的意识不够造成的.现在让我们来普及一下XSS的一些常识,以后在开发的时候,每当有用户输入的内容时,都要加倍小心.请记住两条原则:过滤输入和转义输出. 一.什么是XSS XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里

记一次ntp反射放大ddos攻击

2018/3/26 ,共计310G左右的DDoS攻击 临时解决办法:将web服务转移到同生产一个内网段的备份服务器a上,a提供web端口80,数据库通过内网连接还是沿用生产数据库. 抓包分析 NTP反射和放大攻击 无论是基于 DNS 还是基于 NTP,其最终都是基于 UDP 协议的.在 UDP 协议中正常情况下客户端发送请求包到服务端,服务端返回响应包到客户端,但是 UDP 协议是面向无连接的,所以客户端发送请求包的源 IP 很容易进行伪造,当把源 IP 修改为受害者的 IP,最终服务端返回的响

谁遭到过ddos攻击怎么才能有效预防DDOS/CC攻击

关键词:遭到ddos攻击 有效预防 DDOS/CC攻击 简介:随着网络攻击的简单化,如今ddos攻击已经不止出现在大型网站中,就连很多中小型网站甚至是个人网站往往都可能面临着被DDoS攻击的的风险.或许很多站长对DDoS攻击并不是很了解,及时网站被攻击时往往不能及时发现,导致网站出现经常性大不开的情况,,为了让站长们避免网络受到DDoS攻击上的影响.下面由我详细给大家介绍一下网站受ddos.cc攻击的表现以及查看方法. 网站遭到DDOS攻击时候的表现: 一.服务器CPU被大量侵占: DDOS攻击

从分析攻击方式来谈如何防御DDoS攻击

DDoS攻击的定义: DDoS攻击全称--分布式拒绝服务攻击,是网络攻击中非常常见的攻击方式.在进行攻击的时候,这种方式可以对不同地点的大量计算机进行攻击,进行攻击的时候主要是对攻击的目标发送超过其处理能力的数据包,使攻击目标出现瘫痪的情况,不能提供正常的服务.   DDoS攻击类型: ICMP Flood:通过对目标系统发送海量数据包,就可以令目标主机瘫痪,如果大量发送就成了洪水攻击. UDP Flood:攻击者通常发送大量伪造源IP地址的小UDP包,100k bps的就能 将线路上的骨干设备

网站被攻击了怎么办?3种网站攻击的解决办法

随着互联网的发展,越来越多的人们开始认识到网络宣传的优越性.大大小小的网站层出不穷.然而随着网站数量的增加,出现的问题也大大增多.同行之间的竞争.也随之体现在了网络之间.一些不法分子也逐渐转移阵地到网络上来谋取利益.同行之间往往雇佣黑客打压对手攻击对方网站,甚至有些人故意攻击别人网站索要保护费.不给钱就攻击你,让你网站瘫痪.对于这类事情,网站主往往是求助无门干着急,不得已妥协. 各位站长在做站的工程中应该都会遇到类似的问题,虽然我们勤勤恳恳的做自己的站,但是突然有一天会发现我们的网站突然就被人黑

【转】WEB网站常见受攻击方式及解决办法

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码的数据.当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行.通过XSS可以比较容易地修改用户数据.窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击 常见解决办法:确保输出到HTML页面的数据以HTML的方式被转

WEB网站常见受攻击方式及解决办法

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码的数据.当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行.通过XSS可以比较容易地修改用户数据.窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击 常见解决办法:确保输出到HTML页面的数据以HTML的方式被转

如何通过系统自身来解决网站受到的DDOS攻击?

判定网站是否有SYN攻击: 在网上邻居右键选择属性双击网卡后可看到数据,每秒钟收到的数据包大于500,则可以判定一定是受到了SYNFLOOD DDoS 攻击.还有一个方法就是点击开始,选择运行,输入cmd,弹出cmd窗口后,键入命令符:c:\netstat -na,如果收到了大量的SYN_RECEIVED连接状态则可判定为有SYNFLOOD攻击,第三种做法就是插上网线之后,服务器凝固无法操作,或者能操作后又比较卡,需要重启才可以恢复,这说明了受到了SYNFlood DDoS攻击. 判定TCP多连