在 Debian 系统上对 Tomcat 进行安全加固,说起来并不复杂,但真正要做到万无一失,其实有不少细节值得深究。很多运维朋友起初觉得“装好能跑就行”,结果被扫描工具抓到漏洞后才手忙脚乱。下面把这些防护措施逐一拆解,每一条都来自真实环境中的踩坑经验总结。

基础安全配置
- 删除默认页面:直接进入
/var/lib/tomcat9/webapps目录,将docs和examples文件夹彻底移除。这些默认应用往往是攻击者最先试探的突破口。 - 修改默认端口:编辑
/etc/tomcat9/server.xml文件,将 HTTP 和 AJP 的端口号改为非标准值。避免使用 8080、8009 等默认端口,换成高位端口能有效屏蔽大量自动化扫描。 - 隐藏版本信息:同样在
/var/lib/tomcat9/conf/server.xml中,为 Connector 添加server属性,例如将server="Apache-Coyote/1.1"改为自定义字符串,或直接删除该属性。暴露版本号相当于给攻击者递上工具。 - 限制远程管理界面:直接删除
/var/lib/tomcat9/webapps/manager和/var/lib/tomcat9/webapps/host-manager目录。生产环境几乎不需要远程管理,保留这些目录等于留下靶心。 - 配置 SSL/TLS:在
/etc/tomcat9/server.xml中添加 SSL 连接器,强制所有通信走 HTTPS。未加密的 HTTP 流量如同在网络上裸奔。
防火墙配置
- 使用
ufw限制对 Tomcat 端口的访问。以下命令仅开放 8080 和 8443 端口,其余全部封锁:
如果使用阿里云、腾讯云等云服务器,请务必同步配置安全组规则。sudo ufw allow 8080/tcp sudo ufw allow 8443/tcp sudo ufw enable
强化身份验证与访问控制
- 编辑
/etc/tomcat9/tomcat-users.xml文件,添加管理用户时严格限制角色。例如只授予admin-gui和manager-gui角色,并使用高复杂度密码。更严格的策略是结合 IP 白名单,仅允许特定内网地址访问管理页面。 - 启用 SSL/TLS 后,强制所有管理接口走 HTTPS,确保通信全程加密。
定期更新与补丁管理
- 不要偷懒,定期关注 Tomcat 官方发布的安全公告,并执行
apt update && apt upgrade将 tomcat9 升级到最新版本。许多漏洞在补丁发布后会被公开披露,不更新相当于敞开系统大门。
监控与日志审计
- 定期查看
/var/log/tomcat9/目录下的日志文件,重点关注访问日志和 catalina.out。如果发现大量 404、401 或异常 POST 请求,说明正在被试探。可搭配 logwatch 或 fail2ban 实现自动告警和封禁。
其他安全措施
- 禁用不必要的服务:检查 Tomcat 启动了哪些连接器和服务,例如 AJP 连接器若未使用则直接注释掉,减少攻击面。
- 强密码策略:所有用户账号(尤其是
admin和manager角色)的密码必须包含大小写字母、数字和特殊字符,长度不低于 12 位。 - 可信更新源:确保 apt 源使用 Debian 官方或 Tomcat 官方仓库,切勿使用来历不明的第三方源。
以上措施组合实施,基本能抵御绝大多数常见攻击。不过安全是动态过程,定期审查策略、持续关注最新安全动态,才是长期守护系统不被攻破的关键。
