温馨提示×

debian nginx日志含恶意请求

小樊
39
2026-10-24 22:06:20
栏目: 智能运维

在 Debian 上,Nginx 日志中发现恶意请求是很常见的情况(扫描器、爆破、Exploit 尝试等)。下面给你一套排查 + 防护的实用方案。


一、先确认日志位置

Debian 默认路径:

/var/log/nginx/access.log
/var/log/nginx/error.log

虚拟主机日志可能在:

/var/log/nginx/example.com.access.log

二、快速分析恶意请求

1️⃣ 查看访问最频繁的 IP

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head

2️⃣ 查看可疑 URL(常见攻击)

grep -E "(wp-login|phpmyadmin|admin| shell|/api/|../|%00|cmd=|exec=)" /var/log/nginx/access.log

3️⃣ 查看 404 / 500 异常

awk '$9 == 404 {print $1, $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head

三、常见恶意请求类型

  • /wp-login.php → WordPress 爆破
  • /phpmyadmin → 数据库后台扫描
  • /.env、.git/config → 信息泄露
  • /cgi-bin/ → 老漏洞利用
  • SQL 注入 / XSS / 命令执行参数

四、立即防护手段(推荐)

✅ 1. 封禁恶意 IP(临时)

iptables -A INPUT -s 1.2.3.4 -j DROP

或使用 fail2ban(强烈推荐):

apt install fail2ban

✅ 2. Nginx 限制恶意请求

屏蔽敏感路径

location ~* (wp-login|phpmyadmin|/.git|/.env) {
    return 444;
}

限制请求方法

if ($request_method !~ ^(GET|POST|HEAD)$ ) {
    return 444;
}

防止 SQL 注入

if ($query_string ~* "union.*select|base64|%27|%3B") {
    return 403;
}

✅ 3. 限速(防 CC)

limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;

server {
    limit_req zone=req_limit burst=20 nodelay;
}

五、增强安全(长期)

  • ✅ 隐藏 Nginx 版本
server_tokens off;
  • ✅ 仅开放必要端口
  • ✅ 使用 HTTPS(Let’s Encrypt)
  • ✅ 定期更新系统
apt update && apt upgrade -y

六、如果你愿意

你可以:

  • 贴 几条恶意日志
  • 或说明 网站类型(WordPress / API / 静态)

我可以直接帮你写 精准的 Nginx 防护规则。

0 踩