在ngnix的conf目錄下創(chuàng)建一個blockip.conf文件
里面放需要封禁的IP,格式如下
deny1.2.3.4;
在ngnix的HTTP的配置中添加如下內(nèi)容
includeblockips.conf;

重啟 ngnix
/usr/local/nginx/sbin/nginx-sreload
然后你就會看到IP被封禁了,你會喜提403;

小思考:如何實(shí)現(xiàn)使用ngnix自動封禁ip的功能
1.AWK統(tǒng)計access.log,記錄每分鐘訪問超過60次的ip,然后配合nginx進(jìn)行封禁 2.編寫shell腳本 3.crontab定時跑腳本
好了上面操作步驟列出來了,那我們先來實(shí)現(xiàn)第一個吧

操作一:AWK統(tǒng)計access.log,記錄每分鐘訪問超過60次的ip
awk'{print$1}'access.log|sort|uniq-cd|awk'{if($1>60)print$0}'
1.awk'{print$1}'access.log 取出access.log的第一列即為ip。
2.sort|uniq-cd去重和排序
3.awk'{if($1>60)print$0}'判斷重復(fù)的數(shù)量是否超過60個,超過60個就展示出來
操作二:編寫shell腳本,實(shí)現(xiàn)整體功能(寫了注釋代碼)
#不能把別人IP一直封著吧,這里就清除掉了
echo"">/usr/local/nginx/conf/blockip.conf
#前面最開始編寫的統(tǒng)計數(shù)據(jù)功能
ip_list=$(awk'{print$1}'access.log|sort|uniq-cd|awk'{if($1>60)print$0}')
#判斷這個變量是否為空
iftest-z"$ip_list"
then
#為空寫入11.log中,并重新啟動ngnix
echo"為空">>/usr/local/nginx/logs/11.log
/usr/local/nginx/sbin/nginx-sreload
else
#如果不為空前面加上deny格式和ip寫入blockip.conf中
echo"deny"$ip_list>/usr/local/nginx/conf/blockip.conf
#因?yàn)榍懊鏀y帶了行數(shù),所有我們需要去除掉前面的行數(shù),寫入后在讀取一次
ip_list2=$(awk'{print$3}'/usr/local/nginx/conf/blockip.conf)
#最后再把讀取出來的值,在次寫入到blockip.conf中
echo"deny"$ip_list2";">/usr/local/nginx/conf/blockip.conf
#重啟ngnix
/usr/local/nginx/sbin/nginx-sreload
#清空之前的日志,從最新的開始截取
echo"">/usr/local/nginx/logs/access.log
fi
操作三:使用crontab定時,來實(shí)現(xiàn)訪問每分鐘超過60的
crontab-e *****cd/usr/local/nginx/logs/&&ship_test.sh每一分鐘運(yùn)行一次 systemctlrestartcrond.service重啟一下配置既可

-
IP
+關(guān)注
關(guān)注
5文章
1884瀏覽量
156719 -
HTTP
+關(guān)注
關(guān)注
0文章
538瀏覽量
35558 -
文件
+關(guān)注
關(guān)注
1文章
598瀏覽量
26117 -
Shell
+關(guān)注
關(guān)注
1文章
375瀏覽量
25486 -
腳本
+關(guān)注
關(guān)注
1文章
411瀏覽量
29277
原文標(biāo)題:Ngnix IP封禁以及實(shí)現(xiàn)自動封禁IP
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
請問如何實(shí)現(xiàn)固定mac在自動獲取ip之前
為什么美國能封禁華為,中國卻不能封禁蘋果?
美國宣稱不在乎蘋果銷量,堅(jiān)持封禁微信
巴基斯坦為什么封禁了 TikTok
開源下片神器“youtube-dl”被官方封禁
Facebook將無限期封禁美國總統(tǒng)特朗普帳號
Twitter永久封禁特朗普賬號后Twitter股價跌逾6%
快訊:亞馬遜回應(yīng)封禁中國賣家賬號 中國聯(lián)通回應(yīng)攜號轉(zhuǎn)網(wǎng)困難
如何建立一個動態(tài)的IP黑名單
Ngnix IP封禁以及實(shí)現(xiàn)自動封禁IP
評論