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林
请登录后发表评论
注册