最近有點忙,一段時間沒管博客了,今天上來看了一下access.log,多了一些牛鬼蛇神,之前因為博客訪問量少,沒怎麼弄,看來是時候帶一波節奏了。
之前的做法
以前就已經陸續發現一些惡意用戶訪問了,比如:
– 認為後端是java對tomcat的/manager進行訪問的,
– 認為後端是php做一些eval或者爆破操作的,
– 一些獨狼/個人蜘蛛用戶不分時段對網站進行大規模爬取的
由於都是一些零散的訪問,針對這些行為 在nginx.conf同目錄下創建了一個denyIpList.conf配置文件,內容形式如下:
# 針對單個ip的形式 deny 171.94.171.205; deny 115.29.166.101; deny 182.247.251.48; deny 61.147.89.17; # 針對網段的形式 deny 66.249.227.0/24;
然後在nginx.conf合適的位置引入此配置文件:
http {
include mime.types;
include denyIpList.conf;
default_type application/octet-stream;
...以下省略重啟nginx後生效,這樣,當這些ip/網段發起訪問後,直接返回403;
現在的做法
現象
今早上來看了一下訪問記錄後,發現了幾組喪心病狂的內容:
1. user-agent為 Baidu-YunGuanCe-SLABot(ce.baidu.com) 的訪問;
2. 來自美國66.249.*.*網段的訪問;
3. user-agent為 Mozilla/5.0 (compatible; MJ12bot/v1.4.7; … 的訪問
4. user-agent為空(正常瀏覽器訪問不會為空的)
分析
其中第一個我剛開始以為是我配的百度雲觀測網站定期健康檢查的訪問記錄,但是簡單統計了一下,數量也太大了,而且不分時段都有,初步懷疑是有人閑着無聊借用百度雲觀測提供的工具對本站進行了友e情yi壓測…即便不是,我也不需要雲觀測提供的特殊服務,準備直接ban掉;
第二個,應該是谷歌的爬蟲(ua判斷),以前也看到過訪問記錄,頻率比較低,直接deny訪問地址的,但是最近訪問的ip也太多了,根本ban不過來;
第三個,MJ12bot比較常用的爬蟲工具,訪問ip也是來自世界各地;
解決方案
根據以上分析,發現大部分惡意請求可以通過user-agent來判斷,因此,考慮通過nginx提供的一些內置變量進行配置:
- 首先我們還是新建一個文件denyUaList.conf在nginx.conf同目錄下;
- 編寫denyUaList.conf規則內容:
#禁止常用工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient|Java)) {
return 403;
}
#禁止指定UA及UA為空的訪問
if ($http_user_agent ~* "Baidu-YunGuanCe|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$" )
{
return 403;
}tips:注意書寫格式if和(之間有空格,|Ezooms|最後面有個|破折號,用于禁止空ua訪問
- 在nginx.conf中合適的位置引入denyUaList.conf
...以上省略
server {
listen 443 ssl;
server_name example.com;#你的域名
...ssl配置省略...
include denyUaList.conf;...以下省略tips:注意因為denyUaList.conf包含if等控制語句,因此不能和denyIpList.conf一樣放在根節點,需要自行根據需要放在server節點中
以上就是目前的配置方案,如果後續有優化升級,會在本帖更新,如果有朋友有更合適的方案,請在留言中回復!
測試
在Baidu-YunGuanCe前增加chrome|,然後使用谷歌瀏覽器訪問博客地址,返回403forbidden,切換為ie訪問,正常進入(不過d大@88250竟然給了一個超low的提示(/ □ )),測試通過,去掉chrome|,重啟nginx,收工!
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/272733.html
微信掃一掃
支付寶掃一掃