- 安全配置要求
- 帐户口令安全
- 帐户共用
- 帐户口令安全
编号 | Tomcat-01001 |
名称 | 应为不同的用户分配不同的Tomcat帐户,不允许不同用户间共享Tomcat帐户。 |
操作指南 | 1、参考配置操作 修改 $CATALINA_HOME/conf/Tomcat-users.xml配置文件,修改或添加帐号: <role rolename="manager"/> <user username="xxxxxx" password="xxxxxxxxx" roles="manager">。 2、补充操作说明 根据不同用户设置不同的帐户名称。 |
基线标准 | 创建一个低权限用户启动Tomcat |
基线目的 | 保证服务器被攻击后影响最小化 |
安全风险 | 高 |
备注 |
|
-
-
- 帐户锁定
-
编号 | Tomcat-01002 |
名称 | 应删除过期、无用帐户。 |
基线标准 | 删除与工作无关的账户 |
操作指南 | 1、参考配置操作 修改$CATALINA_HOME/conf/Tomcat-users.xml配置文件,删除与工作无关的帐户。 2、补充操作说明 例如Tomcat1与运行、维护等工作无关,应删除Tomcat1 帐户。 |
基线目的 | 保证服务稳定安全的运行 |
安全风险 | 中 |
备注 |
|
-
-
- 口令复杂度
- 应仅允许超级管理员具有远程管理权限
-
编号 | Tomcat-01003 |
名称 | Tomcat管理帐户口令 |
操作指南 | 1、参考配置操作 在$CATALINA_HOME/conf/Tomcat-user.xml配置文件中设置密码 <user username="xxxxx" password="xxxxxxx" roles="manager"> 2、补充操作说明 无。 |
基线标准 | Tomcat管理员用户口令满足8位以上复杂度要求,并每90天 |
基线目的 | 保证服务器安全稳定运行 |
安全风险 | 高 |
备注 |
|
编号 | Tomcat-01004 |
名称 | 应仅允许超级管理员具有远程管理权限。 |
基线标准 | SBL-Tomcat 7-02-02-01 |
操作指南 | 参考配置操作 编辑$CATALINA_HOME/conf/Tomcat-user.xml配置文件,修改用户角色权限授权, 仅允许管理员具有远程管理权限: <role rolename="manager"/> <role rolename="admin"/> <user username="xxxx" password="xxxxxxxxx"roles="admin,manager"> 2、补充操作说明 Tomcat用户角色分为:role1,Tomcat,admin,manager四种。 role1:具有读权限; Tomcat:具有读和运行权限; admin:具有读、运行和写权限; manager:具有远程管理权限。 |
基线目的 | Tomcat用户角色分为:role1,Tomcat,admin,manager四种。 role1:具有读权限; Tomcat:具有读和运行权限; admin:具有读、运行和写权限; manager:具有远程管理权限。 |
安全风险 | 高 |
备注 |
|
-
- 日志审计
编号 | Tomcat-01005 |
名称 | 应为服务配置日志功能,对用户登录事件进行记录,记录内容包括用户登录使用的帐户,登录是否成功,登录时间,以及远程登录时使用的IP地址等信息。 |
操作指南 | 1、参考配置操作 编辑$CATALINA_HOME/conf/server.xml配置文件,在<HOST>标签中增加记录日志功能将以下内容的注释标记<!-- -->删除: <valve classname="org.apache.catalina.valves.AccessLogValve" Directory="logs" prefix="localhost_access_log." Suffix=".txt" Pattern= "%h %l %u %t "%r" %s %b" resolveHosts="false" /> 2、补充操作说明 classname: 必须设置为 “org.apache.catalina.valves.AccessLogValve”; Directory:日志文件放置的目录,默认是安装目录下logs文件夹,也可修改为其他路径; Prefix:日志文件的名称前缀,日志名称为localhost_access_log.20xx-xx-xx.txt,前面的前缀就是这个 localhost_access_log; Suffix: 文件后缀名; Pattern: "%h %l %u %t "%r" %s %b" 等同于“common”,将记录访问源IP、本地服务器IP、记录日志服务器IP、访问方式、发送字节数、本地接收端口、访问URL地址等相关信息在日志文件中; resolveHosts:值为true时,Tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址 |
基线标准 | SBL-Tomcat 7-02-03-01 |
基线目的 | 配置日志,以时间命名,不覆盖 |
安全风险 | 中 |
备注 |
|
-
- 远程访问加密
- 更改默认管理端口
- 自定义错误页面
- 目录浏览
- 连接数设置
- 删除默认目录
编号 | Tomcat-01006 |
名称 | 应对Tomcat的远程访问进行加密。 |
操作指南 | 1、参考配置操作 1) 使用JDK自带的keytool工具生成一个证书: $JAVA_HOME/bin/keytool -genkey –alias Tomcat –keyalg RSA -keystore /path/to/my/keystore 2) 修改 $CATALINA_HOME/conf/server.xml 配置文件,更改为使用https方式,增加如下行: <Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false" maxThreads="25" port="8443" keystoreFile="/path/to/my/keystore " keystorePass="password" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"/> 其中 keystorePass 的值为生成keystore时输入的密码。 3) 重新启动Tomcat服务。 2、补充操作说明 无。 |
基线标准 | SBL-Tomcat 7-02-04-01 |
基线目的 | 使用SSH等加密传输远程访问方式进行远程管理 |
安全风险 | 中 |
备注 |
|
编号 | Tomcat-01007 |
名称 | 应更改Tomcat服务默认管理端口。 |
操作指南 | 1、参考配置操作 1)修改$CATALINA_HOME/conf/server.xml配置文件,更改默认管理端口为xx <Connector port="xx" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="300" disableUploadTimeout="true" /> 2)重启 Tomcat 服务。 2、补充操作说明 无。 |
基线标准 | SBL-Tomcat 7-02-05-01 |
基线目的 | 将管理端口修改为不常见的自定义端口 |
安全风险 | 中 |
备注 |
|
编号 | Tomcat-01008 |
名称 | 应重定向Tomcat的错误页面。 |
基线标准 | 将错误页面修改为非默认错误页面 |
操作指南 | 1、参考配置操作 1) 配置web应用目录下的WEB-INF/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,且会显示错误信息。 2) 重新启动Tomcat服务。 2、补充操作说明
|
基线目的 | 对错误页面进行自定义,避免信息泄露 |
安全风险 | 中 |
备注 |
|
编号 | Tomcat-01009 |
名称 | 应禁止站点目录浏览。 |
操作指南 | 、参考配置操作 1) 编辑$CATALINA_HOME/conf/web.xml配置文件, <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param>把其中true改成false 2) 重新启动Tomcat服务。 2、补充操作说明 无。 |
基线标准 | SBL-Tomcat 7-02-07-01 |
基线目的 | 禁止目录浏览 |
安全风险 | 防止信息泄露 |
备注 |
|
编号 | Tomcat-01010 |
名称 | 应根据服务器性能和业务需求,设置最大连接数。 |
操作指南 | 参考配置操作 编辑$CATALINA_HOME/conf/server.xml文件,样例如下: <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" acceptCount="100"/> maxThreads="150"表示最多同时处理150 个连接minSpareThreads="25"表示即使没有人使用也开这么多空线程等待 maxSpareThreads="75"表示如果最多可以空75个线程 acceptCount="100"当同时连接的人数达到maxThreads时,还可以接收排队的连接,超过这个连接的则直接返回拒绝连接。
|
基线标准 | 根据网站具体情况,设置网站最大连接数 |
基线目的 | 保证网站正常运行 |
安全风险 | 中 |
备注 |
|
编号 | Tomcat-01011 |
名称 | 删除默认的所有目录文件 |
操作指南 | rm -rf /srv/apache-tomcat/webapps/* |
基线标准 | 删除配置文件中默认页面 |
基线目的 | 保证服务器安全正常的运行 |
安全风险 | 中 |
备注 |
|
-
- 隐藏tomcat版本信息
编号 | Tomcat-01012 |
名称 | 隐藏tomcat版本信息 |
基线标准 | 将tomcat版本信息进行隐藏 |
操作指南 | 方法一:修改$CATALINA_HOME/conf/server.xml,在Connector节点添加server字段 方法二:修改$CATALINA_HOME/lib/catalina.jar::org/apache/catalina/util/ServerInfo.properties |
基线目的 | 防止信息泄露,保证服务器安全运行 |
安全风险 | 中 |
备注 |
|
-
- 关闭自动部署
编号 | Tomcat-01013 |
名称 | 关闭war自动部署 |
基线标准 | 关闭war自动部署 |
操作指南 | 在$CATALINA_HOME/conf/server.xml中的host字段,修改unpackWARs="false" autoDeploy="false"。 |
基线目的 | 防止被植入木马等恶意程序 |
安全风险 | 将一个war文件放进$CATALINA_HOME\webapps,启动Tomcat后,war文件不会被部署。 |
备注 |
|