tomcat 操作系统加固配置

目录

  • 安装配置链接
  • 账号
  • 口令
  • 授权
  • 日志
  • HTTP 加密协议
  • 更改默认管理端口
  • 错误页面重定向
  • 目录列出
  • 系统 Banner 信息
  • 连接数设置
  • 禁用非法 HTTP 方法

安装配置tomcat

yum install tomcat-webapps tomcat-admin-webapps
具体点击:安装配置tomcat

账号

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

操作指南
  • 参考配置操作

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

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

<role rolename=“manager”/
<role rolename=“manager-gui”/
<role rolename=“admin”/
<role rolename=“admin-gui”/
<user username=“admin” password=“admin” roles=“admin-gui,admin,manager-gui,manager”/

在这里插入图片描述
用户名是admin,密码是admin登录。

  • 补充操作说明

1、根据不同用户,取不同的名称。
2、Tomcat 从5.5这个版本及以后发行的版本默认都不存在admin.xml配置文件。

检测方法
  • 判定条件
    各账号都可以登录 Tomcat Web 服务器为正常

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

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

操作指南
  • 參考配置操作
    修改tomcat/conf/tomcat-users.xml 配置文件,删除与工作无关的帐号。
    例如comcat1与运行、维护等工作无关,删除comcat1帐号。
检测方法
  • 判定条件
    被删除的与工作无关的账号tomcatl不能正常登陆。

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

禁用超级用户启用tomcat

操作指南
  • 参考配置操作
    在普通用户的模式下,运行tomcat 的启动脚本
检测方法
  • 检测操作
    查看当前系统的tomcat 进程,确认程序启动时使用的身份。

口令

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

操作指南
  • 考配置操作
    在tomcat/conf/tomcat-user.xml配置文件中设置密码

<user usename="tomcat” password=“Manager!@34” roles=“manager”

  • 补充操作说明
    口令要求;长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少3类。
检测方法
  • 判定条件
    检查tomcat/conf/tomcal-user.xml 配置文件中的帐号口令是否符合配置口令复杂度要求。

  • 检测操作
    (1)人工检查配置文件中帐号口令是否符合:
    (2)使用 tomcat 弱口令扫描工具定期对 Tomcat Web 服务器进行远程扫猜,检查是否存在弱口令帐号。

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

授权

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

操作指南
  • 参考配置操作
    编辑 somcat/conf/tomcat-user.xml 配置文件,修改用户角色权限授权 somcat 具有远程管理权限:

<user username=tomcat”password="Manger!@34"roles-"admin,manager”

  • 补充操作说明
    Tomcat 用户角色分为:rolel,tomcat,admin,manager四种,

rolel:具有读权限;
tamcat:兵有读和运行权限;
admin:具有读、运行和写权限;
manager:具有忘程管理权限。

注: Tomcat6.0.18 版本只有 admin 和 manager 两种用户角色,且admin用户具有manager管理权限.

检测方法
  • 判定条件
    登陆远程管理页面,使用tomcat 账号进行登陪,登陆成功。

  • 检测操作
    登陆 http://ip:8080/manager/html 页面,使用 tomcat 账号登陆,进行运程管理。

禁用manager功能

操作指南
  • 参考配置操作

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

检测方法
  • 检测操作
    查看SCATALINA_HOME/scrverwebapps/manager 是否存在

日志

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

操作指南
  • 参考配量操作
    编辑 server.xml 配置文件,在标签中增加记录日志功能
    将以下内容的注释标记<!-- – >取消

<valveclassname=”org.apache.catalina.valves.AccessLog Valve”
Directory=”logs” prefix="localhost_access_log.” Suffix=”.txt”
Pattern=”common”resloveHosts=”false”/>

  • 补充操作说明

classname: This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve.&<60

  1. Directory:日志文件放置的目录,在tomcat 下面有个logs文件夹,那里面是专门放置日志文件的,也可以修改为其他路径;
  2. Prefix:这个是日志文件的名称前缀,日志名称为localhost_access_log.2010-xx-xx.txt,前面的前缀就是这个localhost_access_log
  3. Suffix:文件后缀名
  4. Pattern:common 方式时,将记录访问源IP、本地服务器 IP、记录日服务器 IP、访问方式、发送字节数、本地接收端口、访问 URL 地址等相关信息在日志文件中
  5. resolveHosts:值为true 时,tomcat会将这个服务器IP 地址通过DNS 转换为主机名,如果是 false,就直接写服务器 IP 地址
检测方法
  • 判定条件
    查看 logs 目录中相关日志文件内容,记录完整

  • 检测操作
    查看 localhost_access_log.2010-x-xxtxt 中相关日志记录

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

操作指南
  • 参考配置操作
  • 补充操作说明
    编辑 scrverxml 配置文件,在标签中增加记录日志功能

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

<valveclassname=”org.apache.catalina.valves.AccessLog Valve” Directory="logs”prefix=”localhost_access_log.”Suffix=”.txt”Pattern=”common”resloveHosts=”false”/>

检测方法
  • 补充说明
    检查server.xml配置文件,在标签中,查看以下内容是否被注释标记<!-- -->取消

<valveclassname=”org.apache.catalina.valves.AccessLog Valve”Directory=”logs”prefix=”localhost_access_log.”Suffix=”.txt” Pattern=”common”resloveHosts=”false”/>

HTTP 加密协议 不做

对于通过HTTP 协议进行运程维护的设备,设备应支持使用HTTPS 等加密协议。

操作指南
  • 参考配置操作
    (1)使用JDK 自带的kcy1aol 工具生成一个证书

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”>
Factoryclassname=”org.apache.catalina.SSLServerSocketFactory”
clientAuth="false” keystoreFile=”/path/to/my/keystore”
keystorePass=”runwayl@” protocol=”TLS”> /Connector>

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

(3)重新启动 tomcat 服务

检测方法
  • 判定条件
    使用 https 方式登陆 tomcat 服务器页面,登陆成功
  • 检测操作
    使用 https方式登陆tomcat 服务器管理页面

更改默认管理端口

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

操作指南
  • 參考配置操作
    (1)修改domcavconfkserver.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 服务

检测方祛
  • 判定条件
    使用 xx端口登陆页面成功
  • 检测操作
    登陆 http://ip:xx

错误页面重定向

Tomcat 错误页面重定向

操作指南
  • 参考配置操作
    (1)配置tomca/conf/web.xml文件:
    在最后 -行之前加入以下内容:

在这里插入图片描述
在这里插入图片描述
第一个之间的配置实现了将 404 未找到jsp 网页的错误导向noFile.htm 页面,也可以用类似方法添加其他的错误代码导向页面,如403,500 等.导向页面,如403,500 等.

第二个之间的配置实现了当 jsp 网页出java.langNullPointeException 导常时,转向errorjsp 借误页面,还需要在第个jsp 网页中加入以下内容:

<%@ page errorPage=“error.jsp”%>

典型的 error.jsp 错误页面的程序写法如下:

<%pageconten’Typc=“text/html;chasct=GB2312”%>
<%@pageisErrorPage="true“%>

当出现 NullPointesException 异常时 tomcat 会把网页导入到emor.jsp,且 会打印出出错信息。

(2)重新启动 tomcat 服务

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

检测方法
  • 判建条件
    指向指定错误页面

  • 检测操作
    URL 地址栏中输入http://ip8800/manager12345

目录列出

禁止omeat 列表显示文件

操作指南
  • 參考配置操作

(1) 编辑 tamcatkon/web.xml 配置文件,这里因为格式的问题,导致书写不规范,总是少了一半<>符号

  1. init-pamm
  2. puram-name>listings<param-name
  3. param-value>true<param-value
  4. /init-param>

把true 改成 false
在这里插入图片描述
(2)重新启动tamczt 服务

检测方法
  • 判定条件
    WEB 日录中没有默认首页如 index.html,index.jsp 等文件时,不会列出目录内容

  • 检测操作
    直接访月htp://ip:8800/webadd

系统 Banner 信息

修改系统Banner 信息

操作指南

  • 参考配置

修改catalina.jar 中Servarinfe.properties 中的以下参数(修改以掩饰真实版本信息);

server.build=
server.number=X

检测方法
  • 判定条件
  • 检测操作
    检查catalina.jar 中 Serverinfo.properties 中的参数

连接数设置

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

操作指南
  • 参配置操作
    编辑server.xml 文件,样例如下:

<Cannector port“8080°
maxThreads="15g
minSpareThreads=“25”
maxSpareThreads=“75”
acceptCountw"100° />

  1. maxThreads=“150 表示最多同时处理150 个连接
  2. minSpareTheeadsw"25” 表示即使没有人使用也开这么多空线程等待
  3. maxSpareThreads=“75” 表示如果最多可以空75 个线程
  4. acoeplCount="100℃ 当同时连接的人数达到maxThreads 时,还可以接收排队的连接,超过这个连按的则直接返回拒绝连接
检测方法
  • 检测操作
    此项设置,需根据应用的具体情况,分别配置相应的参数。

禁用非法 HTTP 方法

禁用PUT、DELETE等危险的HTTP 方法:

操作指南
  • 参考配置操作
    编辑 web.xml 文件中配置
    org.apache.catalina.servlets.DefaultServlet 的

1.init-param>
2.paramname>readonly</param-name
3.puram-value>false<fpaam-value
4./init-param>

readonly参数默认是true,即不允许delete和put操作,这里书写也是不规范。

检测方法
  • 检测操作
    检查 web.xml文件中配置
    org.apache.catalina.servlets.DefaultServlet 的

1.init-param>
2.paramname>readonly</param-name
3.puram-value>false<fpaam-value
4./init-param>

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

发布了52 篇原创文章 · 获赞 7 · 访问量 5587

猜你喜欢

转载自blog.csdn.net/xxx0028/article/details/104977825