您的位置:首页 > 运维架构 > Linux

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

2015-09-17 16:33 399 查看

在某目录下创建脚本文件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的路径




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: