当前位置: 首页 > news >正文

Tomcat 基线安全加固操作

目录

账号管理、认证授权 

  日志配置  

通信协议 

设备其他安全要求 


账号管理、认证授权 

ELK-tomcat-01-01-01

编号

ELK-Tomcat-01-01-01

名称

为不同的管理员分配不同的账号

实施目的

应按照用户分配账号,避免不同用户间共享账号,提高安全性。

问题影响

账号混淆,权限不明确,存在用户越权使用的可能。

系统当前状态

记录tomcat/conf/tomcat-users.xml文件

实施步骤

1、参考配置操作

修改tomcat/conf/tomcat-users.xml配置文件,修改或添加帐号。

<user username=”tomcat” password=” Tomcat!234” roles=”admin”>

2、补充操作说明

1、根据不同用户,取不同的名称。

2、Tomcat 4.1.37、5.5.27和6.0.18这三个版本及以后发行的版本默认都不存在admin.xml配置文件。

回退方案

还原tomcat/conf/tomcat-users.xml文件

判断依据

询问管理员是否安装需求分配用户账号

实施风险

重要等级

★★★

备注

 ELK-Tomcat-01-01-02

编号

ELK-Tomcat-01-01-02

名称

删除或锁定无效账号

实施目的

删除或锁定无效的账号,减少系统安全隐患。

问题影响

允许非法利用系统默认账号

系统当前状态

记录tomcat/conf/tomcat-users.xml文件

实施步骤

1、参考配置操作

修改tomcat/conf/tomcat-users.xml配置文件,删除与工作无关的帐号。

例如tomcat1与运行、维护等工作无关,删除帐号:

<user username=”tomcat1” password=”tomcat” roles=”admin”>

回退方案

还原tomcat/conf/tomcat-users.xml文件

判断依据

询问管理员,哪些账号是无效账号

实施风险

重要等级

★★★

备注

 ELK-Tomcat-01-01-03

编号

ELK-Tomcat-01-01-03

名称

密码复杂度

实施目的

对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

问题影响

被暴力破解

系统当前状态

记录tomcat/conf/tomcat-users.xml文件

实施步骤

1、参考配置操作

 在tomcat/conf/tomcat-user.xml配置文件中设置密码

<user username=”tomcat” password=”Tomcat!234” roles=”admin”>

2、补充操作说明

口令要求:长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

回退方案

还原tomcat/conf/tomcat-users.xml文件

判断依据

判定条件

查看tomcat/conf/tomcat-users.xml文件

实施风险

重要等级

★★★

备注

 ELK-Tomcat-01-01-04

编号

ELK-Tomcat-01-01-04

名称

权限最小化

实施目的

在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

问题影响

账号权限越大,对系统的威胁性越高

系统当前状态

查看tomcat/conf/tomcat-user.xml

实施步骤

1、参考配置操作

编辑tomcat/conf/tomcat-user.xml配置文件,修改用户角色权限 

授权tomcat具有远程管理权限:

<user username=”tomcat” password=”chinamobile” 

roles=”admin,manager”>

2、补充操作说明

1、Tomcat 4.x和5.x版本用户角色分为:role1,tomcat,admin,manager四种。

role1:具有读权限;

tomcat:具有读和运行权限;

admin:具有读、运行和写权限;

manager:具有远程管理权限。

Tomcat 6.0.18版本只有admin和manager两种用户角色,且admin用户具有manager管理权限。

2、Tomcat 4.1.37和5.5.27版本及以后发行的版本默认除admin用户外其他用户都不具有manager管理权限。

回退方案

还原tomcat/conf/tomcat-user.xml

判断依据

业务测试正常

实施风险

重要等级

备注

  日志配置  

   ELK-Tomcat-02-01-01

编号

ELK-Tomcat-02-01-01

名称

启用日志记录功能

实施目的

数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP地址。

问题影响

无法对用户的登陆进行日志记录

系统当前状态

查看server.xml

实施步骤

1、参考配置操作

编辑server.xml配置文件,在<HOST>标签中增加记录日志功能

将以下内容的注释标记< ! --    -- >取消

<valve classname=”org.apache.catalina.valves.AccessLogValve”

Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt”

Pattern=”common” resloveHosts=”false”/>

2、补充操作说明

classname: This MUST be set to

 org.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60

Directory:日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,也可以修改为其他路径;

Prefix: 这个是日志文件的名称前缀,日志名称为localhost_access_log.2008-10-22.txt,前面的前缀就是这个localhost_access_log

Suffix: 文件后缀名

Pattern: common方式时,将记录访问源IP、本地服务器IP、记录日志服务器IP、访问方式、发送字节数、本地接收端口、访问URL地址等相关信息在日志文件中

resolveHosts:值为true时,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址

回退方案

还原server.xml

判断依据

判定条件

登录测试,检查相关信息是否被记录

查看server.xml文件

实施风险

重要等级

★★★

备注

通信协议 

ELK-Tomcat-03-01-01

编号

ELK-Tomcat-03-01-01

名称

HTTPS协议

实施目的

对于通过HTTP协议进行远程维护的设备,设备应支持使用HTTPS等加密协议。

问题影响

增加数据库数据传输安全隐患

系统当前状态

查看tomcat/conf/server.xml

实施步骤

(1)使用JDK自带的keytool工具生成一个证书

JAVA_HOME/bin/keytool  -genkey –alias tomcat –keyalg  RSA

-keystore /path/to/my/keystore

(2)修改tomcat/conf/server.xml配置文件,更改为使用https方式,增加如下行:

Connector classname=”org.apache.catalina.http.HttpConnector” 

port=”8443”  minProcessors=”5”  maxprocessors=”100” 

enableLookups=”true”  acceptCount=”10”  debug=”0”

scheme=”https” secure=”true” >

Factory classname=”org.apache.catalina.SSLServerSocketFactory”

clientAuth=”false” 

keystoreFile=”/path/to/my/keystore”  keystorePass=”runway”

protocol=”TLS”/>

/Connector>

其中keystorePass的值为生成keystore时输入的密码

(3)重新启动tomcat服务

回退方案

还原tomcat/conf/server.xml 

判断依据

  1. 判定条件

查看tomcat/conf/server.xml

2、检测操作

使用https方式登陆tomcat服务器管理页面

实施风险

重要等级

★★

备注

​​​​​​​ELK-Tomcat-03-01-02

编号

ELK-Tomcat-03-01-02

名称

更改tomcat服务器默认端口

实施目的

更改tomcat服务器默认端口,增加系统安全性

问题影响

不安全性增加

系统当前状态

查看tomcat/conf/server.xml

实施步骤

1、参考配置操作

(1)修改tomcat/conf/server.xml配置文件,更改默认管理端口到8800

 <Connector

port="8800"  maxHttpHeaderSize="8192" maxThreads="150"

minSpareThreads="25" maxSpareThreads="75"、

enableLookups="false" redirectPort="8443" acceptCount="100"

 connectionTimeout="300" disableUploadTimeout="true" />

(2)重启tomcat服务

回退方案

还原tomcat/conf/server.xml

判断依据

1、判定条件

查看tomcat/conf/server.xml

2、检测操作

登陆http://ip:8800

实施风险

重要等级

备注

设备其他安全要求 

ELK-Tomcat-04-01-01

编号

ELK-Tomcat-04-01-01

名称

登录超时

实施目的

对于具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。

问题影响

被恶意攻击者盗用

系统当前状态

查看tomcat/conf/server.xml

实施步骤

参考配置操作

编辑tomcat/conf/server.xml配置文件,修改为30秒

<Connector

port="8080"  maxHttpHeaderSize="8192" maxThreads="150"

minSpareThreads="25" maxSpareThreads="75"、

enableLookups="false" redirectPort="8443" acceptCount="100"

 connectionTimeout="300" disableUploadTimeout="true" />

回退方案

还原tomcat/conf/server.xml

判断依据

1、判定条件

查看tomcat/conf/server.xml

2、检测操作

登陆tomcat默认页面http://ip:8080/manager/html ,使用管理账号登陆

实施风险

重要等级

★★

备注

​​​​​​​ ELK-Tomcat-04-01-02

编号

ELK-Tomcat-04-01-02

名称

Tomcat错误页面重定向

实施目的

更改Tomcat错误页面重定向页面,增加系统安全性

问题影响

不安全性增加

系统当前状态

查看tomcat/conf/web.xml

实施步骤

1、参考配置操作

(1)配置tomcat/conf/web.xml文件:
在最后</web-app>一行之前加入以下内容:
<error-page>
<error-code>404</error-code>
<location>/noFile.htm</location>
</error-page>
……………
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/ error.jsp</location>
</error-page>
第一个<error-page></error-page>之间的配置实现了将404未找到jsp网页的错误导向noFile.htm页面,也可以用类似方法添加其多的错误代码导向页面,如403,500等。
第二个<error-page></error-page>之间的配置实现了当jsp网页出现java.lang.NullPointerException导常时,转向error.jsp错误页面,还需要在第个jsp网页中加入以下内容:
<%@ page errorPage="/error.jsp" %>
典型的error.jsp错误页面的程序写法如下:
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page isErrorPage="true"%>
<html>
<head><title>错误页面</title></head>
<body>出错了:</p> 错误信息: <%= exception.getMessage() %><br>
Stack Trace is : <pre><font color="red"><%
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw,true);
exception.printStackTrace(pw);
out.println(cw.toString());
%></font></pre>
</body>
</html>
当出现NullPointerException异常时tomcat会把网页导入到error.jsp,且会打印出出错信息。

回退方案

还原tomcat/conf/web.xml

判断依据

1、判定条件

查看tomcat/conf/web.xml

2、检测操作

URL地址栏中输入http://ip:8800/manager~~~

实施风险

重要等级

备注

​​​​​​​ ELK-Tomcat-04-01-03

编号

ELK-Tomcat-04-01-03

名称

禁止tomcat列表显示文件

实施目的

禁止tomcat列表显示文件,增加系统安全性

问题影响

不安全性增加

系统当前状态

查看tomcat/conf/web.xml

实施步骤

1、参考配置操作

(1) 编辑tomcat/conf/web.xml配置文件,
<init-param>
        <param-name>listings</param-name>
        <param-value>true</param-value>
    </init-param>
把true改成false

 (2)重新启动tomcat服务

回退方案

还原tomcat/conf/web.xml

判断依据

1、判定条件

查看tomcat/conf/web.xml

2、检测操作

直接访问http://ip:8800/webadd

实施风险

重要等级

备注

相关文章:

Tomcat 基线安全加固操作

目录 账号管理、认证授权 日志配置 通信协议 设备其他安全要求 账号管理、认证授权 ELK-tomcat-01-01-01 编号 ELK-Tomcat-01-01-01 名称 为不同的管理员分配不同的账号 实施目的 应按照用户分配账号&#xff0c;避免不同用户间共享账号,提高安全性。 问题影响 …...

redis缓存穿透、击穿、雪崩

在我们日常的开发中&#xff0c;无不都是使用数据库来进行数据的存储&#xff0c;由于一般的系统任务中通常不会存在高并发的情况&#xff0c;所以这样看起来并没有什么问题&#xff0c;可是一旦涉及大数据量的需求&#xff0c;比如一些商品抢购的情景&#xff0c;或者是主页访…...

什么是数字孪生?

数字孪生是指通过数字化技术手段&#xff0c;将现实世界中的实体物理系统或过程与其数字化模型相连接&#xff0c;实现实体物理系统或过程的虚拟仿真、监测、预测和优化等功能的一种技术。数字孪生技术可以将物理系统的运行状态、性能参数、故障信息等实时反馈到数字模型中&…...

【DevOps】Git 图文详解(八):后悔药 - 撤销变更

Git 图文详解&#xff08;八&#xff09;&#xff1a;后悔药 - 撤销变更 1.后悔指令 &#x1f525;2.回退版本 reset3.撤销提交 revert4.checkout / reset / revert 总结 发现写错了要回退怎么办&#xff1f;看看下面几种后悔指令吧&#xff01; ❓ 还没提交的怎么撤销&#x…...

WPF基础DataGrid控件

WPF DataGrid 是一个用于显示和编辑表格数据的强大控件。它提供了丰富的功能&#xff0c;包括排序、筛选、分组、编辑、选择等&#xff0c;使你能够以类似电子表格的方式呈现和操作数据。 DataGrid 的布局主要由以下部分组成&#xff1a; 列定义 (Columns): DataGrid 列定义了…...

丐版设备互联方案:安卓linux互联局域网投屏,文件共享,共享剪切板

华为&#xff0c;苹果&#xff0c;甚至小米最近也推出了澎湃&#xff2f;&#xff33;&#xff0c;发现实在是太方便了&#xff0c;当然这些对硬件&#xff0c;系统的要求还是比较高&#xff0c;我用的主力机是小米&#xff11;&#xff12;pro和ubuntu&#xff0c;win双系统也…...

GZ033 大数据应用开发赛题第08套

2023年全国职业院校技能大赛 赛题第08套 赛项名称&#xff1a; 大数据应用开发 英文名称&#xff1a; Big Data Application Development 赛项组别&#xff1a; 高等职业教育组 赛项编号&#xff1a; GZ033 …...

【SpringMvc】SpringMvc +MyBatis整理

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理 Java 框架 中 SpringMVC的知识点和值得注意的地方 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关…...

java springboot测试类鉴定虚拟MVC运行值与预期值是否相同

好 上文java springboot在测试类中构建虚拟MVC环境并发送请求中 我们模拟的MVC环境 发送了一个请求 我们这次需要 对比 预期值和运行值是否一直 这里 我们要用一个 MockMvcResultMatchers 他提供了非常多的校验类型 例如 请求有没有成功 有没有包含请求头信息 等等 这里 我们做…...

UE5的TimeLine的理解

一直以来&#xff0c;我对动画的理解一直是这样的&#xff1a; 所谓动画&#xff0c;就是可导致可视化内容变化的参数和时间的对应关系。 我不能说这个观点现在过时了&#xff0c;只能说自己狭隘了。因为UE的TimeLine的设计理念真让人竖大拇指。 当我第一次看到TimeLine节点的…...

react原理及合成事件原理

文章目录 react的理解react创建组件的三种写法react的工作原理初始化的渲染流程。页面更新的流程。diffing 算法计算更新视图diff策略 react合成事件原理一、React合成事件的概念二、React合成事件的原理三、React合成事件的优势四、React合成事件的使用方法五、总结 react的理…...

独立版求职招聘平台小程序开发

小程序招聘系统开发 我们开发了一款高效、便捷的互联网招聘平台。在这里&#xff0c;可以轻松实现企业入驻、职位发布、在线求职、精准匹配职位和人才&#xff0c;以及参与招聘会等功能。目标是为求职者和企业搭建一个连接彼此的桥梁&#xff0c;帮助您更快地找到满意的工作&…...

Redis事务+秒杀案例

Redis事务是一个单独的隔离操作&#xff0c;是指将多条命令放在一个命令队列当中&#xff0c;按顺序执行&#xff0c;保证多个命令在同一个事务中执行而不受其他客户端的影响。 通俗来说就是&#xff1a;串联多个命令防止别的命令插队。 1.Multi、Exec、discard 在输入Multi命…...

目标分割技术-语义分割总览

前言 博主现任高级人工智能工程师&#xff0c;曾发表多篇SCI且获得过多次国际竞赛奖项&#xff0c;理解各类模型原理以及每种模型的建模流程和各类题目分析方法。目的就是为了让零基础快速使用各类代码模型&#xff0c;每一篇文章都包含实战项目以及可运行代码。欢迎大家订阅一…...

基于C#实现最长公共子序列

一、作用 最长公共子序列的问题常用于解决字符串的相似度&#xff0c;是一个非常实用的算法&#xff0c;作为码农&#xff0c;此算法是我们的必备基本功。 二、概念 举个例子&#xff0c;cnblogs 这个字符串中子序列有多少个呢&#xff1f;很显然有 27 个&#xff0c;比如其…...

物联网AI MicroPython学习之语法 SPI串行外设通信

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; SPI 介绍 模块功能: SPI串行外设驱动 接口说明 SPI - 构建SPI对象 函数原型&#xff1a;SPI(id, baudrate&#xff0c;polarity, phase&#xff0c;sck, mosi, miso)参数说明&#xff1a; 参数类型必选参…...

电动汽车充放电V2G模型MATLAB代码

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 主要内容&#xff1a; 本程序主要建立电动汽车充放电V2G模型&#xff0c;采用粒子群算法&#xff0c;在保证电动汽车用户出行需求的前提下&#xff0c;为了使工作区域电动汽车尽可能多的消纳供给商场基础负荷…...

【大数据Hive】hive 优化策略之job任务优化

目录 一、前言 二、hive执行计划 2.1 hive explain简介 2.1.1 语法格式 2.1.2 查询计划阶段说明 2.2 操作演示 2.2.1 不加条件的查询计划分析 2.2.2 带条件的查询计划分析 三、MapReduce属性优化 3.1 本地模式 3.1.1 本地模式参数设置 3.1.2 本地模式操作演示 3.2 …...

OpenAI再次与Altman谈判;ChatGPT Voice正式上线

11月22日&#xff0c;金融时报消息&#xff0c;OpenAI迫于超过700名员工联名信的压力&#xff0c;再次启动了与Sam Altman的谈判&#xff0c;希望他回归董事会。 在Sam确定加入微软后&#xff0c;OpenAI超700名员工签署了一封联名信&#xff0c;要求Sam和Greg Brockman&#x…...

【JS】Chapter15-高阶技巧

站在巨人的肩膀上 黑马程序员前端JavaScript入门到精通全套视频教程&#xff0c;javascript核心进阶ES6语法、API、js高级等基础知识和实战教程 &#xff08;十五&#xff09;高阶技巧 1. 深浅拷贝 开发中我们经常需要复制一个对象。如果直接用赋值会有下面问题&#xff1a;/…...

React-Motion Spring函数终极指南:如何精准控制弹簧参数和预设

React-Motion Spring函数终极指南&#xff1a;如何精准控制弹簧参数和预设 【免费下载链接】react-motion A spring that solves your animation problems. 项目地址: https://gitcode.com/gh_mirrors/re/react-motion React-Motion是一个强大的动画库&#xff0c;它通过…...

量子计算编程框架QUASAR:强化学习优化汇编代码生成

1. 量子计算与汇编代码的碰撞 量子计算正在从实验室走向实际应用&#xff0c;但编写量子程序仍然是个技术活。传统量子编程需要开发者同时理解量子物理原理和特定硬件架构&#xff0c;这种双重门槛让很多潜在开发者望而却步。我在量子计算领域摸爬滚打多年&#xff0c;亲眼见过…...

ARMv7调试架构详解:从原理到实践

1. ARMv7调试架构概述ARMv7调试架构是处理器设计中的关键子系统&#xff0c;为嵌入式系统开发提供了全面的调试支持。该架构由三大核心组件构成&#xff1a;侵入式调试、性能计数器和跟踪功能&#xff0c;形成了一个多层次的调试解决方案。调试架构的演进始于ARMv6&#xff0c;…...

区块链与LLM评估:去中心化框架的技术革新

1. 区块链与LLM评估的范式革新在AI技术迅猛发展的当下&#xff0c;大语言模型&#xff08;LLM&#xff09;的评估体系正面临根本性挑战。传统集中式评估方法暴露出的统计脆弱性&#xff0c;已成为制约AI进步的关键瓶颈。以HumanEval基准测试为例&#xff0c;单模型十次运行的性…...

如何高效使用NifSkope:游戏开发者必备的完整3D模型编辑指南

如何高效使用NifSkope&#xff1a;游戏开发者必备的完整3D模型编辑指南 【免费下载链接】nifskope A git repository for nifskope. 项目地址: https://gitcode.com/gh_mirrors/ni/nifskope NifSkope是一款专业的开源3D模型编辑器&#xff0c;专门用于处理和编辑NetImme…...

从‘开口三角’到系统接地:手把手教你分析PT在单相接地故障时的电压变化

从‘开口三角’到系统接地&#xff1a;手把手教你分析PT在单相接地故障时的电压变化 在变电站日常运维中&#xff0c;电压互感器&#xff08;PT&#xff09;的开口三角电压监测是判断系统接地故障的"晴雨表"。当中性点接地方式不同的电力系统发生单相接地时&#xff…...

JavaScript 数据类型全景图:从基础到进阶

&#x1f9f1; JavaScript 数据类型全景图&#xff1a;从基础到进阶 很多初学者认为 JS 只有“字符串”和“数字”&#xff0c;或者分不清 null 和 undefined 的区别。 其实&#xff0c;JS 的数据类型设计非常精巧&#xff0c;分为两大阵营&#xff1a;基本数据类型&#xff0…...

别再傻傻用IO模拟了!手把手教你用STM32的FMC外设驱动ILI9341 LCD屏(附完整代码)

STM32 FMC驱动ILI9341 LCD屏&#xff1a;从GPIO模拟到硬件加速的终极优化 在嵌入式UI开发中&#xff0c;流畅的显示效果往往直接影响用户体验。当你在STM32上使用GPIO模拟8080时序驱动LCD时&#xff0c;是否遇到过这些场景&#xff1a;波形刷新出现撕裂、菜单滑动不够跟手、动…...

SMAPI终极指南:5分钟掌握星露谷物语模组加载器

SMAPI终极指南&#xff1a;5分钟掌握星露谷物语模组加载器 【免费下载链接】SMAPI The modding API for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/smap/SMAPI 你是否曾经因为星露谷物语模组安装复杂而感到困惑&#xff1f;是否遇到过模组冲突导致游戏…...

为内部知识库问答系统集成 Taotoken 多模型后备路由策略

为内部知识库问答系统集成 Taotoken 多模型后备路由策略 1. 业务场景与需求分析 企业级知识库问答系统通常需要处理大量内部文档检索与自然语言交互场景。当系统依赖单一模型服务时&#xff0c;可能面临服务不可用、响应延迟或配额耗尽等风险。通过 Taotoken 平台的多模型聚合…...