在Debian系統中,Nginx的日志文件通常位于/var/log/nginx/
目錄下。主要的日志文件包括訪問日志(access.log)和錯誤日志(error.log)。要查找惡意訪問,可以使用以下方法:
grep
命令搜索特定關鍵詞或IP地址。例如,要查找包含"404"(可能是掃描攻擊)的訪問記錄,可以運行以下命令:grep ' 404 ' /var/log/nginx/access.log
要查找來自特定IP地址的訪問記錄,可以使用:
grep '123.123.123.123' /var/log/nginx/access.log
awk
命令分析日志文件。例如,要查找訪問次數超過10次的IP地址,可以運行以下命令:awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
fail2ban
工具自動檢測并阻止惡意訪問。首先,安裝fail2ban:sudo apt-get install fail2ban
然后,創建一個新的fail2ban配置文件,例如/etc/fail2ban/jail.local
,并添加以下內容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[nginx-badbots]
enabled = true
filter = nginx-badbots
action = iptables-multiport[name=BadBots, port="http,https", protocol=tcp]
logpath = /var/log/nginx/access.log
接下來,創建一個名為/etc/fail2ban/filter.d/nginx-badbots.conf
的過濾器文件,包含以下內容:
[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" 404
ignoreregex =
最后,重啟fail2ban服務以應用更改:
sudo systemctl restart fail2ban
現在,fail2ban將自動檢測惡意訪問并阻止相關IP地址。
注意:在分析日志文件時,請確保使用具有足夠權限的用戶(如root)運行命令。同時,定期檢查日志文件以便及時發現并處理惡意訪問。