TOMCAT安全配置要求及操作指南

Linux IT敢客 1年前 (2017-09-16) 8953次浏览 已收录 0个评论 扫描二维码

TOMCAT 安全配置要求及操作指南

 

  1. 范围

适用于中国电信使用的 TOMCAT 服务器。本规范提出了 TOMCAT 安全配置要求,可作为编制设备入网测试、安全验收、安全检查规范等文档的参考。

由于版本不同,配置操作有所不同,本规范以 UNIX 平台上 TOMCAT6.x 为例,给出参考配置操作。

  1. 缩略语


HTTP

HyperText Transfer Protocol

超文本传输协议

  1. 安全配置要求
    1. 账号

编号:1

要求内容

应按照用户分配账号。避免不同用户间共享账号。

操作指南

  1. 参考配置操作

修改 tomcat/conf/tomcat-users.xml 配置文件,修改或添加帐号。

<user username="tomcat" password=" Manager!@34" roles="manager">

  1. 补充操作说明

  1. 根据不同用户,取不同的名称。

  2. Tomcat 5.5 这个版本及以后发行的版本默认都不存在 admin.xml

 

配置文件。

检测方法

  1. 判定条件各账号都可以登录 Tomcat Web 服务器为正常

  2. 检测操作

    访问 http://ip:8080/manager/html 管理页面,进行 Tomcat 服务器管理

编号:2

要求内容

应删除或锁定与设备运行、维护等工作无关的账号。

操作指南

1、参考配置操作

修改 tomcat/conf/tomcat-users.xml 配置文件,删除与工作无关的帐号。例如 tomcat1 与运行、维护等工作无关,删除 tomcat1 帐号。

检测方法

  1. 判定条件

被删除的与工作无关的账号 tomcat1 不能正常登陆。

  1. 检测操作

访问 http://ip:8080/manager/html 管理页面,使用删除帐号进行登陆尝试。

编号:3

要求内容

禁用超级用户启用 tomcat

操作指南

1、参考配置操作

在普通用户的模式下,运行 tomcat 的启动脚本

检测方法

1、判定条件 2、检测操作

查看当前系统的 tomcat 进程,确认程序启动时使用的身份。

  1. 口令

要求内容

对于采用静态口令认证技术的设备,口令长度至少 8 位,并包括数字、小写字母、大写字母和特殊符号 4 类中至少 3 类。

操作指南

  1. 参考配置操作


tomcat/conf/tomcat-user.xml 配置文件中设置密码

<user username="tomcat" password="Manager!@34" roles="manager">

  1. 补充操作说明

口令要求:长度至少 8 位,并包括数字、小写字母、大写字母和特殊符号 4 类中至少 3 类。

检测方法

  1. 判定条件

检查 tomcat/conf/tomcat-user.xml 配置文件中的帐号口令是否符合配置口令复杂度要求。

  1. 检测操作

  1. 人工检查配置文件中帐号口令是否符合;

  2. 使用 tomcat 弱口令扫描工具定期对 Tomcat Web 服务器进行远程扫描,检查是否存在弱口令帐号。

    3、补充说明

    使用弱口令扫描工具进行检查时应注意扫描的线程数,避免对服务器造成不必要的资源消耗;选择在服务器负荷较低的时间段进行扫描检查。

  1. 授权

编号1

要求内容

在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

操作指南

  1. 参考配置操作

编辑 tomcat/conf/tomcat-user.xml 配置文件,修改用户角色权限
授权 tomcat 具有远程管理权限:

<user username="tomcat" password="Manager!@34"  roles="admin,manager">

  1. 补充操作说明

Tomcat 用户角色分为:role1tomcatadminmanager 四种。

role1:具有读权限; tomcat:具有读和运行权限; admin:具有读、运行和写权限; manager:具有远程管理权限。注:Tomcat 6.0.18 版本只有 admin manager 两种用户角色,且 admin 用户具有 manager 管理权限。


 

检测方法

  1. 判定条件

登陆远程管理页面,使用 tomcat 账号进行登陆,登陆成功。

  1. 检测操作

登陆 http://ip:8080/manager/html 页面,使用 tomcat 账号登陆,进行远程管理。

编号:2

要求内容

禁用 manager 功能

操作指南

1、参考配置操作

将以下目录$CATALINA_HOME/server/webapps/manager,移除到非 $CATALINA_HOME/server/webapps 目录

检测方法

1、判定条件

 

2、检测操作

查看$CATALINA_HOME/server/webapps/manager 是否存在

  1. 日志

编号:1

要求内容

设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的 IP 地址。

操作指南

  1. 参考配置操作

编辑 server.xml 配置文件,在<HOST>标签中增加记录日志功能

将以下内容的注释标记< ! —    — >取消

<valve classname="org.apache.catalina.valves.AccessLogValve"

Directory="logs" prefix="localhost_access_log." Suffix=".txt"

Pattern="common" resloveHosts="false"/>

  1. 补充操作说明

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.2010-xx-xx.txt , 前 面 的 前 缀 就 是 这 个 localhost_access_log

Suffix: 文件后缀名

Pattern: common 方式时,将记录访问源 IP、本地服务器 IP、记录日志服务器 IP、访问方式、发送字节数、本地接收端口、访问 URL 地址等相关信息在日志文件中

resolveHosts:值为 true 时,tomcat 会将这个服务器 IP 地址通过 DNS

换为主机名,如果是 false,就直接写服务器 IP 地址

检测方法

  1. 判定条件查看 logs 目录中相关日志文件内容,记录完整

  2. 检测操作

    查看 localhost_access_log.2010-xx-xx.txt 中相关日志记录

  3. 补充说明

编号:2

要求内容

启用访问模块审计、错误信息日志功能

操作指南

1、参考配置操作 2、补充操作说明编辑 server.xml 配置文件,在<HOST>标签中增加记录日志功能

 

将以下内容的注释标记< ! —    — >取消

<valve classname="org.apache.catalina.valves.AccessLogValve"

Directory="logs" prefix="localhost_access_log." Suffix=".txt" Pattern="common" resloveHosts="false"/>


 

检测方法

  1. 判定条件

  2. 检测操作 3、补充说明

    检查 server.xml 配置文件,在<HOST>标签中,查看以下内容是否被注释标记< ! —    — >取消

    <valve classname="org.apache.catalina.valves.AccessLogValve"

    Directory="logs" prefix="localhost_access_log." Suffix=".txt" Pattern="common" resloveHosts="false"/>


     

  1. HTTP 加密协议

要求内容

对于通过 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="runway1@" protocol="TLS"/>

/Connector>

其中 keystorePass 的值为生成 keystore 时输入的密码

(3)重新启动 tomcat 服务

检测方法

  1. 判定条件

    使用 https 方式登陆 tomcat 服务器页面,登陆成功

  2. 检测操作使用 https 方式登陆 tomcat 服务器管理页面

  1. 更改默认管理端口

要求内容

使用 HTTP 协议的设备,更改 tomcat 服务器默认端口

操作指南

1、参考配置操作

  1. 修改 tomcat/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" />

  1. 重启 tomcat 服务

2、补充操作说明


 

检测方法

  1. 判定条件使用 xx 端口登陆页面成功

  2. 检测操作

    登陆 http://ip:xx  

  3. 补充说明

  1. 错误页面重定向

要求内容

Tomcat 错误页面重定向

操作指南

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,且会打印出出错信息。

(2)重新启动 tomcat 服务

(3)要求错误页面不能太大

检测方法

  1. 判定条件指向指定错误页面

  2. 检测操作

    URL 地址栏中输入 http://ip:8800/manager12345

  1. 目录列出

要求内容

禁止 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

  1. 系统 Banner 信息

要求内容

修改系统 Banner 信息

操作指南

1、参考配置操作

修改 catalina.jarServerinfo.properties中的以下参数(修改以掩饰真实

 

版本信息):

server.build=<BuildDate>    server.number=X


 

检测方法

  1. 判定条件

  2. 检测操作

检查 catalina.jar Serverinfo.properties 中的参数

  1. 连接数设置

要求内容

根据机器性能和业务需求,设置最大最小连接数。

操作指南

1、参考配置操作编辑 server.xml 文件,样例如下:

<Connector   port="8080"         maxThreads="150"           minSpareThreads="25"           maxSpareThreads="75"         acceptCount="100"  

     />  

maxThreads="150"  表示最多同时处理 150 个连接     minSpareThreads="25"   表示即使没有人使用也开这么多空线程等待

 maxSpareThreads="75"  表示如果最多可以空 75 个线程 acceptCount="100"  当同时连接的人数达到 maxThreads 时,还可以接

收排队的连接,超过这个连接的则直接返回拒绝连接

检测方法

1、判定条件 2、检测操作

此项设置,需根据应用的具体情况,分别配置相应的参数。

3、补充说明

  1. 禁用非法 HTTP 方法

要求内容

禁用PUTDELETE等危险的HTTP 方法;

操作指南

1、参考配置操作

编辑 web.xml 文件中配置

org.apache.catalina.servlets.DefaultServlet <init-param>

 

<param-name>readonly</param-name>

<param-value>false</param-value>

</init-param>  

readonly 参数默认是 true,即不允许 delete put 操作。

2、补充操作说明

检测方法

1、判定条件 2、检测操作检查 web.xml 文件中配置

org.apache.catalina.servlets.DefaultServlet <init-param>

<param-name>readonly</param-name>

<param-value>false</param-value>

</init-param>

其中 param-value false,则符合要求。


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:TOMCAT 安全配置要求及操作指南
喜欢 (155)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址