1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 运维 - 正文

君子好学,自强不息!

Tomcat中间件安全基线配置规范

2022-11-13 | 运维 | admin | 612°c
A+ A-

本篇文章较长,但请大家耐心看完,毕竟是小编费劲心思总结的,而且小编相信这篇肯定对大家是有一点帮助的;好了,不打扰大家了,耐心看吧!

1. 用户账号与口令安全

修改默认账号口令

修改默认口令或禁用默认账号

参考配置操作

编辑tomcat/conf/tomcat-user.xml配置文件,修改用户角色权限

授权tomcat具有远程管理权限:

<userusername=”tomcat”password=”强壮的口令”
roles=”admin,manager”>

补充操作说明

“强壮的口令”要求为口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

Tomcat 4.x和5.x版本用户角色分为:role1,tomcat,admin,manager四种。

  1. role1:具有读权限;
  2. tomcat:具有读和运行权限;
  3. admin:具有读、运行和写权限;
  4. manager:具有远程管理权限。

    Tomcat 6.0.18版本只有admin和manager两种用户角色,且admin用户具有manager管理权限。

    Tomcat 4.1.37和5.5.27版本及以后发行的版本默认除admin用户外其他用户都不具有manager管理权限。

    判定条件

    修改后的账号可以登录Tomcat Web服务器为正常。

    检测操作

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

    2.优化WEB服务账号

    设置shutdown为复杂的字符串,防止恶意用户telnet到8005端口后,发送SHUTDOWN命令停止Tomcat服务。

    参考配置操作

    打开Tomcat_home/conf/server.xml,设置shutdown为复杂的字符串。

    <Server port="8005" shutdown="复杂字符不要包括特殊字符,如:冒号、分号、引号等。

    判定条件

    查看Tomcat_home/conf/server.xml配置文件

    <Server port="8005" shutdown="复杂的字符串">

    3.日志与审计

    增加访问日志审计,记录错误信息和访问信息。

    参考配置操作

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

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

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

    补充操作说明

    classname:ThisMUSTbesetto
    org.apache.catalina.valves.AccessLogValvetousethedefaultaccesslogvalve.&<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地址

    判定条件

    查看logs目录中相关日志文件内容,记录完整

    检测操作

    查看localhost_access_log.2018-10-22.log中相关日志记录

    4.安全防护

    隐藏Tomcat显示版本信息

    参考配置操作

    a.解压catalina.jar

    cd{Tomcat_home}/server/lib【4.x】
    cd{tomcat_home}/lib【5.5以上】
    jarxfcatalina.jarorg/apache/catalina/util/ServerInfo.properties
    

    b.修改server.info行,修改相关的版本信息:server.info=Apache Tomcat

    c.重新压缩catalina.jar

    jarufcatalina.jarorg/apache/catalina/util/ServerInfo.properties
    

    判定条件

    Telent ip :80 端口

    执行get head查看是否包含版本信息

    5.禁止目录遍历

    修改参数文件,禁止目录遍历。

    参考配置操作

    (1) 编辑tomcat/conf/web.xml配置文件,

    <init-param>
    <param-name>listings</param-name>
    <param-value>true</param-value>
    </init-param>
    

    把true改成false

    (2)重新启动tomcat服务

    判定条件

    当WEB目录中没有默认首页如index.html,index.jsp等文件时,不会列出目录内容

    检测操作

    直接访问http://ip:8800/webadd

    6.错误信息自定义

    修改错误文件信息内容,防止信息泄漏

    参考配置操作

    (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>
    

    ***个<error-page></error-page>之间的配置实现了将404未找到jsp网页的错误导向noFile.htm页面,也可以用类似方法添加其多的错误代码导向页面,如403,500等。

    第二个<error-page></error-page>之间的配置实现了当jsp网页出现java.lang.NullPointerException导常时,转向error.jsp错误页面,还需要在第个jsp网页中加入以下内容:

    <%@pageerrorPage="/error.jsp"%>
    

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

    <%@pagecontentType="text/html;charset=GB2312"%>
    <%@pageisErrorPage="true"%>
    <html>
    <head><title>错误页面</title></head>
    <body>出错了:</p>错误信息:<%=exception.getMessage()%><br>
    StackTraceis:<pre><fontcolor="red"><%
    java.io.CharArrayWritercw=newjava.io.CharArrayWriter();
    java.io.PrintWriterpw=newjava.io.PrintWriter(cw,true);
    exception.printStackTrace(pw);
    out.println(cw.toString());
    %></font></pre>
    </body>
    </html>
    

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

    (2)重新启动tomcat服务

    判定条件

    指向指定错误页面

    检测操作

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

    7.更改默认管理端口

    更改tomcat服务器默认端口

    参考配置操作

    (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服务

    补充操作说明

    判定条件

    使用8800端口登陆页面成功

    检测操作

    登陆http://ip:8800

    8.超时自动登出

    对于具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。

    参考配置操作

    编辑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"/>
    

    判定条件

    30秒自动登出。

    检测操作

    登陆tomcat默认页面http://ip:8080/manager/html ,使用管理账号登陆

    9.通讯加密

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

    参考配置操作

    (1)使用JDK自带的keytool工具生成一个证书

    $JAVA_HOME/bin/keytool-genkey–aliastomcat–keyalgRSA
    -keystore/path/to/my/.keystore
    

    (2)修改tomcat/conf/server.xml配置文件,更改为使用https方式,增加如下行:

    <Connectorclassname="org.apache.catalina.http.HttpConnector"
    
    port="8443"minProcessors="5"maxprocessors="100"enableLookups="true"
    
    acceptCount="10"debug="0"scheme="https"secure="true"
    
    clientAuth="false"keystoreFile="/path/to/my/.keystore"
    
    keystorePass="runway"protocol="TLS"/>
    

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

    (3)重新启动tomcat服务

    判定条件

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

    检测操作

    使用https方式登陆tomcat服务器管理页面

本文来源:1818IP

本文地址:https://www.1818ip.com/post/9133.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。