本文共 7211 字,大约阅读时间需要 24 分钟。
1. 密码复杂性要求:长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类。
2. Tomcat版本用户角色分为:role1,tomcat,admin,manager四种。
l role1:具有读权限;
l tomcat:具有读和运行权限;
l admin:具有读、运行和写权限;
l manager:具有远程管理权限;
l Tomcat 6.0.18版本只有admin和manager两种用户角色,且admin用户具有manager管理权限。
l Tomcat 4.1.37和5.5.27版本及以后发行的版本默认除admin用户外其他用户都不具有manager管理权限。
编号 | 9C-Tomcat-01-01-01 |
名称 | 为不同的管理员分配不同的账号 |
实施目的 | 应按照用户分配账号,避免不同用户间共享账号,密码配置强密码,提高安全性。 |
问题影响 | 账号混淆,权限不明确,存在用户越权使用的可能,密码简单存在暴力破解风险。 |
系统当前状态 | 记录tomcat/conf/tomcat-users.xml文件 |
实施步骤 | 1、检查方法: l 默认通过可以访问tomcat manager; l 默认通过可以访问tomcat admin;
2、参考配置操作 修改tomcat/conf/tomcat-users.xml配置文件,修改或添加帐号。(tomcat7 默认配置如下:) <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="admin"/> <role rolename="manager"/> <role rolename="manager-gui"/> <user username="tomcat" password="复杂的口令" roles="tomcat"/> <user username="both" password="复杂的口令" roles="tomcat,role1"/> <user username="role1" password="复杂的口令" roles="role1"/> <user username="admin" password="复杂的口令" roles="manager-gui"/> <user username="tomcat" password="复杂的口令" roles="manager-script"/> 操作要求:在tomcat_home下建立systembackup目录,备份tomcat-users.xml至该目录。然后将所有password修改为强密码,需符合密码复杂性要求。 2、补充操作说明 1、根据不同用户,取不同的名称。 2、Tomcat 4.1.37、5.5.27和6.0.18这三个版本及以后发行的版本默认都不存在admin.xml配置文件。 |
回滚方案 | 还原tomcat/conf/tomcat-users.xml文件 |
判断依据 | 依据需求分配用户账号,如无要求初始化安装执行 |
实施风险 | 高 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-01-01-02 |
名称 | 删除文档和示例程序 |
实施目的 | 删除系统默认安装的文档目录和示例程序目录,减少系统安全隐患。 |
问题影响 | 允许非法利用系统默认目录 |
系统当前状态 | 打开tomcat_home/webapps,检查是否存在默认文档,如:docs和examples文件夹 |
实施步骤 | 操作要求:在tomcat_home下建立systembackup目录,备份系统默认文档至该目录。删除系统默认管理目录,如:docs、examples、Manager、host-manager、root文件夹 l 删除tomcat_home/webapps下的manager和host-manager目录。 l 删除tomcat_home/webapps下的admin目录和ROOT目录。 l 删除tomcat_home/webapps下的Docs目录和examples目录
|
回退方案 | 从systembackup提取后还原 |
判断依据 | 初始安装执行 |
实施风险 | 高 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-01-01-05 |
名称 | 设置shutdown字符串 |
实施目的 | 防止恶意用户telnet8005端口后,发送shutdown命令停止tomcat服务 |
问题影响 | 被恶意利用,停止服务 |
系统当前状态 | 打开tomcat_home/conf/server.xml,查看是否设置了复杂的字符串 <Server port=”8005” shutdown=”SHUTDOWN”> |
实施步骤 | 1、操作要求:在tomcat_home下建立systembackup目录,备份server.xml至该目录 l 修改shutdown默认字符串,要求同强密码设置要求。 |
回退方案 | 从systembackup目录下还原该文件 |
判断依据 | 业务测试正常 |
实施风险 | 高 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-01-01-06 |
名称 | 设置运行身份 |
实施目的 | linux下以特定用户运行服务,增强安全性 |
问题影响 | 默认root系统管理员权限,被恶意利用后, |
系统当前状态 | 检查tomcat的启动脚本或服务,确认是否以tomcat身份运行。理论上tcp 1024端口之后,均可使用特定用户运行 |
实施步骤 | 1、操作要求: l 创建tomcat组:groupadd tomcat l 创建tomcat用户并加入tomcat组:useradd tomcat –g tomcat l 以tomcat身份启动服务 |
回退方案 | 无 |
判断依据 | 业务测试正常 |
实施风险 | 高 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-02-01-01 |
名称 | 启用日志记录功能 |
实施目的 | 数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP地址。 |
问题影响 | 无法对用户的登陆进行日志记录 |
系统当前状态 | 查看server.xml |
实施步骤 | 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地址 |
回退方案 | 还原server.xml |
判断依据 | 判定条件 登录测试,检查相关信息是否被记录 查看server.xml文件 |
实施风险 | 低 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-03-01-01 |
名称 | HTTPS协议 |
实施目的 | 对于通过HTTP协议进行远程维护的设备,设备应支持使用HTTPS等加密协议。 |
问题影响 | 增加数据库数据传输安全隐患 |
系统当前状态 | 查看tomcat/conf/server.xml |
实施步骤 | (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服务 |
回退方案 | 还原tomcat/conf/server.xml |
判断依据 | 1、 判定条件 查看tomcat/conf/server.xml 2、检测操作 使用https方式登陆tomcat服务器管理页面 |
实施风险 | 高 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-03-01-02 |
名称 | 更改tomcat服务器默认端口 |
实施目的 | 更改tomcat服务器默认端口,增加系统安全性 |
问题影响 | 不安全性增加 |
系统当前状态 | 查看tomcat/conf/server.xml |
实施步骤 | 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服务
|
回退方案 | 还原tomcat/conf/server.xml |
判断依据 | 1、判定条件 查看tomcat/conf/server.xml 2、检测操作 登陆http://ip:8800
|
实施风险 | 高 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-04-01-01 |
名称 | 登录超时 |
实施目的 | 对于具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。 |
问题影响 | 被恶意攻击者盗用 |
系统当前状态 | 查看tomcat/conf/server.xml |
实施步骤 | 参考配置操作 编辑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" />
|
回退方案 | 还原tomcat/conf/server.xml |
判断依据 | 1、判定条件 查看tomcat/conf/server.xml 2、检测操作 登陆tomcat默认页面http://ip:8080/manager/html ,使用管理账号登陆
|
实施风险 | 高 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-04-01-02 |
名称 | Tomcat错误页面重定向 |
实施目的 | 更改Tomcat错误页面重定向页面,增加系统安全性 |
问题影响 | 不安全性增加 |
系统当前状态 | 查看tomcat/conf/web.xml |
实施步骤 | 1、参考配置操作 (1)配置tomcat/conf/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,且会打印出出错信息。
|
回退方案 | 还原tomcat/conf/web.xml |
判断依据 | 1、判定条件 查看tomcat/conf/web.xml 2、检测操作 URL地址栏中输入http://ip:8800/manager~~~ |
实施风险 | 高 |
重要等级 |
|
备注 |
编号 | 9C-Tomcat-04-01-03 |
名称 | 禁止tomcat列表显示文件 |
实施目的 | 禁止tomcat列表显示文件,增加系统安全性 |
问题影响 | 不安全性增加 |
系统当前状态 | 查看tomcat/conf/web.xml |
实施步骤 | 1、参考配置操作 (1) 编辑tomcat/conf/web.xml配置文件, <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> 把true改成false (2)重新启动tomcat服务 |
回退方案 | 还原tomcat/conf/web.xml |
判断依据 | 1、判定条件 查看tomcat/conf/web.xml 2、检测操作 直接访问http://ip:8800/webapp |
实施风险 | 高 |
重要等级 |
|
备注 |