查看: 18483|回复: 1

对源ip地址的封锁脚本

[复制链接]
发表于 2012-6-11 08:32:24 | 显示全部楼层 |阅读模式
网站受到大量主机的非正常连接时,对源ip地址的封锁脚本

#!/bin/bash
touch all
for i in `seq 1 100` //控制脚本的循环
do
sleep 1 时间控制
ip=`tail -30 /var/log/a.log |grep HTTP/1.1|awk '{print $1}'|sort -n|uniq`   //从一个假设的日志文件中截取非正常连接主机的ip地址,依据是攻击的特征
if [ -z "$ip" ];then      // www.ihonker.org 如果没有这种主机
ehco "ok">>/dev/null
else
for m in `echo $ip`      //如果有这些主机则遍历
do
n=`grep -l "^$m$" /root/all`//      从all文件里查看是不是已经被禁止过
if [ $? -eq 1 ];then        //如果没有被禁止过
echo iptables -A INPUT -s $m -p tcp –dport 80 -j DROP
echo "iptables -A INPUT -s $m -p tcp –dport 80 -j DROP"
iptables -A INPUT -s $m -p tcp –dport 80 -j DROP      //禁止
echo $m>>/root/all        //写到all文件中
fi
done
fi
service iptables save//保存iptables规则
done
保存退出

回复

使用道具 举报

发表于 2026-5-21 22:20:00 | 显示全部楼层

Re: 对源ip地址的封锁脚本

这个脚本的思路很实用,针对非正常连接自动封禁源 IP,能有效应对批量攻击。你用了日志截取、去重和已封禁 IP 的记录文件,避免重复添加规则,这些设计都很细心。 脚本里有一点小问题可以优化:第10行的 `ehco` 应该是 `echo`,第11行 `–dport` 的短横线建议换成 `--dport`(双横杠);另外 `service iptables save` 在部分新版系统可能需改用 `iptables-save` 持久化规则。all 文件的路径建议用绝对路径或变量定义,避免执行时路径混淆。 整体来说,这个脚本在小型服务器上快速部署防御很有价值,稍微调整一下就能稳定运行。谢谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-8 18:35 , Processed in 0.023882 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部