等保2.0 | Apache Tomcat中间件测评

news2024/11/15 17:29:36

这里就谈谈等保2.0要求,对应到Apache Tomcat中间件的一些条款要求。

安装步骤略过,我们直接看等保中涉及的一些参数。

首先,做测评的时候我们先要记录相应的软件版本:

查看版本,在tomcat目录下执行/bin/catalina.sh version,可查看对应的软件版本信息

图片

这是前期的资产情况,记录在系统构成中。

然后,再根据等保的对应的每条条款,确认到中间件中应该如何查询。

一、身份鉴别

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换

首先针对身份鉴别这个控制点,如果Apache Tomcat开启了管理控制台,则此控制点需要进行测评,否则为不适用。

1.确认是否使用了tomcat管理后台

我们先找到配置文件:tomcat主目录下/conf/server.xml

可以查看到连接端口,默认为8080

图片

然后查看manager-gui管理页面配置文件,是否设置了用户登录

配置文件:tomcat主目录下/conf/tomcat-users.xml

图片

如果有类似的如上语句则代表存在用户

当前我们还要查看tomcat主目录下/webapps目录,观察是否存在manager这个文件

图片

然后访问,默认界面为:

图片

点击访问即可

图片

2.访问Manager APP报错403错误解决方案

当第一次安装、配置环境的时候,可能会出现如下报错

图片

网上许多网上找许多都是说没有配置账号和密码,需要在tomcat 的conf中的tomcat-user.xml中增加账户、密码、权限,但是这只是第一步。

重启tomcat以后可以在虚拟机内使用manager app,但是虚拟机外不行。这是因为tomcat进行了ip限制,还需要将限制取消掉。

将tomcat文件夹下的webapps/manager/META-INF/context.xml文件夹的以下内容注销掉

<Context antiResourceLocking="false" privileged="true" >
<!--<ValveclassName="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
</Context>

图片

图片

然后重启服务,再访问即可

图片

3.修改默认欢迎界面

因为在客户实际环境中,很多情况下访问默认都不是tomcat默认界面,在这种情况下我们如何进入该控制台呢?

3.1 创建一个网站 

类似于apache之于/var/www/html/,nginx之于/usr/share/nginx/html/,tomcat同样有自己对应的网页目录,一般就是根目录+webapps/,在本机上就是 /usr/local/tomcat/webapps/

我们创建一个叫test的项目,同时在test目录下建立WEB-INF/classes和WEB-INF/lib文件夹

mkdir -p /usr/local/tomcat/webapps/test/WEB-INF{classes,lib}

图片

ok,可以在test目录下写下第一个Jsp网页了(注:和apache和nginx不同,tomcat默认支持Jsp,因此无需再安装Jsp)

vim /usr/local/tomcat/webapps/test/index.jsp

图片

3.2 修改server.xml文件

找到下图中的字段:

图片

在</Host>前插入:

图片

path:代表虚拟目录的名字,如果你只要输入ip地址就显示主页,则该键值留为空;

docBase:它指定的是登录tomcat默认的主页所在的文件夹,这个量默认情况下指定的是 ROOT文件夹,新建一个test文件夹,把网页放到该文件夹内,需要有一个html或 者jsp文件,在Web.xml文件中有指定,会按照顺序去寻找对应的文件。

debug和reloadable:一般设置成0和true就行了,在项目编写和测试阶段reloadable设置为 true表示只要tomcat中的项目有改动tomcat就会自动重新加载编译,可以带给我们一些方便,但是在项目发布阶段一般设为false,可以提高tomcat的性能。

 这样我们的默认界面就弄好了,直接访问将是你设置好的网页。

图片

3.3 无默认界面情况下直接访问manager app

 我们直接再后面加后缀/manager(或者/manager/html)即可

图片

4. 等保查看点

当用户使用了tomcat管理控制台时,针对身份鉴别a)条款,检查tomcat目录下/conf/tomcat-user.xml文件

图片

查看用户口令是否具有复杂度,查看password字段即可,一般要求由大写字母、小写字母、数字、特殊符号中的三种组成,长度8位以上,然后定期修改,这个好像没啥证据,只能询问管理人员。

然后针对用户的标识唯一性

图片

这里我进行了测试,你在配置文件下直接写两个同名用户是,没有问题的,但是在登录的时候,他好像只会匹配最下面的那个用户。比如上图,我有两个账户均为tomcat,但是口令不一样,实际登录的时候,使用tomcat口令的那个账户无法登录,只能使用口令为123456的账户登录。

所以这个不太清楚,但是一般客户也不会设两个同名用户吧,关于用户标识唯一性,账户不同名就行了。

b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施

关于这个测评项,就是要求一个登录失败处理功能和操作超时自动退出的功能。

1.登录失败处理功能

tomcat管理控制台默认拥有登录失败处理功能。

经过我自己的测试,默认情况下:登录失败5次,锁定10分钟。不过不清楚不同的版本是不是一样的。

然后他也有自己的配置文件:

tomcat目录/conf/server.xml下配置

查看对应的failureCount(次),lockOutTime(秒)值,可自行编辑

图片

如上图,代表失败3次,锁定300秒。

2.操作超时值

这个的要求应该是多少时间不操作了,他能自动登录,重新进行身份鉴别,类似屏幕保护功能

网上查了很多相关资料,都是说查看connectionTimeout值

图片

这个我测试了一下,挂着不操作好像不会自动退出,所以不清楚这个功能怎么实现,有清楚的可以留言教我一下。

c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听

这条我觉得直接观察tomcat后台的访问方式即可,是使用http还是https的。

d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现

这条我不知道实现方式是啥,不过一般不会有人去做吧。。。

直接现场观察验证即可。

二、访问控制

首先这里的访问控制要求,就是针对tomcat管理控制台中的用户权限,即Tomcat Manager,它是Tomcat自带的,用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。

Tomcat Manager以授予用户相应角色的方式,进行访问控制,授权其使用相应的功能。

查看的文件为tomcat目录下/conf/tomcat-user.xml

图片

如上图,roles字段就是配置角色的地方,一个用户可以具备多种权限,多个rolename之间可以用英文逗号隔开。

查阅一些网上资料,大致权限如下:

  • role1:具有读权限;

  • tomcat:具有读和运行权限;

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

  • manager:具有远程管理权限。

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

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

然后针对于manager又有细分的四种rolename:

  • manager-gui:允许访问html接口(即URL路径为/manager/html/*)

  • manager-script:允许访问纯文本接口(即URL路径为/manager/text/*)

  • manager-jmx:允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)

  • manager-status:允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)

a)应对登录的用户分配账户和权限

查看有哪些用户,分别为什么角色

在tomcat目录下/conf/tomcat-user.xml

图片

b)应重命名或删除默认账户,修改默认账户的默认口令

查看tomcat目录下/conf/tomcat-user.xml

是否存在 admin、manager、tomcat、role1、both等默认账户,口令是否为默认口令等

图片

c)应及时删除或停用多余的、过期的账户,避免共享账户的存在

查看tomcat目录下/conf/tomcat-user.xml文件,确认现有账户有哪些,并询问管理人员每个账户的用途事什么,确认是否存在多余账户

d)应授予管理用户所需的最小权限,实现管理用户的权限分离

三权分立原则

按最小授权原则分配,管理用户的权限分离,对于中间件来说应该实现不了

e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

查看tomcat目录下/conf/tomcat-user.xml,确认管理员对各用户的访问控制规则,即设置的对应角色

各用户的角色权限:

1) tomcat角色

role1:具有读权限;

tomcat:具有读和运行权限;

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

manager:具有远程管理权限。

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

2)另外版本

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

补充:

Manager目录为缺省管理目录,若系统上线后不需要通过web页面管理,可删除(移除)此目录,这样相对更为安全。

f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级

这个条款对于服务器、数据库之类的测评对象比较好理解,对于中间件个人是不太理解的,

难道是主体为用户级,客体为web控制台对应功能模块??

因为网络安全等级保护要求中测评对象有包括,也有是判不适用的,因人而异吧。

图片

g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

同理这条国标中测评对象也涉及了中间件,也有判不适用的。

图片

不知道怎么实现,默认是给不符合的。

三、安全审计

这里首先是要了解tomcat的日志

首先看一下tomcat的位置,它的日志并不在/var/log目录下,一般在tomcat安装路径下的logs文件夹

图片

以下为参考内容,原文链接

日志种类说明

名称 说明

1. catalina.date.log    Catalina引擎的日志文件
2. catalina.out    Catalina控制台输出,包括标准输出和错误输出
3. host-manager.date.log    主机管理日志
4. localhost.date.log     Tomcat下内部代码丢出日志
5. locahost_access_log.date.txt     网页访问日志
6. manager.date.log     应用管理日志

首先关于以上日志的配置文件

1.2.3.4.6 均在tomcat根目录/conf/logging.properties下

5在tomcat根目录/conf/server.xml下

1. logging.properties

一般日志文件定义是3行

1)首行决定什么级别以上的信息输出

每类日志的级别分为如下7种:

SEVERE(highest value)> WARNING > INFO > CONFIG > FINE >FINER >FINEST(lowest value)

OFF为禁用输出;ALL为全部输出

2)第二行决定输出日志文件的路径

3)第三行决定日志文件的前缀

图片

catalina.out 由于是输出控制台(console)信息,该信息源于Linux输出的重定向,因此与其它日志不同。

ps:manager和host-manager分别对应tomcat后台页面的Manager App和Host Manager,想要生成这两类日志,需要在tomcat-users.xml里分别配置manager-gui和admin-gui角色的帐号密码,并访问相应页面,否则这两个日志都会是空的。

1-5 类的日志可归纳为运行日志,一般用于排查服务端console、catalina、tomcat、web应用管理遇到的错误。

2. server.xml

访问日志,即访问网页的记录。

规则:

className         开启访问日志必用类

  1. directory            日志存放目录

  2. prefix                 日志名前缀

  3. suffix                  日志文件后缀

  4. pattern                日志记录的格式

图片

除了第一个className不允许修改外,其他字段值可以根据实际需要修改,最重要的就是pattern,我们结合实际日志进行对比:

图片

与之前的pattern进行比对, pattern="%h %l %u %t &quot;%r&quot;%s %b"

%h 为远程主机名 对应 192.168.21.237

%l 为远程登录名,除非IdentityCheck设为‘On’,否则将得到一个“-”

%u 为远程用户名(根据验证信息而来),若不存在得到一个“-”

%t 为时间,用普通日志格式(标准英语格式),对应[29/Jun/2020:17:04:30 +0800]

&quot; 为双引号"的实体编码

%r 为请求头第一行(包括HTTP方法和请求的RUI),对应GET /test/ HTTP/1.1

%s 为HTTP响应状态码,对应200

%b 为发送信息的字节数,不包括HTTP头,如果字节数为0的话,显示为-,对应88

关于这个的字段的详细配置说明,查阅官方英文文档最为准确:

http://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#Access_Log_Valve

图片

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计

对于等保来说,我们要确认tomcat是否开启了相应的日志,及相应的日志记录级别

① 查看tomcat目录/conf/logging.properties

catalina——Catalina引擎的日志文件

localhost——Tomcat下内部代码丢出日志

manager——应用管理日志

host-manager——主机管理日志

java——Catalina控制台输出,包括标准出书和错误输出

图片

确认图中框起字段不为OFF为开启审计

且审计级别不低于"FINE"

② 查看tomcat目录/conf/server.xml,Access网页访问日志

有如下字段,取消注释

图片

确认pattern参数信息,记录了哪些值

b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息

1. 确认系统当前时间

这个的时间是和服务器系统时间相同,我们只需要查看服务器时间是否为北京时间即可(或与NTP时间服务器同步)

2. 查看日志

在tomcat路径下的logs目录下

图片

查看一条日志信息,观察是否满足等保要求

图片

c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等

1. 查看日志文件权限

查看本地日志文件权限,应不高于640,并且观察所属用户、用户组是否合理

图片

2. 询问管理人员是否定期备份该中间件的日志信息

若是实时传输的,个人认为对记录的保护可以直接观察到传输设备上的相关权限,比如传输到日志服务器,仅审计管理员具有记录查看权限等。

总之,这个得询问管理人员如何做的,是否做了定期备份。

3. 查看日志文件的保存周期

根据网络安全法的要求,重要设备的日志留存时间要达到6个月以上

个人认为,这条针对中间件来说最重要的还是网页访问日志,当然最主要的目的还是溯源,万一真的发生安全事件了,要能提供相应的记录性证据,所以对日志留存的时间有了一个要求。

d)应对审计进程进行保护,防止未经授权的中断

审计进程与中间件主进程关联,无法单独中断审计进程,只要配置文件中开启了相应日志即可。

要这么说的话,应该就是查看配置文件的管理权限和服务进程的关闭权限了。

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

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

相关文章

是否应该使用WordPress自动更新的功能

开源程序例如WordPress&#xff0c;使许多人能够轻松创建自己的网站。然而&#xff0c;却存在一个棘手的问题是黑客攻击。开源的性质及其安全透明性让黑客、机器人和脚本小子提供了不断攻击的机会。防止WordPress网站被黑的首要方法是保持WordPress版本、主题和插件的更新。对于…

突发性网络攻击的应对策略

应对突发性网络攻击&#xff0c;推动情报工作转型是重中之重&#xff0c;核心工作在于侦测 (detecting) 与回应 (respond)。负责任和安全的情报政策、程序与工作机制是满足网络安全治理任务的信息基础。正 如美国中情局原局长约翰杜奇提到&#xff0c;“( 网络突然袭击 ) 这种…

【Linux】倒计时|进度条|git|gdb的实现

目录 一、缓冲区 1.缓冲区概念&#xff1a; 2.缓冲区作用&#xff1a; 3.缓冲区刷新策略 4.缓冲区位置 5.总结 二、实现倒计时 三、进度条版本1️⃣ 四、进度条版本2️⃣ 五、使用git命令行 六、Linux调试器-gdb使用 背景 开始使用 一、缓冲区 1.缓冲区概念&…

大模型的latency(延迟)和throughput(吞吐量)有什么区别?

1. 导入 为了快速应用大模型&#xff0c;我们需要采购商业大模型。采购前&#xff0c;对接销售时&#xff0c;我们描述了我们的场景和需求&#xff1a; Q&#xff1a;我们的prompts token数量在1500-2000之间&#xff0c;completion token数量在500左右。这种情况下&#xff…

嵌入式学习——ARM学习(2)——汇编学习

工具&#xff1a;Keil-uVision5 1、汇编 1.1 汇编的组成 指令&#xff1a;汇编语言的核心部分&#xff0c;表示 CPU 可以执行的操作&#xff0c;如数据传输、算术运算、逻辑运算等。 操作数&#xff1a;指令中用于指定操作对象的数据&#xff0c;可以是寄存器、内存地址或立即…

Qt第二课----信号和槽

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

带你速通C语言——静态变量(14)

使用静态变量 (static) 在 C 语言中是管理函数内部状态或跨函数调用保持数据的一种有效方式。理解静态变量如何工作可以帮助你编写更加复杂和可控的程序。 1.静态变量的特性 静态变量有几个关键特性&#xff1a; 持久性&#xff1a;静态变量在函数多次调用之间保持其值。它们…

霍尼韦尔护眼大路灯怎么样?书客、月影、霍尼韦尔实测数据大揭秘

霍尼韦尔大路灯怎么样&#xff1f;目前市面上的大路灯外观几乎都大同小异&#xff0c;但很多品牌在宣传方面做的很牛&#xff0c;消费者在拿到手后的体验却是大打折扣&#xff0c;跟官方宣传的真的是一个天一个地&#xff0c;相差太大。作为一个测评博主&#xff0c;很多人问我…

elasticsearch整合java使用创建索引、指定索引映射、操作添加文档、删除文档、更新文档、批量操作

前言&#xff1a; elasticsearch的整合流程可以参考&#xff1a;Elasticsearch7.15版本后新版本的接入-CSDN博客 索引 1.创建索引 Testpublic void contextLoads() throws IOException {ElasticsearchClient elasticsearchClient elasticSearchConfig.esRestClient();bool…

【Qt】表单布局QFormLayout

表单布局QFormLayout Qt 还提供了 QFormLayout , 属于是 QGridLayout 的特殊情况, 专⻔⽤于实现两列表单的布局. 这种表单布局多⽤于让⽤⼾填写信息的场景. 左侧列为提⽰, 右侧列为输⼊框 例子&#xff1a;使用QFormLayout创建表单 &#xff08;1&#xff09;设置三个label、…

数据分析及应用:如何对试卷得分做min-max归一化处理?

目录 0 问题描述 1 数据准备 2 问题分析 3 小结 0 问题描述 现有试卷信息表examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间): 试卷作答记录表exam_record(uid用户ID, exam_id试卷ID, start_time开始作答时…

强者和弱者的区别体现在面对失败上

面对成功&#xff0c;面对日常&#xff0c;每一个人都是谦谦君子温文尔雅&#xff0c;谈论困难挫折&#xff0c;不屑一顾。 这是他们的真实面目吗&#xff1f; 有的是真的&#xff0c;有的是假的。 强者视失败为磨砺意志的砥石&#xff0c;他们勇于承认不足&#xff0c;积极寻…

物联网架构之CDH集群部署

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

中国各地区-交通运输-电信业务总量(1999-2020年)

电信业务总量是指以货币形式表示的电信企业为社会提供的各类电信服务的总数量&#xff0c;包含了各类电信业务&#xff0c;如固定电话、移动电话、数据通信、互联网接入等。 1999-2020年 中国各地区-交通运输-电信业务总量 指标 年份、地区、交通运输-电信业务总量(亿元)。 …

2024年8月29日(harbor似有仓库管理,Docker-compose容器编排)

一、harbor私有仓库管理 yum -y install epel-release yum -y install python2-pip pip install --upgrade pip pip list pip 8x pip install --upgrade pip pip install --upgrade pip20.3 -i https://mirrors.aliyun.com/pypi/simple pip list pip install docker-compo…

基于my Batis优化图书管理系统(总)

1.准备工作 1.1 数据库表设计 -- 创建数据库 DROP DATABASE IF EXISTS book_manage;CREATE DATABASE book_manage DEFAULT CHARACTER SET utf8mb4; use book_manage;-- 用户表 DROP TABLE IF EXISTS user_info; CREATE TABLE user_info (id INT NOT NULL AUTO_INCREMENT,use…

网站建设完成后, 功能性网站如何做seo

功能性网站的SEO优化关注于提高网站在搜索引擎中的排名&#xff0c;从而吸引更多用户并提升用户体验。以下是功能性网站SEO的详细解析&#xff1a; 关键词研究与布局 目标受众分析&#xff1a;了解目标受众的搜索习惯和需求&#xff0c;确定适合的关键词。使用工具如Google Ke…

反弹shell流量分析与检测

常用的隧道技术&#xff1a; 网络层&#xff1a;ipv6、Icmp、gre IPv6隧道&#xff1a;将ipv6报文放入ipv4作为载体进行传输&#xff0c;工具&#xff1a;socat、6tunnel ICMP隧道&#xff1a;将数据放入ping包中进行传输&#xff0c;工具&#xff1a;icmpsh、PingTunnel G…

日本麻将入门(二):牌效率【基础】

基础牌效率 引入 日麻&#xff0c;又称立直麻将。日麻的水平本质上与你是否会立直有很大关系&#xff08;参见常用役种&#xff1a;立直&#xff1a;优点&#xff09;&#xff0c;但立直最大的缺点就是不能副露&#xff0c;导致我们只能通过自己的摸切来完成听牌形的组成。在…

20. 筛选dataframe

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 筛选条件 基本筛选 要筛选DataFrame&#xff0c;首先需要了解筛选条件。Pandas提供了多种筛选条件&#xff0c;包括等于&#xff08;&#xff09;、不等于&#xff08;&#xff01;&#xff09;、大于&#xff08;…