個(gè)人網(wǎng)站總被攻擊?寫個(gè)自動(dòng)封禁IP的腳本給你!具體如下:
1.在ngnix的conf目錄下創(chuàng)建一個(gè)blockip.conf文件
2.里面放需要封禁的IP,格式如下
deny1.2.3.4;
3.在ngnix的HTTP的配置中添加如下內(nèi)容
includeblockips.conf;

4.重啟 ngnix
/usr/local/nginx/sbin/nginx-sreload
然后你就會(huì)看到IP被封禁了,你會(huì)喜提403;
小思考:如何實(shí)現(xiàn)使用ngnix自動(dòng)封禁ip的功能
1.AWK統(tǒng)計(jì)access.log,記錄每分鐘訪問(wèn)超過(guò)60次的ip,然后配合nginx進(jìn)行封禁
2.編寫shell腳本
3.crontab定時(shí)跑腳本
好了上面操作步驟列出來(lái)了,那我們先來(lái)實(shí)現(xiàn)第一個(gè)吧

操作一:AWK統(tǒng)計(jì)access.log,記錄每分鐘訪問(wèn)超過(guò)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ù)量是否超過(guò)60個(gè),超過(guò)60個(gè)就展示出來(lái)
操作二:編寫shell腳本,實(shí)現(xiàn)整體功能(寫了注釋代碼)
#不能把別人IP一直封著吧,這里就清除掉了
echo"">/usr/local/nginx/conf/blockip.conf
#前面最開始編寫的統(tǒng)計(jì)數(shù)據(jù)功能
ip_list=$(awk'{print$1}'access.log|sort|uniq-cd|awk'{if($1>60)print$0}')
#判斷這個(gè)變量是否為空
iftest-z"$ip_list"
then
#為空寫入11.log中,并重新啟動(dòng)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)
#最后再把讀取出來(lái)的值,在次寫入到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í),來(lái)實(shí)現(xiàn)訪問(wèn)每分鐘超過(guò)60的
直接實(shí)操吧:
crontab-e *****cd/usr/local/nginx/logs/&&ship_test.sh每一分鐘運(yùn)行一次 systemctlrestartcrond.service重啟一下配置既可

-
IP
+關(guān)注
關(guān)注
5文章
1840瀏覽量
154568 -
HTTP
+關(guān)注
關(guān)注
0文章
530瀏覽量
34603 -
代碼
+關(guān)注
關(guān)注
30文章
4927瀏覽量
72508 -
Shell
+關(guān)注
關(guān)注
1文章
373瀏覽量
25035 -
腳本
+關(guān)注
關(guān)注
1文章
405瀏覽量
28993
原文標(biāo)題:網(wǎng)站總被攻擊?寫個(gè)自動(dòng)封禁 IP 的腳本給你
文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
預(yù)防跨站腳本攻擊(XSS)的方法
SCDN的抗CC攻擊和抗DDoS攻擊防護(hù)是什么?
面對(duì)外部惡意攻擊網(wǎng)站,高防服務(wù)器如何去防御攻擊?
python腳本如何根據(jù)公網(wǎng)IP自動(dòng)獲取地址和天氣信息?
cc攻擊防御解決方法
網(wǎng)站被攻擊帶來(lái)的危害
網(wǎng)站被攻擊的危害
如何判斷網(wǎng)站是否被CC攻擊
一些安全的操作規(guī)范可以有效的避免網(wǎng)站被攻擊
網(wǎng)站被網(wǎng)絡(luò)攻擊的常見形式都有哪些
網(wǎng)站服務(wù)器被攻擊后如何查找被木馬篡改的痕跡
網(wǎng)站被黑客攻擊的兩大因素分析處理
如何使用符號(hào)執(zhí)行的python實(shí)現(xiàn)攻擊腳本分析平臺(tái)

網(wǎng)站總被攻擊?寫個(gè)自動(dòng)封禁IP的腳本給你
評(píng)論