linux 防DDos脚本
DDOS攻击的确是件很悲剧的事情,对于没有实力购买硬件防火墙的小型企业甚至是个人站长来说,你的确需要一个免费的防DDOS攻击脚本.

使用iptables限制IP的访问

iptables -I INPUT -s ip -j DROP

保存并重启iptables

/etc/rc.d/init.d/iptables save
service iptables restart

免费的DDoS-Deflate

Medialayer是美国的一家空间提供商,他们提供了一种免费的防DDOS攻击解决方案,DDoS-Deflate

安装和配置Linux下防DDOS攻击脚本DDoS deflate非常简单,下面是安装步骤:

 

1、安装 DDoS deflate

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

//弹出版权信息后,在SSH下键入 q , 即可退出版权信息.
[/js]

 

2、配置 DDoS deflate

安装成功后会提示Config file is at /usr/local/ddos/ddos.conf,所以你可以在ddos.conf里进行简要配置.

[js]
[root@SinoUnix~]# 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" //白名单
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
//ddos.sh执行的频率,单位是分钟,搭配crontab来执行.
[/js]

 

[js]
如果你更改了该设置,请执行 /usr/local/ddos/ddos.sh --cron
----------------------------------------------------------------------------
##### How many connections define a bad IP? Indicate that below.
NO_OF_CONNECTIONS=150
//当哪个IP的连接数达到150就加入黑名单;查看连接数你可以执行
#netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
----------------------------------------------------------------------------
##### 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=0
//一般情况下你是使用iptables来做防火墙,所以这里你需要将APF_BAN的值改为0.
----------------------------------------------------------------------------
##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script)
##### KILL=1 (Recommended setting)
KILL=1
//将非法的的IP加入iptables的INPUT链中,DROP之.
----------------------------------------------------------------------------
##### An email is sent to the following address when an IP is banned.
##### Blank would suppress sending of mails
EMAIL_TO="root"
//给root发一封邮件
----------------------------------------------------------------------------
##### Number of seconds the banned ip should remain in blacklist.
BAN_PERIOD=600
//关押黑名单中的IP的时长
[/js]

3、卸载 DDoS deflate ,如果你不想用

[js]
wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
chmod 0700 uninstall.ddos
./uninstall.ddos
[/js]

 

大家可以观察下时间线,效果还是比较明显的.流量单位是MB/s,转化为Mbps需要 *8

此外还要修改两个地方.

1、在/usr/local/ddos/ddos.sh的第134行.注释掉这行,前面加'#'号

#echo $CURR_LINE_IP >> $IGNORE_IP_LIST

2、 在同个文件大概117行处,将netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST注释掉然后在下面添加。

 

显示服务器上所有的每个IP多少个连接数

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

 

[js]
netstat -ntu | awk '{print $5}' | egrep -o "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" | sort | uniq -c | sort -nr > $BAD_IP_LIST
[/js]

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。