利用SHELL脚本自动拦截DDOS攻击

简介:
一个很实用的iptables脚本,实现自动拒绝可疑IP地址,并发送报警邮件,短信 
linux:~ # cat  iptables
#!/bin/bash
touch /root/back_bad_ip.txt
time=`date +"%Y-%m-%d %H:%M:%S"`
ar=`wc -l /root/back_bad_ip.txt |awk '{print $1}'`
sleep 1
#红色自己改有端口, SYN_RECV等
netstat -an | grep 80 |grep -v "STREAM"|awk '{print $5 }'|sort | awk -F: '{print $1}'|uniq -c |awk '$1 > 100 {print $1,$2}' > /root/bad_ip ;
cat bad_ip |awk -vtime="$time" '{print time"    |    " $1"    |    "$2}' >>/root/back_bad_ip.txt
ar2=`wc -l /root/back_bad_ip.txt |awk '{print $1}'`
for i in `awk '{print $2}' /root/bad_ip`
do
iptables -I INPUT -s $i -j DROP
done
i1=`echo "$ar2-$ar" |bc `
tail0=`tail -n $i1 /root/back_bad_ip.txt`
for i2 in `echo "$ar2-$ar" |bc`
do
if ([ $i2 -gt 0  ]&&[ $i2 -lt 5 ]) ; then
sendmail -t <<EOF
from: monitor@zhaoyun.com
to:15101507336@139.com
subject: warning 
$time 你的系统可能被攻击,请尽快作出响应,目前有$i1个攻击源IP地址,系统已经帮你拦截。
$tail0
EOF
fi
done
tail5=`tail -n $i1 /root/back_bad_ip.txt`
for i2 in `echo "$ar2-$ar" |bc`
do
if [ $i2 -gt 5 ] ; then
sendmail -t <<EOF
from: monitor@zhaoyun.com
to:15101507336@139.com
subject: Serious warning 
$time 你的系统正在被攻击,请尽快作出响应,目前有$i1个攻击源IP地址,系统已经帮你拦截。
$tail5
EOF
fi
done


自己写的,shell不会用,但是这个脚本肯定好用。
可以在back_bad_ip.txt中查看到连接的记录 ,做到有据可查 
linux:~ # cat back_bad_ip.txt 

时间                建立连接的次数       IP地址
2011-07-09 08:59:37  |   127    |   118.144.78.36
2011-07-09 08:59:37  |   211    |   118.144.78.37
2011-07-09 08:59:37  |   115    |   118.144.78.38
2011-07-09 08:59:37  |   113    |   118.144.78.42

把这个脚本放在后台执行  
linux:~ # /root/ 10_seconds &


linux:~ # cat  10_seconds
#!/bin/bash
while [ 1 ]
do
/root/iptables
sleep 10
done



他会每10秒钟执行一次/root/iptables脚本 
邮件收到的效果

只有在有人攻击的情况下才生效 
这个有个缺点就是,10秒钟执行一次的话如果有攻击会有很多重复的 规则添加到IPTABLES规则中,建议固定的规则保存在配置文件中。在一定的时间重启一次iptables服务,来清空自动添加的规则。  不影响原有规则 。


本文转自zhaoyun00 51CTO博客,原文链接:http://blog.51cto.com/zhaoyun/606878
相关文章
|
18天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
102 1
|
20天前
|
Java Shell
SpringBoot启动脚本Shell
SpringBoot启动脚本Shell
15 0
|
24天前
|
运维 安全 网络安全
DDoS攻击升级,解读防御DDoS攻击的几大有效方法
DDoS攻击升级,解读防御DDoS攻击的几大有效方法
28 0
|
1天前
|
运维 监控 Shell
利用Shell脚本编写局域网监控软件:实时监测主机连接情况
本文介绍了如何使用Shell脚本创建一个局域网监控工具,以实时检查主机连接状态。脚本包括扫描IP地址范围检测主机可达性及使用`netstat`监控ESTABLISHED连接。此外,还展示了如何每60秒将连接数数据自动提交到指定网站API,以便实时跟踪网络活动。这个自动化监控系统有助于提升网络安全性和故障排查效率。
6 0
|
2天前
|
Shell
Shell脚本之流程控制语句
Shell脚本之流程控制语句
|
3天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
14 1
|
7天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
137 0
|
7天前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
124 0
|
8天前
|
存储 安全 应用服务中间件
解密Nginx限流机制:有效应对DDoS攻击与高并发流量
解密Nginx限流机制:有效应对DDoS攻击与高并发流量
20 0
|
18天前
|
Shell
【shell】实时查看网卡流量脚本
【shell】实时查看网卡流量脚本