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

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

在这里插入图片描述

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

在这里插入图片描述

Tomcat安全基线

  • 1、删除默认页面
  • 2、控制台口令
  • 3、shutdown口令
  • 4、禁用静态目录列表
  • 5、开启访问日志
  • 6、禁用HTTP方法
  • 7、修改banner信息
  • 8、关闭热部署
  • 9、降低权限

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安装目录的所有者改为tomcat
chown -R tomcat:tomcat /opt/tomcat
# 停止Tomcat
/opt/tomcat/bin/shutdown.sh
# 切换tomcat用户
su tomcat
# 以tomcat用户的权限运行Tomcat
/opt/tomcat/bin/startup.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

grafana数据展示

目录 一、安装步骤 二、如何添加喜欢的界面 三、自动添加注册客户端主机 一、安装步骤 启动成功后 可以查看端口3000是否启动 如果启动了就在浏览器输入IP地址&#xff1a;3000 账号密码默认是admin 然后点击 log in 第一次会让你修改密码 根据自定义密码然后就能登录到界面…

高职物联网实训室

一、高职物联网实训室建设背景 随着《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》的发布&#xff0c;中国正式步入加速数字化转型的新时代。在数字化浪潮中&#xff0c;物联网技术作为连接物理世界与数字世界的桥梁&#xff0c;其重要性日益凸显…

Golang | Leetcode Golang题解之第224题基本计算器

题目&#xff1a; 题解&#xff1a; func calculate(s string) (ans int) {ops : []int{1}sign : 1n : len(s)for i : 0; i < n; {switch s[i] {case :icase :sign ops[len(ops)-1]icase -:sign -ops[len(ops)-1]icase (:ops append(ops, sign)icase ):ops ops[:len(o…

2024年有多少程序员转行了?

疫情后大环境下行&#xff0c;各行各业的就业情况都是一言难尽。互联网行业更是极不稳定&#xff0c;频频爆出裁员的消息。大家都说2024年程序员的就业很难&#xff0c;都很焦虑。 在许多人眼里&#xff0c;程序员可能是一群背着电脑、进入高大上写字楼的职业&#xff0c;他们…

Datawhale AI 夏令营 机器学习挑战赛

一、赛事背景 在当今科技日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正以前所未有的深度和广度渗透到科研领域&#xff0c;特别是在化学及药物研发中展现出了巨大潜力。精准预测分子性质有助于高效筛选出具有优异性能的候选药物。以PROTACs为例&#x…

Hi3861 OpenHarmony嵌入式应用入门--MQTT

MQTT 是机器对机器(M2M)/物联网(IoT)连接协议。它被设计为一个极其轻量级的发布/订阅消息传输 协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用&#xff0c;是专为受限设备和低带宽、 高延迟或不可靠的网络而设计。这些原则也使该协议成为新兴的“机器…

AutoMQ 生态集成 Kafdrop-ui

Kafdrop [1] 是一个为 Kafka 设计的简洁、直观且功能强大的Web UI 工具。它允许开发者和管理员轻松地查看和管理 Kafka 集群的关键元数据&#xff0c;包括主题、分区、消费者组以及他们的偏移量等。通过提供一个用户友好的界面&#xff0c;Kafdrop 大大简化了 Kafka 集群的监控…

量产工具一一UI系统(四)

目录 前言 一、按钮数据结构抽象 1.ui.h 二、按键处理 1.button.c 2.disp_manager.c 3.disp_manager.h 三、单元测试 1.ui_test.c 2.上机测试 前言 前面我们实现了显示系统框架&#xff0c;输入系统框架和文字系统框架&#xff0c;链接&#xff1a; 量产工具一一显…

集控中心操作台材质选择如何选择

作为集控中心的核心组成部分&#xff0c;操作台不仅承载着各种设备和工具&#xff0c;更是工作人员进行监控、操作和管理的重要平台。因此&#xff0c;选择适合的集控中心操作台材质显得尤为重要。 一、材质选择的考量因素 在选择集控中心操作台材质时&#xff0c;我们需要综合…

SpringCloud跨微服务的远程调用,如何发起网络请求,RestTemplate

在我们的业务流程之中不一定都会是自己模块查询自己模块的信息&#xff0c;有些时候就需要去结合其他模块的信息来进行一些查询完成相应的业务流程&#xff0c;但是在SpringCloud每个模块都相对独立&#xff0c;数据库也有数据隔离。所以当我们需要其他微服务模块的信息的时候&…

前端javascript中的排序算法之选择排序

选择排序&#xff08;Selection Sort&#xff09;基本思想&#xff1a; 是一种原址排序法&#xff1b; 将数组分为两个区间&#xff1a;左侧为已排序区间&#xff0c;右侧为未排序区间。每趟从未排序区间中选择一个值最小的元素&#xff0c;放到已排序区间的末尾&#xff0c;从…

小米采取措施禁止国行版设备安装国际版系统 刷机后将报错无法进入系统

据知名官改版系统 Xiaomi.EU 测试者 Kacper Skrzypek 发布的消息&#xff0c;小米目前已经在开机引导中新增区域检测机制&#xff0c;该机制将识别硬件所属的市场版本&#xff0c;例如中国大陆市场销售的小米即将在安装国际版系统后将无法正常启动。 测试显示该检测机制是在开…

1.DDR3 SO-DIMM 内存条硬件总结

最近在使用fpga读写DDR3&#xff0c;板子上的DDR3有两种形式与fpga相连&#xff0c;一种是直接用ddr3内存颗粒&#xff0c;另一种是通过内存条的形式与fpga相连。这里我们正好记录下和ddr3相关的知识&#xff0c;先从DDR3 SO-DIMM 内存条开始。 1.先看内存条的版本 从JEDEC下载…

《算法笔记》总结No.5——递归

一.分而治之 将原问题划分为若干个规模较小而结构与原问题相同或相似的子问题&#xff0c;然后分别解决这些子问题&#xff0c;最后合并子问题的解&#xff0c;即可得到原问题的解&#xff0c;步骤抽象如下&#xff1a; 分解&#xff1a;将原问题分解为若干子问题解决&#x…

用VLM训练实时计算机视觉模型

经过数十亿个参数训练的 AI 模型非常强大&#xff0c;但并不总是适合实时使用。但是&#xff0c;它们可以通过自动监督快速专用模型的标注来减少人力投入。 ‍ 如果你曾经构建过计算机视觉模型&#xff0c;就就会知道监督需要大量工作——人类花时间&#xff08;数小时或数天&a…

自动化测试全攻略:从入门到精通!

1、自动化测试专栏 随着技术的发展和工作需求的增长&#xff0c;自动化测试已成为软件质量保障体系中不可或缺的一环。 为了帮助广大测试工程师、开发者和对自动化测试感兴趣的读者们更好地掌握这一技能&#xff0c;今年特别推出了全新的《自动化测试全攻略&#xff1a;从入门…

scratch绘制四个三角形 2024年6月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

scratch绘制四个三角形 一、题目要求 2024年6月电子学会图形化编程Scratch等级考试二级真题 1、准备工作 1.保留默认角色小猫; 2.添加背景Stars。 2、功能实现 1 .隐藏角色小猫&#xff0c;设置画笔裙始位置为(0,0)&#xff0c;画笔颜色为黄色&#xff0c;画笔的粗细为5…

NET Core 中的空对象设计模式

介绍 一种称为“空对象模式”的行为设计模式提供了一个对象来表示接口缺少的对象。在空对象会导致空引用异常的情况下&#xff0c;这是一种提供替代行为的方法。在本文中&#xff0c;我们将深入探讨 C# 空对象模式&#xff0c;并逐步解决更复杂的情况。 空对象设计模式它是什…

k8s离线部署芋道源码前端

目录 概述 编译Dockerfile 构建Dockerfilenginx.conf构建 k8s部署前端镜像部署ingress 概述 本篇将对 k8s离线部署芋道源码前端 进行详细的说明&#xff0c;对如何构建 Dockerfile&#xff0c;如何整合 Nginx&#xff0c;如何整合 ingress 进行实践。 相关文章&#xff1a;naco…

Hugging face Transformers(4)—— Model

Hugging Face 是一家在 NLP 和 AI 领域具有重要影响力的科技公司&#xff0c;他们的开源工具和社区建设为NLP研究和开发提供了强大的支持。它们拥有当前最活跃、最受关注、影响力最大的 NLP 社区&#xff0c;最新最强的 NLP 模型大多在这里发布和开源。该社区也提供了丰富的教程…