psv值得买的游戏:Linux服务器防ddos攻击脚本

来源:百度文库 编辑:中财网 时间:2024/05/05 09:37:00
Linux服务器防ddos攻击脚本 2010-05-02 01:08:02标签:linux ddos linux

Linux服务器防ddos攻击脚本

来源:http://blog.greehost.net/linux-anti-ddos.html想起上次被ddos攻击事件因一个私服网站被攻击连累了整个主机都气。虽然我一再强调禁止并严打私服,但还是被这条漏网的死鱼给害得大家一个下午加晚上都不得安宁。今天在网上无意发现一篇关于linux服务器防止ddos攻击的脚本(来源于此据说能对付一般的ddos攻击,于是给2个机子都安装上了,并在此记录。我觉得vps和没有硬防的服务器装一下比较好,有备无患嘛。安装 只需3条命令
wget http://www.inetbase.com/scripts/ddos/install.shchmod +x install.sh./install.sh
卸载 也只需3条命令
wget http://www.inetbase.com/scripts/ddos/uninstall.shchmod +x uninstall.sh./uninstall.sh  

对付DDOS的一个脚本

来源:http://www.md5.cn/viewthread.php?tid=28&extra=page%3D1
代码:
#!/bin/sh
# /opt/sbin/kdc-pf-ddos
# Create at 2008-04-28 15:20, by yangxiangong
# Version 0.0.1
#--------------------------------------------------------------------------------------
# 与pf结合,形成对DDOS的方法, 确保在pf中存在一个表
# table persist
# 针对系统当前SYN连接数超过50的IP进行封杀,可根据系统承载能力动态调整50这个数值
# 部署时,请手动执行该脚本,然后放入计划任务每小时检测一次即可,
# 该程序执行时间大约为2分钟之内
# 被封的IP会记录在drop_ip_file这个文件中,如果过段时间服务正常了,可手动解封这些IP
#-------------------------------------------------------------------------------------

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

#####################################################################################
#
# 宏 定 义 区 域 (定义权限,可以随便修改)
#
#####################################################################################

#*************************************************************************************
# @Desc: 超过该值,就加入pf中的TABLE表,禁止访问了
# @Var: 根据具体的服务器性能而定的
#-------------------------------------------------------------------------------------
# @Notes: 允许一个Ip链接本机的最大数量
#-------------------------------------------------------------------------------------
DDOS_IP_MAX_REQUESTED='50'

#*************************************************************************************
# @Desc: 日志文件位置,正常後可以通过它来解封
# @Var: string
#-------------------------------------------------------------------------------------
# @Notes: DDOS被禁止的Ip日志
#-------------------------------------------------------------------------------------
DDOS_IP_LOGFILE='/var/log/ddos.log'

LOCALHOST_ADMIN='210.76.108.158'

#####################################################################################
#
# 程 序 脚 本 区 域 (请勿随便修改,一旦改动,就是脚本版本升级一次)
#
#####################################################################################

netstat -ant |grep '\<80\>' |grep SYN_RECV |awk '{print $5}' |awk -F\: '{print $1}'|sort |uniq -c |sort >$DDOS_IP_LOGFILE

while read LINE
do
syn_num=`echo $LINE |awk '{print $1}'`
if [ $syn_num -gt $DDOS_IP_MAX_REQUESTED ]
then
drop_ip=`echo $LINE |awk '{print $2}'`
if [ $drop_ip != $LOCALHOST_ADMIN ]
then
iptables -I INPUT -p tcp -s $drop_ip --syn -j DROP
#/sbin/pfctl -t abusive_hosts -Tadd $drop_ip
echo $drop_ip >> $DDOS_IP_LOGFILE
fi
fi
done<$DDOS_IP_LOGFILE
echo "DDOS end";