开源中间件tomcat服务器安全配置基线指导
时间:2014-02-22 02:52来源:www.it.net.cn 作者:IT网
本文规定了信息系统部门所维护管理的Tomcat WEB服务器应当遵循的安全性设置标准,本文档旨在指导系统管理人员进行Tomcat WEB服务器的安全配置。本文适用的tomcat服务器版本为4.x、5.x、6.x版本的Tomcat Web服务器。
第1章 账号管理、认证授权
1.1 账号
1.1.1 共享帐号管理
安全基线项目名称 |
Tomcat共享帐号管理安全基线要求项 |
安全基线编号 |
SBL-Tomcat-02-01-01 |
安全基线项说明 |
应按照用户分配账号。避免不同用户间共享账号。避免用户账号和设备间通信使用的账号共享。 |
检测操作步骤 |
1、参考配置操作
修改tomcat/conf/tomcat-users.xml配置文件,修改或添加帐号。
<user username=”tomcat” password=” Tomcat!234” roles=”admin”>
2、补充操作说明
1、根据不同用户,取不同的名称。
2、Tomcat 4.1.37、5.5.27和6.0.18这三个版本及以后发行的版本默认都不存在admin.xml配置文件。 |
基线符合性判定依据 |
1、判定条件
各账号都可以登录Tomcat Web服务器为正常
2、检测操作
访问http://ip:8080/manager/html管理页面,进行Tomcat服务器管理 |
备注 |
|
1.1.2 无关帐号管理
安全基线项目名称 |
Tomcat无关帐号管理安全基线要求项 |
安全基线编号 |
SBL-Tomcat-02-01-02 |
安全基线项说明 |
应删除或锁定与设备运行、维护等工作无关的账号。 |
检测操作步骤 |
1、参考配置操作
修改tomcat/conf/tomcat-users.xml配置文件,删除与工作无关的帐号。
例如tomcat1与运行、维护等工作无关,删除帐号:
<user username=”tomcat1” password=”tomcat” roles=”admin”> |
基线符合性判定依据 |
1、判定条件
被删除的与工作无关的账号tomcat1不能正常登陆。
2、检测操作
访问http://ip:8080/manager/html管理页面,使用删除帐号进行登陆尝试。 |
备注 |
|
1.2 口令
1.2.1 密码复杂度
安全基线项目名称 |
Tomcat密码复杂度安全基线要求项 |
安全基线编号 |
SBL-Tomcat-02-02-01 |
安全基线项说明 |
对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 |
检测操作步骤 |
1、参考配置操作
在tomcat/conf/tomcat-user.xml配置文件中设置密码
<user username=”tomcat” password=”Tomcat!234” roles=”admin”>
2、补充操作说明
口令要求:长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 |
基线符合性判定依据 |
1、判定条件
检查tomcat/conf/tomcat-user.xml配置文件中的帐号口令是否符合移动通过配置口令复杂度要求。
2、检测操作
(1)人工检查配置文件中帐号口令是否符合;
(2)使用tomcat弱口令扫描工具定期对Tomcat Web服务器进行远程扫描,检查是否存在弱口令帐号。
3、补充说明
对于使用弱口令扫描工具进行检查时应注意扫描的线程数等方面,避免对服务器造成不必要的资源消耗;选择在服务器负荷较低的时间段进行扫描检查。 |
备注 |
|
1.2.2 密码历史
安全基线项目名称 |
Tomcat密码历史安全基线要求项 |
安全基线编号 |
SBL-Tomcat-02-02-02 |
安全基线项说明 |
对于采用静态口令认证技术的设备,应支持按天配置口令生存期功能,帐号口令的生存期不长于90天。 |
检测操作步骤 |
1、参考配置操作
定期对管理Tomcat Web服务器的帐号口令进行修改,间隔不长于90天。 |
基线符合性判定依据 |
1、判定条件
90天后使用原帐号口令进行登陆尝试,登录不成功;
2、检测操作
使用超过90天的帐号口令进行登录尝试; |
备注 |
适用于4.x、5.x、6.x所有版本。 |
1.3 授权
1.3.1 用户权利指派
安全基线项目名称 |
Tomcat用户权利指派安全基线要求项 |
安全基线编号 |
SBL-Tomcat-02-03-01 |
安全基线项说明 |
在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。 |
检测操作步骤 |
1、参考配置操作
编辑tomcat/conf/tomcat-user.xml配置文件,修改用户角色权限
授权tomcat具有远程管理权限:
<user username=”tomcat” password=”chinamobile”
roles=”admin,manager”>
2、补充操作说明
1、Tomcat 4.x和5.x版本用户角色分为:role1,tomcat,admin,manager四种。
role1:具有读权限;
tomcat:具有读和运行权限;
admin:具有读、运行和写权限;
manager:具有远程管理权限。
Tomcat 6.0.18版本只有admin和manager两种用户角色,且admin用户具有manager管理权限。
2、Tomcat 4.1.37和5.5.27版本及以后发行的版本默认除admin用户外其他用户都不具有manager管理权限。 |
基线符合性判定依据 |
1、判定条件
登陆远程管理页面,使用tomcat账号进行登陆,登陆成功。
2、检测操作
登陆http://ip:8080/manager/html页面,使用tomcat账号登陆,进行远程管理。 |
备注 |
|
第2章 日志配置操作
2.1 日志配置
2.1.1 审核登录
安全基线项目名称 |
Tomcat审核登录安全基线要求项 |
安全基线编号 |
SBL-Tomcat-03-01-01 |
安全基线项说明 |
设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的IP地址。 |
检测操作步骤 |
1、参考配置操作
编辑server.xml配置文件,在<HOST>标签中增加记录日志功能
将以下内容的注释标记< ! -- -- >取消
<valve classname=”org.apache.catalina.valves.AccessLogValve”
Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt”
Pattern=”common” resloveHosts=”false”/>
2、补充操作说明
classname: This MUST be set to
org.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60
Directory:日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,也可以修改为其他路径;
Prefix: 这个是日志文件的名称前缀,日志名称为localhost_access_log.2008-10-22.txt,前面的前缀就是这个localhost_access_log
Suffix: 文件后缀名
Pattern: common方式时,将记录访问源IP、本地服务器IP、记录日志服务器IP、访问方式、发送字节数、本地接收端口、访问URL地址等相关信息在日志文件中
resolveHosts:值为true时,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址 |
基线符合性判定依据 |
1、判定条件
查看logs目录中相关日志文件内容,记录完整
2、检测操作
查看localhost_access_log.2008-10-22.log中相关日志记录
3、补充说明 |
备注 |
|
第3章 IP协议安全配置
3.1 IP协议
3.1.1 支持加密协议
安全基线项目名称 |
Tomcat支持加密协议安全基线要求项 |
安全基线编号 |
SBL-Tomcat-04-01-01 |
安全基线项说明 |
对于通过HTTP协议进行远程维护的设备,设备应支持使用HTTPS等加密协议。 |
检测操作步骤 |
1、参考配置操作
(1)使用JDK自带的keytool工具生成一个证书
JAVA_HOME/bin/keytool -genkey –alias tomcat –keyalg RSA
-keystore /path/to/my/keystore
(2)修改tomcat/conf/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)重新启动tomcat服务 |
基线符合性判定依据 |
1、判定条件
使用https方式登陆tomcat服务器页面,登陆成功
2、检测操作
使用https方式登陆tomcat服务器管理页面 |
备注 |
|
第4章 设备其他配置操作
4.1 安全管理
4.1.1 定时登出
安全基线项目名称 |
Tomcat定时登出安全基线要求项 |
安全基线编号 |
SBL-Tomcat-05-01-01 |
安全基线项说明 |
对于具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。 |
检测操作步骤 |
1、参考配置操作
编辑tomcat/conf/server.xml配置文件,修改为30秒
<Connector
port="8080" maxHttpHeaderSize="8192" maxThreads="150"
minSpareThreads="25" maxSpareThreads="75"、
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="300" disableUploadTimeout="true" />
2、补充操作说明
|
基线符合性判定依据 |
1、判定条件
30秒自动登出。
2、检测操作
登陆tomcat默认页面http://ip:8080/manager/html ,使用管理账号登陆
3、补充说明 |
备注 |
|
4.1.2 更改默认端口
安全基线项目名称 |
Tomcat运行端口安全基线要求项 |
安全基线编号 |
SBL-Tomcat-05-01-02 |
安全基线项说明 |
更改tomcat服务器默认端口 |
检测操作步骤 |
1、参考配置操作
(1)修改tomcat/conf/server.xml配置文件,更改默认管理端口到8800
<Connector
port="8800" maxHttpHeaderSize="8192" maxThreads="150"
minSpareThreads="25" maxSpareThreads="75"、
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="300" disableUploadTimeout="true" />
(2)重启tomcat服务
2、补充操作说明
|
基线符合性判定依据 |
1、判定条件
使用8800端口登陆页面成功
2、检测操作
登陆http://ip:8800
3、补充说明 |
备注 |
|
4.1.3 错误页面处理
安全基线项目名称 |
Tomcat错误页面安全基线要求项 |
安全基线编号 |
SBL-Tomcat-05-01-03 |
安全基线项说明 |
Tomcat错误页面重定向 |
检测操作步骤 |
1、参考配置操作(1)查看tomcat/conf/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>
|
基线符合性判定依据 |
1、 判定条件
要求包含如下片段:
|
备注 |
|
4.1.4 目录列表访问限制
安全基线项目名称 |
Tomcat目录列表安全基线要求项 |
安全基线编号 |
SBL-Tomcat-05-01-04 |
安全基线项说明 |
禁止tomcat列表显示文件 |
检测操作步骤 |
1、参考配置操作
(1) 编辑tomcat/conf/web.xml配置文件,
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把true改成false
(2)重新启动tomcat服务 |
基线符合性判定依据 |
1、判定条件
当WEB目录中没有默认首页如index.html,index.jsp等文件时,不会列出目录内容
2、检测操作
直接访问http://ip:8800/webadd |
备注 |
|
(责任编辑:IT) |
------分隔线----------------------------