linux中防DDOS攻击软件DDoS-Deflate详解

DDoS-Deflate安装及配置

1、安装

 代码如下 复制代码
wget http://www.inetbase.com/scripts/ddos/install.sh
chmod 0700 install.sh
./install.sh

2、配置

配置文件是 /usr/local/ddos/ddos.conf ,默认有如下配置

 代码如下 复制代码
FREQ=1
NO_OF_CONNECTIONS=150
APF_BAN=0
KILL=1
EMAIL_TO="test@qq.com"
BAN_PERIOD=600

配置参数的解释:

FREQ=1 ;检测时间间隔,默认是一分钟,如果修改这个要重新设置Cron Job
NO_OF_CONNECTIONS=150 ;最大连接数,超过这个就会禁止IP
APF_BAN=1 ;使用APF设置为1,使用iptables设置为0
KILL=1 ;是否禁止IP
EMAIL_TO=”root” ;邮件通知,写上接收邮件的邮箱
BAN_PERIOD=600 ;禁止IP时长,默认是600秒

IP地址白名单:/usr/local/ddos/ignore.ip.list
卸载

 代码如下 复制代码
wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
chmod 0700 uninstall.ddos
./uninstall.ddos

查看IP

 代码如下 复制代码

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

来做测试,看能否封掉IP.

 代码如下 复制代码
iptables -L -n

如下图,192.168.1.200就被封掉了:

补充:防范DDOS攻击脚本

 代码如下 复制代码

#防止SYN攻击 轻量级预防
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT
#防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超过的丢弃
iptables -A INPUT -i eth0 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

#用Iptables抵御DDOS (参数与上相同)
iptables -A INPUT  -p tcp --syn -m limit --limit 12/s --limit-burst 24 -j ACCEPT
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
##########################################################

iptables防DDOS攻击脚本

 代码如下 复制代码

#!/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

时间: 2024-11-05 23:22:49

linux中防DDOS攻击软件DDoS-Deflate详解的相关文章

php中防xss攻击和sql注入详解

XSS攻击  代码如下 复制代码 任意执行代码 文件包含以及CSRF. } 关于SQL攻击有很多文章还有各种防注入脚本,但是都不能解决SQL注入的根本问题 见代码:  代码如下 复制代码 <?php mysql_connect("localhost","root","123456")or die("数据库连接失败!"); mysql_select_db("test1"); $user=$_post['

linux中防CC攻击两种实现方法

什么是CC攻击 cc攻击简单就是(ChallengeCollapsar) CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止. 防止CC

linux中php-fpm进程数优化与分析详解

在几个不是很繁忙的线上服务器发现php-fpm进程数达到500多,且存在一些运行时间长达几个月的进程. 进行了以下排查,以确定:phpfpm运行是否有问题,是否需要重启. 查看这些进程是否被正常启动 由于php-fpm.log中,会以notice级别打印worker进程的启动和回收时间,故可以通过以下语句检查有哪些php没有被记录到(ps axuf可以查看到进程的父子关系):  代码如下 复制代码 $cd /path/to/php-fpm.log $for word in `ps axu | g

linux中Docker把应用放到容器里详解

在现实生活中,容器就是用来装东西的东西.把你的应用放到容器里,容器里的环境你可以自由定制,你可以在里面安装配置应用需要的任何东西,然后你可以把这个装载着应用的容器拿到任何地方去运行,这些地方不需要知道容器里面到底有什么,它只需要知道怎么样去运行这个容器就行了.Docker 提供了一系列的工具,让我们把应用放到容器里变得更简单. 镜像与容器 镜像与容器,image and container.基于镜像可以去创建容器,镜像有点像是容器的模板,比如你用 centos 镜像创建一个容器,这个容器里的环境

Linux中使用rpm安装软件包的方法详解

最近我在研究linux系统,简单得总结了一些常用得命令 主要是rpm安装命令 卸载 与查询 tar 解压缩 ,tar软件安装 文件删除 rm 可用于文件以及文件夹删除,另外rmdir用来删除空文件夹 用户相关 useradd 以及 passwd 权限相关 chmod 等 移动与重命名 mv tar:     tar xvfz xampp-linux-1.7.7.tar.gz -C /opt   [.tar.gz]     tar xvfj FileZilla.tar.bz2 -C /opt   

linux中sudo的用法和sudoers配置详解

sudo 是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的.它的特性主要有这样几点: 1.sudo能够限制用户只在某台主机上运行某些命令. 2.sudo提供了丰富的日志,详细地记录了每个用户干了什么.它能够将日志传到中心主机或者日志服务器. 3.sudo使用时间戳文件来执行类似的"

linux中vsftpd下虚拟用户+被动模式配置详解

下面说说在linux下部署vsftp的过程吧,小小笔记. 一.安装 这里我说下最简单的rpm包安装,因为光盘中有,何必编译呢? yum install db4* vsftpd -y 二.配置 1.新建系统用户 useradd vsftpd -s /sbin/nologin 限制vsftpd用户登录,此用户将最为vsftpd服务的宿主用户 useradd ftp -s /sbin/nologin 这里是Vsftpd虚拟宿主用户,默认情况下这个用户应该有. 当然这些用户你可以用另外的名字. 2.修改

Linux中rz命令和sz命令使用详解大全_linux shell

sz命令 用途说明:sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件.相对应的从本地上传文件到Linux服务器,可以使用rz命令. 常用参数 -a 以文本方式传输(ascii). -b 以二进制方式传输(binary). -e 对控制字符转义(escape),这可以保证文件传输正确. 如果能够确定所传输的文件是文本格式的,使用 sz -a files 如果是二进制文件,使用 sz -be files rz命令 -b 以二进制方式,默认为文本方式.(Bi

linux中]/var/log目录日志的作用详解

位于/var/log/目录之下有许多日志文件,这里记录一下相关用途.其中一些只有特定版本采用,如dpkg.log只能在基于Debian的系统中看到. /var/log/messages - 包括整体系统信息,其中也包含系统启动期间的日志.此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中. /var/log/dmesg - 包含内核缓冲信息(kernel ring buffer).在系统启动时,会在屏幕上显示许多与硬件有关的信息.可以用

linux中reboot与shutdown重启/关机命令详解

我们在操作Linux vps/服务器的时候肯定会有需要重启系统,或者关闭系统等操作.有些用户是直接到VPS主机商家面板上操作的,这样一来比较麻烦,二来有些面板还不易于使用容易导致面板卡死.所以最好的方法就是通过SSH命令操作,老蒋这里分享2个命令,reboot与shutdown都可以用来作为重启VPS/关机重启操作. 第一.reboot 使用方法:直接在SSH ROOT权限用户下输入reboot命令就可以看到The system is going down for reboot NOW的提示,目