在 CentOS 环境下部署 Tomcat 时,安全防护虽然常被提及,但实际运维中仍容易被忽视。许多运维人员安装完 Tomcat 后直接采用默认配置上线,导致扫描工具一抓一个准。以下这套防范措施均来自实际踩坑经验总结,建议对照自身环境逐一排查。
用户与权限管理是最基础但最容易被忽略的环节。务必使用非 root 用户启动 Tomcat,这样即使遭遇攻击,攻击者也只能获取普通用户权限,无法直接控制整台机器。同时,记得编辑 tomcat-users.xml 文件,删除默认用户或将其替换为强密码,仅授予必要角色权限。有些项目为了调试方便,直接保留 manager-gui 角色且不设密码,这无异于为攻击者敞开后门。
基础配置加固方面,首要操作是更改端口。Tomcat 默认的 8080 端口过于显眼,随便扫描就能发现,建议改为 8443 或更高位随机端口,能有效过滤大量无差别扫描。此外,webapps 目录下的 docs、examples 等示例文件,上线前必须彻底删除,这些文件暴露了大量 Tomcat 内部信息,是攻击者的重点关注对象。还有一个易被忽略的细节:禁用目录列表。在 web.xml 中将 listings 设为 false,否则他人直接访问目录即可查看所有文件,相当于把网站结构图公之于众。
通信与加密层面,如今 HTTPS 已是标配。启用 SSL/TLS 配置,强制使用 HTTPS,可防止数据在传输过程中被截获。除此之外,隐藏 Tomcat 版本信息也至关重要。攻击者掌握版本号后,可直接搜索对应漏洞利用脚本。修改 server.xml 或 catalina.jar 中的相关配置,将版本号抹除或改为虚假信息,让扫描工具无从下手。
访问控制与防火墙虽是老生常谈,但必须落实。使用 firewalld 或 iptables 严格限制 Tomcat 端口的访问来源,仅允许业务所需的 IP 段通行,其余全部拒绝。另外,若无需使用 AJP 端口(默认 8009),则直接关闭,历史上 AJP 协议曾出现过多个严重漏洞(如 Ghostcat)。最后,将 autoDeploy 设为 false,防止攻击者上传恶意 WAR 包后自动部署生效。
漏洞修复与更新是持久战。Tomcat 几乎每年都会爆出多个高危 CVE,例如最近的 CVE-2025-24813。必须建立定期更新机制,及时将 Tomcat 升级至官方最新版本。若使用腾讯云等环境,可从 TencentOS 官方渠道获取补丁包,或手动升级相关组件。部分团队为了省事,长期运行两年前的 Tomcat 版本,这在安全审计时基本是送分项。
日志与监控是最后一道防线。启用详细日志记录,同时开启访问日志和错误日志,并定期分析。许多入侵行为会在日志中留下痕迹,比如频繁的扫描请求、异常的 URL 参数。若能及时发现,便能在造成损失前进行封堵。建议搭配 SIEM 或告警工具,将异常行为自动通知出来。
参考来源:
