shell指令碼程式碼如何遮蔽IP訪問網站centos7
本資訊轉載網站:https://www.sky8g.com/technology/203/
更多資訊請到網站:https://www.sky8g.com瞭解更多
首先想要遮蔽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