0x001php
使用fail2ban工具結合防火牆(iptables | firewalld),將大量404請求的IP地址封了。(詳見fail2ban使用說明:https://www.cnblogs.com/bestOPS/p/10616401.html)html
0x002nginx
將全部非法請求跳轉至首頁:
在nginx.conf 或 虛擬主機的配置文件中的server 配置段落裏執行:
a. 把返回錯誤頁面配置 打開註釋安全
error_page 403 404 500 502 503 504 = /error.html;
b. 加入下面配置:bash
location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } }
c. 編寫error.html頁面服務器
略。
d. 平滑重啓nginx systemctl nginx reloadide
0x003工具
指定User-Agent 並返回403網站
a. 在nginx.conf配置文件中加入:url
include agent_deny.conf;
b. 在/../nginx/conf目錄下新建agent_deny.conf
vi agent_deny.conf
# 禁止Scrapy等工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; } # 禁止指定UA及UA爲空的訪問 if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Googlebot|Ezooms|^$" ) { return 403; } # 禁止非GET|HEAD|POST的方式抓取 if ($request_method !~ ^(GET|HEAD|POST)$) { return 403; }
c. 修改Nginx配置文件後重啓或重載
systemctl reload nginx | /etc/init.d/nginx reload | service nginx reload
該方法會屏蔽大量爬蟲和自動化無差異攻擊,使本身的服務器更加安全和高可用。
附錄一:
在上述的 0x003中,能夠將指定的User_agent加入到配置列表中,重載Nginx後,新加的User_agent將不能訪問網站。