Linux非法ip通过脚本执行定时任务加入防火墙

在某目录下创建脚本文件auto_deny_Login.sh,内容如下,

注意:文件必须在Linux下创建并加入如下脚本内容,否则会报错。

#!/bin/sh 
#auto drop ssh failed IP address 
#wugk 2013-1-2 
#定义变量 
SEC_FILE=/var/log/secure
#如下为截取secure文件恶意ip 远程登录80端口,大于等于4次就写入防火墙,禁止以后再登录服务器的22端口 
IP_ADDR=`tail -n 1000 /var/log/secure |grep "Failed password"|awk '{print $11}'|grep "\." |sort |uniq -c |sort -nr|awk ' $1>=4 {print $2}'` 
IPTABLE_CONF=/etc/sysconfig/iptables 
echo 
cat <<EOF
++++++++++++++welcome to use ssh login drop failed ip+++++++++++++++++ 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
++++++++++++++++------------------------------------++++++++++++++++++ 
EOF
#打印动态滚动条,参照老男孩博客-数组分析文章 
echo -n "请等待5秒后开始执行 " 
for ((j=0;j<=4;j++)) ;do echo -n "----------";sleep 1 ;done 
echo 
for i in `echo $IP_ADDR` 
do 
    #查看iptables配置文件是否含有提取的IP信息
    cat $IPTABLE_CONF |grep $i >/dev/null 
if 
    [ $? -ne 0 ];then 
    #判断iptables配置文件里面是否存在已拒绝的ip,如何不存在就不再添加相应条目
    sed -i "/lo/a -A INPUT -s $i -m state --state NEW -m tcp -p tcp --dport 80 -j DROP" $IPTABLE_CONF 
else 
    #如何存在的话,就打印提示信息即可
    echo  "This is $i is exist in iptables,please exit ......" 
fi 
done
#最后重启iptables生效
/etc/init.d/iptables restart


执行定时任务:

如上脚本编写完毕,如何实现自动添加恶意IP呢,执行如下命令,添加到crontab即可,实现每5分钟自动执行该脚本。

echo "*/5 * * * *  /bin/sh /data/sh/auto_deny_Login.sh >>/data/logs/login/login.log 2>&1" >>/var/spool/cron/root


login.log需要自己手动创建,注意自己修改auto_deny_Login.sh和login.log的路径




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值