Tomcat中间件基线核查 – 作者:fu福lin林

1、身份鉴别

1.1应启用身份鉴别、 用户身份标识唯一性检查、用户身份鉴别信息复杂度检查以及登录失败处理功能,并根据安全策略配置相关参数

检查是否按照用户分配账号,避免账号共享,至少存在两个账号:

修改tomcat-users.xml配置文件,添加帐号: <user username=”***” password=”***” roles=”***”>

1.2应提供用户身份标识唯一和鉴别信息复杂度检查功能,保证应用系统中不存在重复用户身份标识,身份鉴别信息不易被冒用

密码长度不小于8位且包括数字、小写字母、大写字母和特殊符号中至少两类:

在tomcat-users.xml中按要求设置密码

2、访问控制

2.1应提供访问控制功能,依据安全策略控制用户对文件、数据库表等客体的访问

2.1.1检查是否禁用非法HTTP方法

禁用非法HTTP方法:

编辑web.xml文件中配置 org.apache.catalina.servlets.DefaultServlet的 <init-param> <param-name>readonly</param-name>

<param-value>true</param-value> </init-param>

其中param-value为true时,即不允许delete和put操作。

2.1.2检查是否修改tomcat manager文件夹名称

修改manager文件夹名称:

将以下目录$CATALINA_HOME/server/webapps/manager,移除到非$CATALINA_HOME/server/webapps目录

2.1.3检查是否更改tomcat服务器默认端口

应更改tomcat服务器默认端口:

修改配置文件server.xml,更改默认管理端口8080到8800 < Connector port=”8800″ maxHttpHeaderSize=”8192″ maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″ enableLookups=”false” redirectPort=”8443″ acceptCount=”100″ connectionTimeout=”300″ disableUploadTimeout=”true” />

2.1.4检查是否禁止tomcat列表显示文件

禁止Tomcat列表显示文件:

编辑配置文件web.xml,修改如下: <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> 把true改成false

2.2应由授权主体配置访问控制策略,并严格限制默认帐户的访问权限

2.2.1检查是否禁用超级用户启用tomcat

应禁止超级用户启用tomcat:

在超级用户模式下启用tomcat,如果可以启用,建议禁用超级用户,改为普通用户进行启用。

2.2.2检查是否设置防止恶意关闭tomcat服务

应避免恶意shutdown TOMCAT服务:

打开tomcat_home/conf/server.xml,查看是否设置了复杂的字符串 <Server port=”8005″ shutdown=”复杂的字符串”> 避免恶意shutdown TOMCAT服务

2.3应授予不同帐户为完成各自承担任务所需的最小权限,并在它们之间形成相互制约的关系

检查是否设置在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限

修改用户角色权限,授权tomcat具有远程管理权限:

在tomcat-users.xml中,修改tomcat用户的role值包含manager,如: <user username=”tomcat” password=”***” roles=”manager”>

2.4应对通信过程中的整个报文或会话过程进行加密

检查是否配置设备支持使用HTTPS加密协议

设备应支持使用HTTPS加密协议:

修改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、安全审计

3.1应提供覆盖到每个用户的安全审计功能,对应用系统重要安全事件进行审计

检查是否配置日志功能,对用户登录进行记录:

编辑server.xml配置文件,在<HOST>标签中增加记录日志功能,将以下内容的注释标记< ! — — >取消: <Valve className=”org.apache.catalina.valves.AccessLogValve” Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt” Pattern=”common” resloveHosts=”false”/>

4、软件容错

4.1在故障发生时,应用系统应能够继续提供一部分功能,确保能够实施必要的措施

检查是否配置tomcat错误页面重定向

配置Tomcat错误页面重定向:

编辑配置文件web.xml,

修改如下: <error-page> <error-code>404</error-code> <location>/错误页面</location> </error-page> …………… <error-page> <exception-type>java.lang.NullPointerException</exception-type> <location>/错误页面</location> </error-page>

5、资源控制

5.1当应用系统的通信双方中的一方在一段时间内未作任何响应,另一方应能够自动结束会话

检查是否设置连接超时时间

自动登出时间不大于30秒:

编辑server.xml,修改自动登出时间为30秒,如下: <Connector port=”8080″ maxHttpHeaderSize=”8192″ maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″、 enableLookups=”false” redirectPort=”8443″ acceptCount=”100″ connectionTimeout=”30000″ disableUploadTimeout=”true” />

5.2应能够对应用系统的最大并发会话连接数进行限制

5.2.1检查是否设置连接数

应根据机器性能和业务需求,设置最小连接数:

编辑server.xml文件,样例如下: <Connector   port=”8080″  minSpareThreads=”25″ ……/> minSpareThreads=”25″ 表示即使没有人使用也开这么多空线程等待 根据实际情况设置连接数

应根据机器性能和业务需求,设置最大连接数:

编辑server.xml文件,样例如下: <Connector   port=”8080″ maxThreads=”150″……/> maxThreads=”150″ 表示最多同时处理150个连接 根据实际情况配置连接数

注:检查项其实都差不多,最主要的区别是windows和linux的路径和打开路径不同,要操作的对象是tomcat中间件的配置文档,只不过一个要windows下打开,一个在linux下打开而已

来源:freebuf.com 2020-09-17 11:57:48 by: fu福lin林

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论