linux中Iptables限制同一IP连接数防CC/DDOS攻击方法linux操作系统

时间:2023-02-13 07:47:01 其他范文 收藏本文 下载本文

linux中Iptables限制同一IP连接数防CC/DDOS攻击方法linux操作系统(通用3篇)由网友“姜惠元气满满”投稿提供,下面就是小编给大家带来的linux中Iptables限制同一IP连接数防CC/DDOS攻击方法linux操作系统,希望大家喜欢,可以帮助到有需要的朋友!

linux中Iptables限制同一IP连接数防CC/DDOS攻击方法linux操作系统

篇1:linux中Iptables限制同一IP连接数防CC/DDOS攻击方法linux操作系统

本文章来给大家介绍linux中Iptables限制同一IP连接数防CC/DDOS攻击方法,这个只是最基于的防止方法,如果真正的攻击我们还是需要硬件耿防止哦,

1.限制与80端口连接的IP最大连接数为10,可自定义修改。

代码如下复制代码

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j DROP

2.使用recent模块限制同IP时间内新请求连接数,recent更多功能请参考:Iptables模块recent应用。

代码如下复制代码

iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j LOG --log-prefix 'DDOS:' --log-ip-options

#60秒10个新连接,超过记录日志。

iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j DROP

#60秒10个新连接,超过丢弃数据包。

iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --set -j ACCEPT

#范围内允许通过。

上面的相对比较简单,下面我来分析更具体的配置方法。CentOS/Redhat/Fedora

在服务器执行

代码如下复制代码vi /etc/sysconfig/iptables

删除原来的内容输入如下内容 保存

# Generated by iptables-save v1.3.5 on Sun Dec 12 23:55:59

*filter

:INPUT DROP [385263:27864079]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [4367656:3514692346]

-A INPUT -i lo -j ACCEPT

-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -s 127.0.0.1 -j ACCEPT

-A INPUT -p tcp -m tcp –dport 80 -m state –state NEW -m recent –set –name WEB –rsource

-A INPUT -p tcp -m tcp –dport 80 -m state –state NEW -m recent –update –seconds 5 –hitcount 20 –rttl –name WEB –rsource -j DROP

-A INPUT -p tcp -m multiport –ports 21,22,80 -j ACCEPT

-A INPUT -p tcp -m tcp –tcp-flags SYN,RST,ACK SYN -m ttl –ttl-eq 117 -j DROP

-A INPUT -p tcp -m tcp –tcp-flags SYN,RST,ACK SYN -m length –length 0:40 -j DROP

-A INPUT -p tcp -m tcp ! –tcp-flags SYN,RST,ACK SYN -m state –state NEW -j DROP

COMMIT

# Completed on Sun Dec 12 23:55:59 2010

说明此设定仅对外开放21(FTP),22(SSH),80(http网站)三个TCP端口,

设置80端口5秒内20个连接

重启iptables服务 /etc/init.d/iptables restart

设定iptables随机启动chkconfig iptables on

篇2:linux下利用iptables防Ddos攻击配置linux操作系统

在linux中iptables防火墙比windows防火墙要强大我了,iptables可以直接防ddos攻击哦,下面我来给大家介绍几种在linux中利用防火墙防ddons攻击脚本,

使用iptables 设定单个客户机的指定时间内发起最大连接数请求,超过限制的直接DROP

代码如下复制代码

iptables -A INPUT -p tcp –dport 80 -m state –state NEW -m recent –set –name WEB

iptables -A INPUT -p tcp –dport 80 -m state –state NEW -m recent –update –seconds 30 –hitcount 20 –rttl –name WEB -j DROP

上例??0秒内20次

配置相应的iptables脚本

代码如下复制代码

#!/bin/sh

## define some vars

MAX_TOTAL_SYN_RECV=“1000”

MAX_PER_IP_SYN_RECV=“20”

MARK=“SYN_RECV”

PORT=“80”

LOGFILE=“/var/log/netstat_$MARK-$PORT”

LOGFILE_IP=“/var/log/netstat_connect_ip.log”

DROP_IP_LOG=“/var/log/netstat_syn_drop_ip.log”

## iptables default rules: accept normailly packages and drop baleful SYN* packages

iptables -F -t filter

iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

iptables -A INPUT -p ALL -m state --state INVALID -j DROP

iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT

## initialize

if [ -z $MARK ];then

MARK=“LISTEN”

fi

if [ -z $PORT ];then

SPORT=“tcp”

else

SPORT=“:$PORT”

fi

######################## end

## save the results of command netstat to specifal file

netstat -atun|grep $MARK|grep $SPORT 2>/dev/null >$LOGFILE

REPEAT_CONNECT_IP=`less $LOGFILE|awk '{print $5}'|cut -f1 -d ':'|sort|uniq -d |tee >$LOGFILE_IP`

if [ -f $DROP_IP_LOG ];then

for i in `less $DROP_IP_LOG`;do

iptables -A INPUT -p ALL -s $i -j DROP

done

fi

for i in `less $LOGFILE_IP`;do

REPEAT_CONNECT_NUM=`grep $i $LOGFILE|wc -l`

## count repeat connections ,if the accout is large than default number,then drop packages

if [ $REPEAT_CONNECT_NUM -gt $MAX_PER_IP_SYN_RECV ];then

echo “$i####$REPEAT_CONNECT_NUM” >>$DROP_IP_LOG

iptables -A INPUT -p ALL -s $i -j DROP

fi

done

ALL_CONNECT=`uniq -u $LOGFILE|wc -l`

#echo $ALL_CONNECT

## count repeat connections ,if the accout is large than default number,then drop packages

if [ $ALL_CONNECT -gt $MAX_TOTAL_SYN_RECV ];then

#echo $ALL_CONNECT

exit

fi

3.利用shell脚本

1、Shell脚本

代码如下复制代码

#!/bin/bash

/bin/netstat -na |grep ESTABLISHED |awk ‘{print $5}’ |awk -F : ‘{print $1}’ | sed ‘/^$/d’ |sort|uniq -c|sort -rn|head -n 10|grep -v -E ’192.168|127.0′ |sed ‘/^$/d’ |awk ‘{if ($2!=null && $1>10);{print $2}}’>/tmp/dropip

for i in $(cat /tmp/dropip)

do

/sbin/iptables -A INPUT -s $i -j DROP

echo “$i kill at `date`”>>/var/log/ddos

done

2.增加执行权限

代码如下复制代码chmod +x /root/bin/dropip.sh

3.添加到计划任务,每分钟执行一次

代码如下复制代码crontab -e

*/1 * * * * /root/bin/dropip.sh

说明:

以上脚本比较简单,但很实用,最重要的是第二行,获取ESTABLISHED连接数最多的前10个ip并写入临时文件/tmp/dropip,排除了内部ip段192.168|127.0开头的.通过for循环将dropip里面的ip通过iptables全部drop掉,然后写到日志文件/var/log/ddos

篇3:Linux防DDOS攻击一些方法总结linux操作系统

在linux中要防ddos攻击我们最常用的办法就是安装DDoS deflate来防止或减轻ddos攻击了,但还有使用其它方法,下面我来介绍一下,

DDoS deflate介绍

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

DDoS deflate :deflate.medialayer.com/

如何确认是否受到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 Address

1 servers)

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几个、十几个或几十个连接数都还算比较正常,如果像上面成百上千肯定就不正常了。

1、安装DDoS deflate123 wget www.inetbase.com/scripts/ddos/install.sh  //下载DDoS deflate

代码如下复制代码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,将APF_BAN的值改为0即可。

##### 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秒,可根据情况调整

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

查看/usr/local/ddos/ddos.sh文件的第117行 (部分需要个性,当发现默认的无效时再修改此处)

代码如下复制代码

netstat -ntu | awk `{print $5}` | cut -d: -f1 | sort | uniq -c | sort -nr >$BAD_IP_LIST

修改为以下代码即可!

代码如下复制代码

netstat -ntu | awk `{print $5}` | cut -d: -f1 | sed -n `/[0-9]/p` | sort | uniq -c | sort -nr >$BAD_IP_LIST

喜欢折腾的可以用Web压力测试软件测试一下效果,相信DDoS deflate还是能给你的VPS或服务器抵御一部分DDOS攻击,给你的网站更多的保护。

除了这种办法我们再推荐自己使用的一种防ddos攻击的方法

脚本

代码如下复制代码

wget www.inetbase.com/scripts/ddos/install.sh

chmod +x install.sh

./install.sh

如需卸载则

代码如下复制代码

wget www.inetbase.com/scripts/ddos/uninstall.sh

chmod +x uninstall.sh

./uninstall.sh

然后就安装成功了.对于一般的ddos应该没问题了.

学习心得如何总结

Linux操作系统中的防火墙技术及其应用

3DSMAX学习心得总结

win内置防火墙配置教程服务器教程

网络最高安全指南Windows系统

端口转发软件rinetd安装部署linux服务器应用

php实习报告

Discuz论坛安全加固WEB安全

网络管理员协议书

网络管理员面试题

linux中Iptables限制同一IP连接数防CC/DDOS攻击方法linux操作系统
《linux中Iptables限制同一IP连接数防CC/DDOS攻击方法linux操作系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【linux中Iptables限制同一IP连接数防CC/DDOS攻击方法linux操作系统(通用3篇)】相关文章:

NFS服务器安全的解析和解决2024-04-10

引 入瓮给Linux系统蒙上Windows面纱WEB安全2023-01-18

防止邮件服务器被滥用网络服务器2022-06-14

TC中如何使用汉字(完整解释)2022-05-16

Android字典造词功能2023-02-23

命令的范文2023-04-01

Ginwui后门程序分析2022-05-14

市场报告2022-06-20

决定和命令范文2022-10-15

CMM信息系统工程监理研究与实践论文2022-12-18