Tomcat安全漏洞加固教程:从零开始加固你的Web服务器

Tomcat安全漏洞加固教程:从零开始加固你的Web服务器

如果你是新手站长或运维小白,服务器上跑着Tomcat但心里没底,担心被黑客利用漏洞入侵,那就对了。
很多攻击其实只需要简单几步配置就能挡掉。
本文会带你完成 Tomcat安全漏洞加固教程 的全部核心操作,每一条命令都贴出来,你直接复制到服务器上跑就行。

加固前先检查:当前Tomcat有哪些风险

在动手之前,先用几分钟看看你的Tomcat存在哪些常见漏洞点。
登录到服务器,切换到Tomcat安装目录(默认是 /usr/local/tomcat/opt/tomcat),执行以下命令查看当前版本和已加载的组件:

# 查看Tomcat版本
/usr/local/tomcat/bin/version.sh

# 查看已部署的应用
ls -l /usr/local/tomcat/webapps/

常见风险包括:Tomcat默认管理页面(manager、host-manager)未删除、8080端口直接暴露、未禁用HTTP方法、弱口令、无HTTPS、日志不记录等。
随后我们逐个解决。

核心加固操作:禁用管理页面与修改默认端口

这一步最优先,因为攻击者常通过默认的管理应用尝试登录。

  1. 删除或重命名默认管理应用
   cd /usr/local/tomcat/webapps
   mv manager manager.bak
   mv host-manager host-manager.bak

如果不想保留,直接 rm -rf manager host-manager 也行。

  1. 修改默认端口8080,改为一个不常用的端口(比如18080):

编辑 conf/server.xml,找到 这行,把 8080 改成 18080

   

然后重启Tomcat使配置生效:

   /usr/local/tomcat/bin/shutdown.sh
   /usr/local/tomcat/bin/startup.sh
  1. 禁用不安全的HTTP方法:在 conf/web.xml 中增加安全约束,只允许 GET 和 POST:
   
       
           restricted
           /*
           PUT
           DELETE
           OPTIONS
           TRACE
           PATCH
       
       
   

配置HTTPS与强密码策略

如果服务面向公网,务必开启HTTPS。
同时Tomcat默认密码是硬编码的,必须改掉。

  1. 生成自签名证书或使用免费证书(如Let's Encrypt):这里以Java自带的keytool生成自签名证书为例:
   keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/conf/keystore.jks -validity 365
   # 依次填写密码、姓名、组织等信息,注意密钥库密码和密钥密码建议设置成复杂随机字符串

然后在 conf/server.xml 中取消注释HTTPS Connector段并修改:

   
  1. 修改Tomcat用户密码:编辑 conf/tomcat-users.xml,把 username="admin"password 改为至少16位包含大小写数字和符号的密码。如果不需要远程管理,直接删除所有 user 标签:
   
   

避坑指南:这些地方最容易忽略

很多人在加固Tomcat时只改端口和密码,却忽略了下面几个关键点:

  • 不要使用默认的AJP连接器(8009端口)。如果不用Apache负载均衡,建议注释掉 conf/server.xml 中的 那行。AJP协议存在历史漏洞(如Ghostcat),风险极高。
  • 关闭服务器版本信息泄露。在 conf/server.xml 标签内添加:
  
  • 启用访问日志,便于事后审计。在 conf/server.xml 段已经默认有 AccessLogValve,确认以下配置存在(一般默认就有):
  

效果验证与高频问题

加固完后,执行以下验证:

  1. 检查端口变化netstat -tlnp | grep java,确认8080已改为18080,且8009未监听。
  2. 测试HTTPS:浏览器访问 https://你的IP:8443,应显示证书提示。
  3. 尝试访问管理页面http://你的IP:18080/manager/html 应返回404或403。
  4. 检查HTTP方法:使用 curl -X OPTIONS http://你的IP:18080/,应只返回 GET, HEAD, POST

Q:重启后Tomcat启动失败怎么办?
A:先看日志 logs/catalina.out,常见原因是 server.xml 语法错误或keystore路径不对。用 shutdown.sh 停止进程,修正后再启动。

Q:使用了反向代理还需要改Tomcat端口吗?
A:需要,反向代理也要指向修改后的端口。同时注意在 server.xml 中配置 proxyPort 和 scheme,否则重定向可能出错。

Q:加固后网站访问变慢?
A:检查HTTPS证书链是否完整,TLS版本建议改为TLSv1.2以上。同时不要开启太多的日志级别。

如果你正在处理 Tomcat安全漏洞加固教程,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
安全加固不是一次性工作,定期更新Tomcat版本和复查配置也很重要。

分享到:
上一篇
Apache漏洞检测与防护配置实操指南
下一篇
MySQL数据库漏洞防护措施实战:从检查到加固全流程
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意