Tomcat安全加固

1. 删除文档和实例程序

检查方法 :打开tomcat_home/webapps文件夹,默认存在docs和examples文件夹

加固方法:建议删除docs和examples文件夹

在这里插入图片描述

2 设置shutdown字符串

安全基线项说明:防止恶意用户telnet到8005端口后,发送SHUTDOWN命令停止tomcat服务

检查方法:打开tomcat_home/conf/server.xml,查看是否设置了复杂的字符串
<Server port="8005"shutdown=“复杂的字符串”>

加固方法:设置复杂的字符串,防止恶意用户猜测

在这里插入图片描述

3 检查控制台口令

安全基线项说明:加固tomcat控制台,设置复杂的口令

检查方法:

  1. 如果不需要使用控制台
    Tomcat 6.x/7.x:
    默认通过http://ip:8080/manager/html可以访问tomcatmanager,如果不需要使用,建议删除tomcat_home/webapps/manager和host-manager文件夹;

在这里插入图片描述

  1. 如果需要使用tomcatmanager
    Tomcat 5.x/6.x:
    打开tomcat_home/conf/tomcat-users.xml,查看用户密码复杂度

例如:

<user username="tomcat"password="复杂的口令"roles=“manager”/>

在这里插入图片描述

4 禁止列目录

安全基线项说明:防止直接访问目录时由于找不到默认主页而列出目录下所有文件

检查方法:打开应用程序的web.xml,查看listings是否设置为false
listings
false

在这里插入图片描述

5 日志审核

安全基线项说明:检查tomcat是否记录了访问日志

检查方法:tomcat的日志信息默认存放在tomcat_home/logs中,访问日志默认未开启

加固方法:
如果tomcat前端有Apache,Apache可以记录访问日志。
如果tomcat独立运行,可以开启tomcat访问日志,修改tomcat_home/conf/server.xml,取消注释:
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory=“logs” prefix=“localhost_access_log.“suffix=”.txt” pattern="common"resolveHosts=“false”/>
启用access_log后,重启tomcat,在tomcat_home/logs中可以看到访问日志
注:这里记录的时间转换为北京时间需要+8小时

6 禁止非法HTTP方法

安全基线项目名称:禁用PUT、DELETE等危险的HTTP方法

检查方法:编辑web.xml文件中配置,查看readonly的param-value值是否为false

加固方法:编辑web.xml文件中配置,将readonly的param-value值设为false
org.apache.catalina.servlets.DefaultServlet的

1
2
3
4
<init-param>
<param-name>readonly</param-name>
<param-value>true</param-value>
</init-param>

7 系统Banner信息

安全基线项说明:修改系统Banner信息

检查方法:
telnet判断信息:

1
2
telnet ip 8080
HEAD /HTTP1.1然后两次回车,可以看到server的信息

在这里插入图片描述

参考:安全服务之安全基线及加固(四)Tomcat篇 (qq.com)

-------------本文结束感谢您的阅读-------------

本文标题:Tomcat安全加固

文章作者:OperationMAN

发布时间:2022年01月25日 - 16:01

最后更新:2022年03月31日 - 16:03

原始链接:https://kxinter.gitee.io/2022/01/25/Tomcat安全加固/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!