為了符合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"/>