Linux下功能强大的防DDOS攻击SHELL脚本 可打造自己的DDOS防火墙
2012-06-27 15:55
323 查看
#!/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
/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
相关文章推荐
- linux,打造自己的专属迷你小linux(二)完善小linux功能,使其丰满
- 使用Linux自定义自动补全命令完善自己的shell脚本
- 打造自己的专属Linux(二):使用脚本实现自动化建立小Linux与命令移植
- shell脚本开发的6点基本规范和习惯---摘取自“老男孩linux运维培训”(自己通过视频整理)
- 在linux中如何执行自己亲手写的shell脚本?
- 打造自己的专属Linux(二):使用脚本实现自动化建立小Linux与命令移植
- Linux-打造自己的shell(支持输入输出重定向)
- 执行shell脚本的多种方法及重要区别---摘取自“老男孩linux运维培训”(自己通过视频整理)
- Linux开机如何自动运行自己编写好的shell脚本
- 自己编写的一个查找Linux进程的Shell脚本
- 朋友的一个问题:Linux开机如何自动运行自己编写好的shell脚本
- 通过linux的crontab实现定时执行shell脚本功能
- linux强大的查询字符匹配命令和shell脚本
- 程序员(媛)Shell脚本必备技能之中的一个: 在Linux下怎样自己主动备份mysql数据
- Linux学习-->如何通过Shell脚本实现发送邮件通知功能?
- Linux学习-->如何通过Shell脚本实现发送邮件通知功能?
- shell脚本编写ping包及arp的监控并发送短信功能
- linux学习之shell脚本 ------- 脚本参数传递
- Linux 怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用