tomcat安全基线

  为了符合tomcat安全基线,需要做一下加固:

1、管理用户的密码加密:《摘要算法加密tomcat登录密码》

  管理用户在conf/tomcat-users.xml中配置,密码一般是明文形式,如果需要加密,可以在conf/server.xml配置加密算法后,在tomcat-users.xml文件中填写密文。步骤如下:

1、server.xml中配置密码加密方式,此处仅做MD5加密,注意:Realm小节在默认配置中是一行,以/结尾,需要拆开。
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase">
        <CredentialHandler algorithm="MD5" className="org.apache.catalina.realm.MessageDigestCredentialHandler"/>
</Realm>
2、用digest.sh脚本生成md5加密的密文,输出为:userpassword:balabalabalabala
digest.sh -a md5 userpassword
3、将生成的密文替换conf/tomcat-users.xml中原来的明文密码

2、配置错误页面:《tomcat配置错误页面》,在web.xml的<web-app>中添加

    <!-- 400错误 -->  
    <error-page>  
        <error-code>400</error-code>  
        <location>/error.html</location>  
    </error-page>  
    <!-- 404 页面不存在错误 -->  
    <error-page>  
        <error-code>404</error-code>  
        <location>/error.html</location>  
    </error-page>  
    <!-- 500 服务器内部错误 -->  
    <error-page>  
        <error-code>500</error-code>  
        <location>/error.html</location>  
    </error-page>  
    <!-- java.lang.Exception异常错误,依据这个标记可定义多个类似错误提示 -->  
    <error-page>  
        <exception-type>java.lang.Exception</exception-type>  
        <location>/error.html</location>  
    </error-page>  
    <!-- java.lang.NullPointerException异常错误,依据这个标记可定义多个类似错误提示 -->  
    <error-page>  
        <exception-type>java.lang.NullPointerException</exception-type>  
        <location>/error.html</location>  
    </error-page>

3、允许远程登录manager控制台:修改manager/META-INF/context.xml,注释掉以下限制:

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

4、修改banner:《tomcat修改banner,隐藏版本信息》,修改conf/server.xml的server属性。需要说明的是,此处修改的只是http头中的banner,tomcat的一些错误页面会附加上原始版本信息。关于tomcat的版本信息完全屏蔽,还是要到lib/catalina.jar中去修改。

打开tomcat的conf/server.xml,在server.xml找到
<Connector port="8080" protocol="HTTP/1.1"  
                    connectionTimeout="20000" 
                    redirectPort="8443"  
                    URIEncoding="UTF-8" 
                    useBodyEncodingForURI="true" />

修改后如下:
<Connector port="8080" protocol="HTTP/1.1"  
                     connectionTimeout="20000" 
                     redirectPort="8443"  
                     URIEncoding="UTF-8" 
                     useBodyEncodingForURI="true" 
                     server="Microsoft-IIS/6.5"/>
posted @ 2019-11-22 23:56  badwood  阅读(1207)  评论(0编辑  收藏  举报
Badwood's Blog