1. 下载:
wget http://www.inetbase.com/scripts/ddos/install.sh
2. 安装:
chmod +x install.sh
sudo ./install.sh
-
安装时会显示一个协议(很长一篇英文),按q退出 ,如下图是按q 关闭协议后安装成功
3. 配置:
sudo vim /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被屏蔽时给指定邮箱发送邮件,把root换成自己的邮箱即可
##### Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600 //禁用IP时间,默认600秒,可根据情况调整
4. 启动:
sudo ddos -c
查看了原作者统计ip连接数的命令,发现有点小问题,修复如下:
把/usr/local/ddos/ddos.sh
中117行的
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
修改成如下
netstat -ntu | grep ":" | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
启动异常排查:
- 报错如下:
./ddos.sh: 13: [: /usr/local/ddos/ddos.conf: unexpected operator
DDoS-Deflate version 0.6
Copyright (C) 2005, Zaf <zaf@vsnl.com>
$CONF not found.
【解决方法】: 修改脚本, 把第一行的!/bin/sh
改成!/bin/bash
sudo vim /usr/local/ddos/ddos.sh
- 报错如下:
Failed to restart crond.service: Unit crond.service not found.
【解决方法】:把脚本中的service crond restart
修改成service cron restart
,cornd
和corn
都是linux中自带的定时服务,只是有些linux中服务名不叫cornd
,而是corn
。如: ubuntu
ddos deflate 参数
# 显示帮助
ddos –h
#创建计划任务定期运行脚本 【启动】
ddos –c
# 阻止超过n个连接的所有IP地址。
ddos -k 数量(默认150)