中国投资网 百科 linux下防DDOS攻击软件及使用方法详解

linux下防DDOS攻击软件及使用方法详解

网络和现实社会一样,充满勾心斗角,网站被DDOS成为站长们最头疼的问题。在没有硬防御的情况下,找软件替代是最直接的方法,比如用iptables。但是iptables不能自动屏蔽,所以只能手动屏蔽。

1.什么是DDOS攻击?

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

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

在系统上执行:

netstat-NTU | awk“{ print $ 5 }”| cut-d:-f1 | sort | uniq-c | sort-n

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

以下是我自己用VPS测试的结果:

li88-99:~ # netstat-NTU | awk ' { print $ 5 } ' | cut-d:-f1 | sort | uniq-c | sort-n

1 114.226.9.132

1 174.129.237.157

1 58.60.118.142

1个地址

1台服务器)

2 118.26.131.78

3 123.125.1.202

3 220.248.43.119

4 117.36.231.253

4 119.162.46.124

6 219.140.232.128

8 220.181.61.31

2311 67.215.242.196

每个IP数几个,几十个,几十个连接还算正常,但如果像几百个以上,肯定就不正常了。

三。防止DDOS攻击的方法:

防止DDOS攻击的一些常用方法如下:

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

2.修改SYN设置以防御SYN攻击:

SYN攻击利用TCP/IP三次握手的原理,发送大量网络数据包建立连接,但实际上并没有建立连接,最终导致被攻击服务器的网络队列已满,正常用户无法访问。

Linux内核提供了几个与SYN相关的设置,使用命令:

sysctl -a | grep合成

参见:

net . IP v4 . 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 cookies吗?

函数,可以防止一些SYN攻击。Tcp_SYNack_retries和tcp_syn_retries定义syn。

重试次数。

增加SYN队列的长度可以容纳更多等待连接的网络连接,开启SYN Cookie可以阻塞其中的一部分。

SYN攻击,减少重试次数也有一定效果。

调整上述设置的方法是:

将SYN队列长度增加到2048:

sysctl-w net . IP v4 . TCP _ max _ syn _ backlog=2048

打开SYN COOKIE功能:

sysctl-w net . IP v4 . TCP _ syncookies=1

减少重试次数:

sysctl-w net . IP v4 . TCP _ synack _ retries=3

sysctl-w net . IP v4 . TCP _ syn _ retries=3

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

3.安装iptables屏蔽特定ip。

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

B.配置相应的iptables规则

例子如下:

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

iptables -I输入-p TCP-d端口80米连接限制-连接限制-高于50j拒绝

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

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

iptables-A INPUT-p TCPdport 80-m recentname BAD _ HTTP _ accessupdateseconds 60 \

点击计数30 -j拒绝

iptables-A INPUT-p TCPdport 80-m recentname BAD _ HTTP _ ACCESSset-j ACCEPT

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

(3)使用iptables进行IP屏蔽

iptables-I RH-lok kit-0-50-输入1-p TCP-m TCP-s 213.8.166.227-d端口80 - syn -j拒绝

指定端口的参数是-dport 80;多syn参数可以自动检测同步攻击。

(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接受

C.确认

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

(2)检查效果:

使用

watch watch ' netstat-an | grep:21 | \ grep模拟攻击客户端的IP | WC-L '

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

使用

观看“iptables-l-n-v | \ grep模拟攻击客户端的IP”

检查模拟攻击客户端丢弃的数据包数量。

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 $150)}' drop_ip.txt

为我在'猫滴_ip.txt '

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

完成的

这个外壳每隔几分钟执行一次,它可以自动阻止那些异常的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 $150)}' drop_ip.txt

为我在'猫滴_ip.txt '

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

完成的

换句话说,grep -v -E '192.168|127.0 '的意思是排除内网IP,这样才不会把自己屏蔽掉。当然,你也可以加入一些自己的IP。

4.安装DDOSdeflate自动防御DDoS攻击:

DDoSdeflate是一个免费的脚本,用于防止和缓解DDoS攻击。它通过netstat监控和跟踪大量网络连接的IP地址,当检测到某个节点超过预设的限制时,程序会通过APF或IPTABLES禁止或屏蔽这些IP地址。

DDoSdeflate官网:

(1)安装DDoSdeflate。

wget

Mod0700Install.sh//Add权限。/install.sh //执行

(2)配置DDoSdeflate

以下是位于/usr/local/ddos/ddos.conf中的DDoSdeflate的默认配置,内容如下:

#####脚本和其他文件的路径

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 '

#####运行脚本的频率(分钟)

#####注意:每次更改此设置时,请使用cron运行脚本

#####选项,以便新频率生效

FREQ=1 //检查时间间隔,默认为1分钟

#####多少个连接定义一个坏IP?请在下面注明。

NO_OF_CONNECTIONS=150 //最大连接数,如果超过这个数,IP将被阻塞,这通常是默认的。

##### APF_BAN=1(确保您的APF版本至少为0.96)

##### APF_BAN=0(使用iptables而不是APF来禁止IP)

APF_BAN=1 //要使用APF或iptables,建议使用iptables。

##### KILL=0(不良IP不会被禁止,有利于脚本的交互执行)

##### KILL=1(推荐设置)

KILL=1 //是否屏蔽IP,默认就可以了。

####当一个IP被禁止时,一封电子邮件被发送到以下地址。

#####空白将禁止发送邮件

EMAIL_TO='root' //当IP被阻止时,向指定邮箱发送电子邮件。建议用,换成自己的邮箱就行了。

#####被禁止的ip应该保留在黑名单中的秒数。

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

用户可以根据添加到默认配置文件中的评论内容来修改帖子。放置文件。

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

5.在5上安装mod _ evangelicate组件。阿帕奇增强弹性

mod _ evangelicate是防止Apache受到DDos攻击的模块,可以防止同一个IP发送同一个URI。

本文来自网络,不代表本站立场,转载请注明出处:https:

linux下防DDOS攻击软件及使用方法详解

中国投资网后续将为您提供丰富、全面的关于linux下防DDOS攻击软件及使用方法详解内容,让您第一时间了解到关于linux下防DDOS攻击软件及使用方法详解的热门信息。小编将持续从百度新闻、搜狗百科、微博热搜、知乎热门问答以及部分合作站点渠道收集和补充完善信息。