1. 程式人生 > >shell指令碼程式碼如何遮蔽IP訪問網站centos7

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