`
zhengdl126
  • 浏览: 2511905 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

linux下防DDOS攻击的工具与方法【转】

 
阅读更多

一、什么是DDOS攻击?

DDoS也就是分布式拒绝服务攻击。它使用与普通的拒绝服务攻击同样的方法,但是发起攻击的源是多个。通 常攻击者使用下载的工具渗透无保护的主机,当获得该主机的适当的访问权限后,攻击者在主机中安装软件的服务或进程(以下简称代理)。这些代理保持睡眠状 态,直到从它们的主控端得到指令,对指定的目标发起拒绝服务攻击。

二、如何确认自己受到DDOS攻击?

在系统上执行:

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

执行后,将会显示服务器上所有的每个IP多少个连接数。

每个IP几个、十几个或几十个连接数都还算比较正常,如果有成百上千肯定就不正常了。

三、防范DDOS攻击的方法:

一些常用的防DDOS攻击的方法,罗列如下:

1.增加硬件防火墙和增加硬件设备来承载和抵御DDOS攻击,最基本的方法,但成本比较高。

2.修改SYN设置抵御SYN攻击:

SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。

Linux内核提供了若干SYN相关的配置,用命令:

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队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie

功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN

的重试次数。

加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分

SYN攻击,降低重试次数也有一定效果。

调整上述设置的方法是:

增加SYN队列长度到2048:

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

打开SYN COOKIE功能:

sysctl -w net.ipv4.tcp_syncookies=1

降低重试次数:

sysctl -w net.ipv4.tcp_synack_retries=3

sysctl -w net.ipv4.tcp_syn_retries=3

为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。

3.安装iptables对特定ip进行屏蔽。

A.安装iptables和系统内核版本对应的内核模块kernel-smp-modules-connlimit

B. 配置相应的iptables规则

示例如下:

(1)控制单个IP的最大并发连接数

iptables -I INPUT -p tcp –dport 80 -m connlimit –connlimit-above 50 -j REJECT

#允许单个IP的最大连接数为 30

(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数

iptables -A INPUT -p tcp –dport 80 -m recent –name BAD_HTTP_ACCESS –update –seconds 60 \

–hitcount 30 -j REJECT

iptables -A INPUT -p tcp –dport 80 -m recent –name BAD_HTTP_ACCESS –set -j ACCEPT

#单个IP在60秒内只允许最多新建30个连接

(3)用iptables屏蔽IP

iptables -I RH-Lokkit-0-50-INPUT 1 -p tcp -m tcp -s 213.8.166.227 --dport 80 --syn -j REJECT

指定端口的参数是--dport 80;多了--syn参数,可以自动检测sync攻击

(4)使用iptables禁止ping:

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 2 -j ACCEPT-A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-port-unreachable

(5)允许某ip连接

iptables -I RH-Firewall-1-INPUT 1 -p tcp -m tcp -s 192.168.0.51 --syn -j ACCEPT

C. 验证

(1)工具:flood_connect.c(用来模拟攻击)

(2)查看效果:

使用

watch ‘netstat -an | grep:21 | \ grep《 模拟攻击客户机的IP》| wc -l’

实时查看模拟攻击客户机建立起来的连接数,

使用

watch ‘iptables -L -n -v | \grep《 模拟攻击客户机的IP》’

查看模拟攻击客户机被 DROP 的数据包数。

D.注意

为了增强iptables防止CC攻击的能力,最好调整一下ipt_recent的参数如下:

#cat/etc/modprobe.conf

options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60

#记录1000个IP地址,每个地址记录60个数据包

#modprobe ipt_recent

E.可编写脚本自动提取攻击ip然后自动屏蔽:

*/2 * * * * /usr/local/nginx/var/log/drop.sh

#!/bin/sh

cd /usr/local/nginx/var/log

tail access.log -n 1000 |grep vote.php | |sort |uniq -c |sort -nr |awk ‘{if ($2!=null && $1》50)}’ 》 drop_ip.txt

for i in `cat drop_ip.txt`

do

/sbin/iptables -I INPUT -s $i -j DROP;

done

这shell 每几分钟执行一次,就可自动屏蔽那些不正常IP,相信大家都看的懂,下面是针对连接数屏蔽代码

#!/bin/sh

/bin/netstat -ant |grep 80 |awk ‘{print $5}’ |awk -F : ‘{print $1}’ |sort |uniq -c |sort -rn |grep -v -E ‘192.168|127.0’ |awk ‘{if ($2!=null && $1》50)}’ 》 drop_ip.txt

for i in `cat drop_ip.txt`

do

/sbin/iptables -I INPUT -s $i -j DROP;

done

说下,grep -v -E ‘192.168|127.0’ 也就是排除内网IP,免得把自己给屏蔽了,当然还可以加些自己的IP。

4.安装DDoS deflate自动抵御DDOS攻击:

DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP.

DDoS deflate官方网站:

(1)安装DDoS deflate

wget http://www.inetbase.com/scripts/ddos/install.sh chmod 0700 install.sh ./install.sh

(2)配置DDoS deflate

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

##### Paths of the script 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” //定时执行程序

APF=”/etc/apf/apf”

IPT=”/sbin/iptables”

##### frequency in minutes 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 many connections define a bad IP? Indicate that below.

NO_OF_CONNECTIONS=150 //最大连接数,超过这个数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

##### KILL=0 (Bad IPs are’nt banned good for interactive execution of script)

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

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

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

##### Blank would suppress sending of mails

EMAIL_TO=”root” //当IP被屏蔽时给指定邮箱发送邮件,推荐使用,换成自己的邮箱即可

##### Number of seconds the banned ip should remain in blacklist.

BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整

用户可根据给默认配置文件加上的注释提示内容,修改配置文件。

喜欢折腾的可以用Web压力测试软件(《Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程》)测试一下效果,这东西只能防御小流量的攻击了,聊胜于无吧。

5.APACHE上安装mod_evasive 组件增强抵御力

mod_evasive是一个预防Apache 遭受DDos 攻击的模块,可以防止同一个IP 对相同URI 发出的大量请求,可设定的选项有:

– 限制同一个IP 在一定秒数内请求一个页面或档案的次数。

– 限制同一个IP 一秒内只可发出50 个请求。

– 设定被禁止的 IP 封锁时间。

以下是 mod_evasive 的安装方法:

A. 先将原来的 httpd.conf 备份起来。

B. 到

C. 在指令模式解压及编译 mod_evasive:

tar zxvf mod_evasive_1.10.1.tar.gz

cd mod_evasive/

apxs -cia mod_evasive20.c

以上的apxs 会放在Apache 的bin 目录内;如果Apache 版本是1.3 的话,指令要改为:

apxs -cia mod_evasive.c

安装好mod_evasive 后,便要修改httpd.conf 内容。

D. 开启 httpd.conf,加入以内容:

DOSHashTableSize 3097

DOSPageCount 5

DOSSiteCount 100

DOSPageInterval 2

DOSSiteInterval 2

DOSBlockingPeriod 10

DOSBlockingPeriod 600

DOSHashTableSize — 这是占用内存的大小,如果服务器比较繁忙,这个数值要设定大一点。

DOSPageCount — 同一IP 在一个时段内可以存取同一页面的次数,超过会被禁止。

DOSSiteCount — 同一IP 在一个网站内可以占用多少object,超过会禁止。

DOSPageInterval — DOSPageCount 内的时段设定。

DOSSiteInterval — DOSSiteCount 的时间设定,以秒为单位。

DOSBlockingPeriod — 当发现疑似攻击后,使用者会收到403 Forbidden,这是设定封锁的时间,以秒为单位。

E. 最后重新启动 Apache 即可。

不定时补充。

分享到:
评论

相关推荐

    ddos防流量攻击

    centos,linux使用ddos的防止流量攻击。 一般的vps小服务器使用 小范围的阻止

    win版apache防ddos mod_dosevasive22

    mod_dosevasive是一种提供躲避 HTTP DOS/DDOS攻击或暴力强制攻击的apache模块。它同样可以用作网络探测和管理的工具,通过简单的配置,就可以同ipchains(ip链?)防 火墙,路由器等设备进行对话。并通过email或系统...

    论文研究-Web服务中基于流量监控的DDoS攻击防范机制.pdf

    使用Linux内核的安全选项、Linux虚拟服务器、iptables防火墙以及基于类的排队等技术搭建防范DDoS攻击的Web服务器系统环境,设计、实现了流量监控器和分析工具来检测可能发生的DDoS攻击,并降低其危害。实际测试表明...

    服务器安全狗linux版V2.0(V2.0.00634)

    服务器安全狗Linux版(SafeDog for Linux Server)是为Linux服务器开发的一款服务器管理软件,它集成了DDOS攻击检测和防御系统、流量统计、帐户监控和设置、登录监控、系统参数快速设置、系统运行状态直观展示、系统...

    HexaFind:HexaFind - Unix 和 Linux 网络攻击工具检测项目。-开源

    除国家外,针对公司、个人和个人的网络攻击的频率... Linux/UNIX 操作系统明显缺乏网络攻击工具检测产品,因此该项目也应该解决这种不平衡问题。 在社会中,UNIX / Linux 操作系统只占当今世界使用的操作系统的极小部分

    hw蓝队面试百题斩-完整版

    这份资源是一个详尽的hw蓝队面试资料,专为hw面试准备而设计,涵盖了广泛的网络安全主题。...核心内容还包括对安全工具的选择和使用、各类网络攻击的识别与防御策略、高级日志分析技巧及异常检测方法的介绍。

    DDoS-Attack-Detection-and-Mitigation

    DDoS攻击检测和缓解DDoS攻击缓解功能,用于hping3工具攻击限制/缓解。 注意:每件事都是为基于debian / ubuntu的linux环境定义的。遵循的步骤1. Installing required packages2. Running server3. Distributing ...

    网络安全思维导图

    DDoS攻击及对策.jpg Linux检查脚本.jpeg SAE运维体系.jpg SIEM系统的结构图.jpg TCP:IP参考模型的安全协议分层.jpg TCP:IP参考模型的安全服务与安全机制.jpg WPDRRC模型.jpg 业务运维.jpg 信息安全.jpg ...

    网络安全威胁与对策.docx

    2.2 应对防御措施 首先须配置防御能力可靠的防火墻,以及安装LINUX、UNIX系统的"防御主机",以便在DDOS攻击到来时,从主要服务器分流天量数据请求;其次要扩充服务器数量及网络带宽,避免服务器被强制瘫痪,必要时与...

    Linux常用网络工具:hping高级主机扫描

     hping还可以伪造源IP,用来发起DDos攻击。  hping官方网站:http://www.hping.org/  hping的源代码编译安装  hping的源代码托管在GitHub,地址:https://github.com/antirez/hping。  编译及安装命令: ...

    悬镜管家 v3.0 免费版

    在网络防火墙中包括了网络层攻击防护:DDos攻击防护;局域网连接防护:Ping命令防护、外网连接防护、SSH防护。这里您可以使用的权限是开关这些防护以及定义这些防护规则。 5.木马查杀 木马查杀功能主要是对网站...

    服务器系统安全分析报告.doc

    防DDOS攻击 1)使用Linux系统强大的命令手段防范Dos攻击 2)购买托管机房硬件防火墙的使用权,可以有效的防止较大的DDOS 攻击。 8.保护LINUX不被入侵 1)禁用不必要的网络 一般来说,除了http、smtp、telnet之外,其他服务...

    思维导图大全.rar

    DDoS攻击及对策.jpg diamond_threat_model.png JavaWeb简介.png LAMPer技能树.jpeg Linux Security Coaching.png Linux检查脚本.jpeg Maltego使用导图.jpg Nmap 思维导图.png MPDRR模型.jpg NMAP by_mx

    网络安全技术概述.docx

    防火墙也是由软件和硬件组成的,在设计和实现上都不可避免地存在着缺陷,对防火墙的攻击方法也是多种多样的,如探测攻击技术、认证的攻击技术等。 2.1.6利用病毒攻击 病毒是黑客实施网络攻击的有效手段之一,它具有...

    网络安全复习题(2).doc

    一、选择题 1、要启用文件和文件夹的审核,需要使用哪些工具()。... () A、缓存溢出攻击 B、钓鱼攻击 C、暗门攻击 D、DDOS攻击 29、一般来说,一个Internet的防火墙是建立在网络的()。 A、内部子网之间传送

    物联网数据集CIC IoT Dataset 2023和(TON-IoT)、以及网络数据集UNSW-NB15 Dataset 私聊

    该数据集包含33种攻击,分为7类,包括DDoS、DoS、侦察、基于Web的攻击、暴力破解、欺骗和Mirai。 TON_IoT数据集是一种新型的物联网(IoT)网络测试平台架构,可以用来评估人工智能(AI)安全应用程序。该平台采用了...

    tfn2k.tar.gz

    当前互联网中的unix、solaris和windows nt等平台的主机能被用于此类攻击,而且这个工具非常容易被移植到其它系统平台上。  tfn2k由两部分组成:在主控端主机上的客户端和在代理端主机上的守护进程。主控端向其...

    Network Emulator:高速数据包的分布式网络仿真工具-开源

    它可以帮助使用Lightweigth C ++虚拟机(LwCVM)研究基于僵尸网络的DDoS攻击,以模拟僵尸程序。 该项目基于以下项目和库:TCP / IP堆栈的LightweighIP pthread libpcap,用于与虚拟机通信dynamips Linux MicroCore

    服务器选择方案对比.docx

    容灾备份 数据备份 快照策略 故障恢复 安全可靠 安全防护 DDoS攻击 安全管家 灵活扩展 服务器上架 数分钟即可开通,快速部署 服务器交付周期长(半个月~1个月) 变更配置 高度弹性、即时扩容,在线调整配置和镜像 ...

Global site tag (gtag.js) - Google Analytics