在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)运行命令。同时,定期检查日志文件以便及时发现并处理恶意访问。