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、日志不记录等。
随后我们逐个解决。
核心加固操作:禁用管理页面与修改默认端口
这一步最优先,因为攻击者常通过默认的管理应用尝试登录。
- 删除或重命名默认管理应用:
cd /usr/local/tomcat/webapps
mv manager manager.bak
mv host-manager host-manager.bak
如果不想保留,直接 rm -rf manager host-manager 也行。
- 修改默认端口8080,改为一个不常用的端口(比如18080):
编辑 conf/server.xml,找到 8080 改成 18080:
然后重启Tomcat使配置生效:
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
- 禁用不安全的HTTP方法:在
conf/web.xml中增加安全约束,只允许 GET 和 POST:
restricted
/*
PUT
DELETE
OPTIONS
TRACE
PATCH
配置HTTPS与强密码策略
如果服务面向公网,务必开启HTTPS。
同时Tomcat默认密码是硬编码的,必须改掉。
- 生成自签名证书或使用免费证书(如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段并修改:
- 修改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,确认以下配置存在(一般默认就有):
效果验证与高频问题
加固完后,执行以下验证:
- 检查端口变化:
netstat -tlnp | grep java,确认8080已改为18080,且8009未监听。 - 测试HTTPS:浏览器访问
https://你的IP:8443,应显示证书提示。 - 尝试访问管理页面:
http://你的IP:18080/manager/html应返回404或403。 - 检查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版本和复查配置也很重要。