本信息转载网站:
更多资讯请到网站sky8g网了解更多
如果浏览不顺畅请到原文章出处:https://www.sky8g.com/technology/203/
请注意可能会提示风险,这是优快云网站设置的问题,如果文章内的链接不是他们的网址,都会对用户提示有风险,请点击继续访问,本网站全部文章为免费技术分享,请放心访问,无需担心。
请点击此处查看完整文章:https://www.sky8g.com/technology/203/
此篇文章是由SKY8G网作者原创,禁止抄袭。
首先想要屏蔽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\(.*\)\:[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