直接看错误日志里反复出现的可疑请求,重点抓路径异常、状态码集中、来源IP固定三类线索;Debian/Ubuntu默认访问日志在/var/log/apache2/access.log,需关注客户端IP、请求路径、状态码及User-Agent字段,结合grep、awk等命令快速筛选/etc/passwd、404/500、admin等恶意特征,并交叉验证error.log与实际业务来源。
直接看错误日志里反复出现的可疑请求,重点抓路径异常、状态码集中、来源IP固定这三类线索。
Debian/Ubuntu 系统默认日志在 /var/log/apache2/access.log,CentOS/RHEL 在 /var/log/httpd/access_log。打开后关注每行的几个核心字段:
GET /etc/passwd HTTP/1.1、POST /wp-admin/admin-ajax.php?action=xxx
以下路径出现在访问日志中,大概率属于恶意探测或攻击尝试:
/etc/passwd、/proc/self/environ、/windows/win.ini
/admin/、/phpmyadmin/、/wp-login.php、/manager/html
/index.php?file=../../etc/passwd、/api/v1/user?id=1' OR '1'='1、/static/<script>alert(1)</script>.js
/..%2f..%2f..%2fetc%2fshadow、/images/../../../../etc/
不用逐行翻,用命令高效提取特征:
etc/passwd 的请求:grep -i "etc/passwd" /var/log/apache2/access.log
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -10
admin 或 backup 的记录:awk '$9==404 && tolower($7) ~ /(admin|backup|config|db)/ {print}' /var/log/apache2/access.log
journalctl -u apache2 --since "1 hour ago" | grep "404|etc"
发现可疑行为后,别急着封IP,先交叉验证:
fail2ban 自动封禁,或临时加防火墙规则:iptables -A INPUT -s 192.168.1.100 -j DROP
Redirect 403 或 RewriteRule 主动拦截,减少日志噪音