0


风险评估:Tomcat的安全配置,Tomcat安全基线检查加固

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。

在这里插入图片描述

这一章节我们需要知道Tomcat基线检查的标准和加固方式。

在这里插入图片描述

Tomcat安全基线

1、删除默认页面

删除

tomcat安装目录\webapps\

目录下的 docs、examples 文件夹。这两个是Tomcat提供的示例程序。

在这里插入图片描述

2、控制台口令

http://127.0.0.1:8080/manager/html

可以访问tomcat的控制台。

在这里插入图片描述
1)如果不使用控制台,可以删除

tomcat安装目录\webapps\

目录下的 manager、host-manager 文件夹。

在这里插入图片描述

2)如果使用控制台,可以设置复杂的密码。

tomcat安装目录\conf\tomcat-users.xml

<tomcat-users ><user username="tomcat"password="复杂的密码"roles="manager-gui"/>

在这里插入图片描述

3、shutdown口令

shutdown.sh

关闭tomcat服务是连接8005端口执行SHUTDOWN命令实现的。

我们直接telnet 8005端口,执行SHUTDOWN命令,也可以关闭Tomcat服务。

tomcat安装目录\conf\server.xml

设置复杂的shutdown口令。

在这里插入图片描述

扩展:Tomcat端口作用

  • 8005:Telnet8005端口执行shutdown口令关闭Tomcat服务。
  • 8009:httpd使用ajp协议通过8009端口反向代理Tomcat。
  • 8080:http监听端口。
  • 8443:https监听端口,默认不开启,需要提供证书。

4、禁用静态目录列表

tomcat安装目录\conf\web.xml

的 listings 设置为 false,重启Tomcat 服务生效。

在这里插入图片描述

如果开启静态目录列表,直接访问目录,并且目录下没有默认主页时,就会列出目录下的所有文件,导致目录遍历。

在这里插入图片描述

5、开启访问日志

Tomcat 7 开始默认开启访问日志。手动开启到

tomcat安装目录\conf\server.xml

取消 AccessLogValve 的注释,重启生效。directory是目录位置、perfix是日志文件名、pattern是日志格式。

在这里插入图片描述

tomcat安装目录\logs\

查看 access日志。具体的日志路径和文件名取决于上一步server.xml的配置。

在这里插入图片描述

扩展:pattern日志格式,

-

表示空。

  • %a:远程IP。
  • %A:本地IP。
  • %b:发送的字节数。
  • %h:远程主机名。
  • %H:请求协议。
  • %l:远程用户名。
  • %m:请求的方法(GET、POST等)。
  • %p:接受请求的本地端口。
  • %q:查询字符串,如果存在,有一个前置的 ?
  • %r:请求的第一行(请求方法和请求的URI)。
  • %s:HTTP响应状态码(200、404等)。
  • %S:用户的session ID。
  • %t:日期和时间,Common Log Format格式。
  • %u:被认证的远程用户。
  • %U:请求URL路径。
  • %v:本地服务名。
  • %D:处理请求的时间,毫秒。
  • %T:处理请求的时间,秒。
  • %I:当前请求的线程名。

6、禁用HTTP方法

Tomcat 7.0.0 - 7.0.79 的readonly默认未false,允许PUT、DELETE等请求方式,会造成远程代码执行,比如 CVE-2017-12615。

新版本 readonly 默认为 true,并且不显示这一项。检查

tomcat安装目录\conf\web.xml

,readonly 不能为 false。

在这里插入图片描述

7、修改banner信息

系统的 banner 信息充当欢迎语的作用,会泄露服务类型、版本号等信息。

1)HEAD请求获取的响应头信息,可能会暴漏版本号。

在这里插入图片描述

tomcat安装目录\conf\server.xml

改server的值或者删掉这个字段。一些新版本优化掉了server字段。

在这里插入图片描述

2)页面访问报错时,会泄露版本。

在这里插入图片描述

tomcat安装目录\lib\catalina.jar\org\apache\catalina\util\ServerInfo.properties

修改server.info 和 server.number。

在这里插入图片描述

8、关闭热部署

Tomcat 7 开始默认开启自动部署,也就是热部署,会自动检查webapps目录下的的新文件并重新部署web程序。否则就需要重启Tomcat才能重新加载。

tomcat安装目录\conf\server.xml

Host 的 autoDeploy 设置成 false,关闭热部署。

在这里插入图片描述

9、降低权限

Tomcat 安装目录的权限改成非root用户。使用非 root 用户启动 Tomcat。

# 创建tomcat用户useradd tomcat    
# Tomcat安装目录的所有者改为tomcatchown-R tomcat:tomcat /opt/tomcat
# 停止Tomcat
/opt/tomcat/bin/shutdown.sh
# 切换tomcat用户su tomcat
# 以tomcat用户的权限运行Tomcat
/opt/tomcat/bin/startup.sh
标签: tomcat 安全 java

本文转载自: https://blog.csdn.net/wangyuxiang946/article/details/139862788
版权归原作者 士别三日wyx 所有, 如有侵权,请联系我们删除。

“风险评估:Tomcat的安全配置,Tomcat安全基线检查加固”的评论:

还没有评论