Tomcat 基线安全加固操作

news/2024/12/22 13:59:55/

目录

账号管理、认证授权 

  日志配置  

通信协议 

设备其他安全要求 


账号管理、认证授权 

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

实施风险

重要等级

备注


http://www.ppmy.cn/news/1226579.html

相关文章

为什么选择B+树作为数据库索引结构?

背景 首先&#xff0c;来谈谈B树。为什么要使用B树&#xff1f;我们需要明白以下两个事实&#xff1a; 【事实1】 不同容量的存储器&#xff0c;访问速度差异悬殊。以磁盘和内存为例&#xff0c;访问磁盘的时间大概是ms级的&#xff0c;访问内存的时间大概是ns级的。有个形象…

gRPC 四模式之 双向流RPC模式

双向流RPC模式 在双向流 RPC 模式中&#xff0c;客户端以消息流的形式发送请求到服务器端&#xff0c;服务器端也以消息流的形式进行响应。调用必须由客户端发起&#xff0c;但在此之后&#xff0c;通信完全基于 gRPC 客户端和服务器端的应用程序逻辑。 为什么有了双向流模式…

C语言循环结构 while循环

while循环 while循环语句概述while循环输出20个数while循环注意事项 while循环语句概述 作用&#xff1a;满足循环条件&#xff0c;执行循环语句 语法&#xff1a;while(循环条件){ 循环语句 } 解释&#xff1a;只要循环条件的结果为真&#xff0c;就执行循环语句 while循环输…

【Linux】进程间通信 -- 共享内存

共享内存 共享内存是SystemV标准进程间通信的一种&#xff0c;该标准还有消息队列和信号量&#xff0c;但下文主要介绍共享内存&#xff0c;然后在谈一下信号量的内容。SystemV标准的进程间通信可以看做单机版的进程间通信。 // 1. log.hpp #pragma once#include <iostrea…

ClickHouse建表优化

1. 数据类型 1.1 时间字段的类型 建表时能用数值型或日期时间型表示的字段就不要用字符串&#xff0c;全String类型在以Hive为中心的数仓建设中常见&#xff0c;但ClickHouse环境不应受此影响。 虽然ClickHouse底层将DateTime存储为时间戳Long类型&#xff0c;但不建议存储Long…

代码随想录 Day47 动态规划15 LeetCode T583 两个字符串的删除操作 T72 编辑距离

LeetCode T583 两个字符串的删除操作 题目链接:583. 两个字符串的删除操作 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 本题有两个思路 1.使用两个字符串的长度之和-2*最长公共子串(换汤不换药) 代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交…

freeCodeCamp响应式网页设计笔记

h1到h6标题元素&#xff0c;用于表明其内容的重要性&#xff0c;数字越低&#xff0c;重要性越高&#xff0c;所以h2元素内容的重要性应该低于h1元素&#xff0c;所以在编程中&#xff0c;每页应尽量只使用一个h1元素&#xff0c;并将重要性较低的标题放在重要性较高的标题之下…

在 Streamlit 中使用自定义 CSS 创建加密仪表板

一、说明 仪表板是表示任何类型数据的好方法,它是一种可以很好地理解我们正在处理的数据的形式。使用 HTML、CSS 和 JavaScript 框架构建令人惊叹的仪表板可能是一项非常棘手的工作,尤其是当您想要向仪表板添加复杂的功能和复杂的设计时。但不用担心,Python 会来拯救…