西数超哥博客
运维经验教程分享

shell脚本代码如何屏蔽IP访问网站centos7

首先想要屏蔽ip地址访问我们的网站,要找到错误文件文件日志。找出ip,本教程是apache服务器为代表。

1.用到的技术是centos7 firewall的命令

2.cat,grep,awk的用法

好了,不多说了直接代码解释,下面就是shell代码屏蔽加入防火墙的代码。

#!/bin/sh

#找到ip访问网站的错误日志
filepath=/var/log/httpd/error_log

#读取符号规则IP地址

for i in `cat ${filepath}|grep -w “http://你的服务器IP地址”|sed -e ‘s/.*

client\s\(.\)[09]{1,}client\s\(.∗\)[0−9]{1,}

.*/\1/g’|sort|uniq -c|sort -rn|awk ‘/\s/{print $2}’`
do
#判断是否为自己ip地址

 

if [[ ${i} = “127.190.132.18” ]]
then
#自己的ip不屏蔽
continue
else
#屏蔽ip查询
FIREIP=”`/usr/bin/firewall-cmd –list-all`”

checkip=$(echo ${FIREIP} 2>/dev/null |grep -nw ${i}|awk -F “:” ‘{print $1}’)

#得出IP地址,如果ip地址不存在则要加入防火墙。

if [[ ${checkip} == “” ]]
then

#加入防火墙,大功告成。
firewall-cmd –add-rich-rule “rule family=ipv4 source address=${i} reject”
fi
fi
done

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » shell脚本代码如何屏蔽IP访问网站centos7