一、账号口令
- 查是否设置口令长度和复杂度
在tomcat-users.xml中设置密码:密码长度不小于8位,密码包括数字、小写字母、大写字母和特殊符号中至少两类。 - 检查是否禁用超级用户启用tomcat
禁用超级用户启用tomcat,在普通用户的模式下,运行tomcat的启动脚本。 - 检查是否设置在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限
在tomcat-users.xml中,修改tomcat用户的role值包含manager,如:
<user username="tomcat" password="***" roles="manager">
二、认证授权
禁用manager功能:将以下目录$CATALINA_HOME/server/webapps/manager,移除到非$CATALINA_HOME/server/webapps目录
三、日志审计
配置访问日志
修改server.xml,将如下内容的注释标记取消:
<Valve className=”org.apache.catalina.valves.AccessLogValve”
Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt”
Pattern=”common” resloveHosts=”false”/>
四、其它安全
- 自动登出时间不大于30秒(connectionTimeout):
编辑server.xml,修改自动登出时间为30秒,如下:
<Connector
port="8080" maxHttpHeaderSize="8192" maxThreads="150"
minSpareThreads="25" maxSpareThreads="75"、
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="30000" disableUploadTimeout="true" />
- 检查是否禁止Tomcat列表显示文件
编辑web.xml,修改如下:
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把true改成false
- 检查是否禁用非法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操作。
- 配置Tomcat错误页面重定向
编辑web.xml文件,修改如下:
<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>
- 检查是否更改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" />
- 检查是否设置连接数
应根据机器性能和业务需求,设置最大连接数: 项目组根据自身需求决定数值
编辑server.xml文件,样例如下: <Connector port="8080" maxThreads="150"……/>
maxThreads="150" 表示最多同时处理150个连接
根据实际情况配置连接数
应根据机器性能和业务需求,设置最小连接数
编辑server.xml文件,样例如下: <Connector port="8080" minSpareThreads="25" ……/>
minSpareThreads="25" 表示即使没有人使用也开这么多空线程等待
根据实际情况设置连接数
7.应避免恶意shutdown TOMCAT服务
打开tomcat_home/conf/server.xml,查看是否设置了复杂的字符串
<Server port="8005" shutdown="复杂的字符串">
避免恶意shutdown TOMCAT服务