如何让Tomcat更强壮
字数 1452 2025-08-18 11:38:22
Tomcat服务器安全加固指南
1. 不安全的HTTP请求方法加固
漏洞描述:
Tomcat默认支持多种HTTP请求方法(如OPTIONS、TRACE等),这些方法可能被攻击者利用进行信息收集或攻击。
加固方案:
- 修改
web.xml文件,添加以下内容:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint></auth-constraint>
</security-constraint>
- 重启Tomcat服务使配置生效
- 验证:使用OPTIONS方法请求应返回403错误
2. 慢速DoS攻击防护
漏洞描述:
攻击者通过保持长时间连接消耗服务器资源,实施慢速DoS攻击。
加固建议:
修改server.xml文件中的连接超时参数:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="5000"
... />
- 将
connectionTimeout从默认的20000ms(20秒)改为5000ms(5秒) - 此参数表示建立连接后,如果既收不到客户端的FIN也没有数据,此连接会在设定时间后被超时释放
3. 目录文件列出漏洞修复
漏洞描述:
Tomcat可能配置不当导致目录内容被列出,泄露敏感信息。
加固建议:
修改web.xml中的listings参数:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
- Tomcat 8.0+默认已屏蔽目录列出
- 确保
<param-value>设置为false
4. 默认管理路径安全
漏洞描述:
Tomcat存在默认管理路径(如/manager/html),易被暴力破解。
加固建议:
- 修改默认8080端口:
在server.xml中修改:<Connector port="9999" protocol="HTTP/1.1" ... /> - 重启Tomcat服务
- 考虑删除或重命名默认管理应用(如manager、host-manager)
5. 自定义错误页面配置
漏洞描述:
系统报错时可能泄露敏感信息,包括服务器版本、路径等。
加固建议:
- 在
web.xml中添加错误页面配置:
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
- 在
webapps/ROOT目录下创建error.html自定义错误页面
6. 版本信息泄露防护
漏洞描述:
错误页面会泄露Tomcat版本信息,帮助攻击者寻找对应漏洞。
加固建议:
- 进入
tomcat/lib目录,找到catalina.jar - 使用压缩工具打开,进入
org/apache/catalina/util目录 - 编辑
ServerInfo.properties文件,修改以下内容:
server.info=Apache Tomcat
server.number=8.5.x
server.built=Unknown
- 保存修改并更新jar包
- 重启Tomcat服务
7. 关闭War包自动部署
漏洞描述:
自动部署功能可能被攻击者利用上传恶意war包。
加固建议:
修改conf/server.xml文件:
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false">
- 将
unpackWARs和autoDeploy从默认的true改为false - 此配置会禁用自动部署功能
8. 日志配置增强(附加建议)
加固建议:
修改conf/server.xml中的日志配置:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
可根据需求调整:
directory:日志存储位置prefix:日志名前缀suffix:日志名后缀pattern:日志记录格式
总结加固步骤
- 限制HTTP方法 (
web.xml) - 设置连接超时 (
server.xml) - 禁用目录列出 (
web.xml) - 修改默认端口和管理路径 (
server.xml) - 配置自定义错误页面 (
web.xml+error.html) - 隐藏版本信息 (
catalina.jar) - 关闭自动部署 (
server.xml) - 增强日志记录 (
server.xml)
重要提示:所有配置修改后都需要重启Tomcat服务才能生效。建议在修改前备份相关配置文件,并在测试环境验证后再应用到生产环境。