1.如果不需要控制臺管理,請更改控制臺用戶文件,注銷賬號信息,如果需要控制臺,請更改賬戶信息。
修改tomcat/conf/tomcat-user.xml文件
注釋或修改如下信息
在<tomcat-users> </tomcat-users>中間的是用戶賬號信息,manager-gui登錄認證需要在這中間加入
<role rolename="manager-gui">
<user username="admin" password="www.123.com" roles="manager-gui"/>
2.開啟日志功能,增加審計環節
修改conf/server.xml文件
去掉如下行的注釋符
<Valve className=“org.apache.catalina.valves.AccessLogValve” directory=“logs” prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
3.避免泄露敏感信息
在網站根目錄下新建noFile.html文件
查看并啟用tomcat/conf/web.xml文件中下列代碼:
<error-page>
<error-code>404</error-code>
<location>/noFile.html</location>
</error-page>
4.防止瀏覽器查看目錄內容
編輯tomcat/conf/web.xml配置文件
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把true改成false
5.禁用不安全的http請求方式
編輯tomcat/conf/web.xml配置,添加或修改如下信息
<security-constraint>
<web-resource-collection>
<url-pattern></url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
6.訪問來源白名單
編輯tomcat/conf/server.xml,添加如下
<value className=“org.apache.catalina.values.RemoteAddrValue” allow=”IP地址" deny="" />
7.緩解dos攻擊帶來的過度資源占用――根據情況修改connectionTimeout,acceptCount,maxThreads
編輯tomcat/conf/server.xml文件
<Connector?port="8080"?protocol="HTTP/1.1"?connectionTimeout=”300"?redirectPort=“8443”?acceptCount=“500”?maxThreads=“400”?/>
maxThreads 是處理請求的線程數,acceptCount 是等待隊列,acceptCount并不是一定要大于等于maxThreads。maxThreads 滿了,進入acceptCount ,acceptCount 也滿了,則 拒絕請求
5.5版本以下為
<Connector className=“org.apache.coyote.tomcat4.CoyoteConnector” port=“8080” minProcessors=“5” maxProcessors=“75” enableLookups=“true” redirectPort=“8443” acceptCount=“100” debug=“0” connectionTimeout=“300 ” useURIValidationHack=“false” protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
8.降低被掃描的幾率――修改port=”8080”和redirectPort=“8443”
編輯tomcat/conf/server.xml文件
<Connector?port="8080"?protocol="HTTP/1.1"?connectionTimeout=”300"?redirectPort=“8443”acceptCount=“500”?maxThreads=“400”?/>
5.5版本以下為
<Connector className=“org.apache.coyote.tomcat4.CoyoteConnector” port=“8080” minProcessors=“5” maxProcessors=“75” enableLookups=“true” redirectPort=“8443” acceptCount=“100” debug=“0” connectionTimeout=“300 ” useURIValidationHack=“false” protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
9.防止傳輸信息被截獲解讀
使用jdk的keytools生成密鑰對
執行命令keytool -genkey -alias tomcat -keyalg RSA -keystore /mydir/keystore
修改tomcat的web.xml文件取消注釋信息后添加秘鑰路徑和訪問密碼
<Connector port=“8443” protocol=“org.apache.coyote.http11.Http11Protocol” maxThreads=“150” SSLEnabled=“true” scheme=“https” secure=“true” clientAuth="false" keystor
回答所涉及的環境:聯想天逸510S、Windows 10。
tomcat在默認配置下其存在一定的安全隱患,可被惡意攻擊。以下是一些安全加固的方法:
1. 升級到最新穩定版。
出于穩定性考慮,不建議進行跨版本升級,如果之前是6.0系列版本,最好還是使用該系列的最新版本。
eg:Tomcat6.x:該版本已經于2016年12月31日停止支持,最新穩定版本為6.0.53。
2. 從監聽端口上加固
1) 如果Tomcat不需要對外提供服務,則監聽在本地回環,前面放Nginx。如果需要對外提供訪問,比如一個Nginx掛多個Tomcat,那么在服務器上用iptables只允許負載均衡器的IP來訪問
2) 現在我們一般不用Apache通過AJP協議來調用Tomcat了,所以AJP端口可以關閉。
``
``
3) 在新版的Tomcat中,SHUTDOWN端口默認就是監聽在127.0.0.1的,所以不需要修改。如果還想加固,那可以把SHUTDOWN換成其它的字符串。
3.自定義錯誤頁面,隱藏Tomcat信息
編輯conf/web.xml,在標簽上添加以下內容:
4.禁用Tomcat管理頁面
1) 刪除webapps目錄下Tomcat原有的所有內容
2) 刪除conf/Catalina/localhost/下的host-manager.xml和manager.xml這兩個文件
5.用普通用戶啟動Tomcat
6.禁止Tomcat列目錄
這在新版本中默認就是禁用的,可以在conf/web.xml中編輯
回答所涉及的環境:聯想天逸510S、Windows 10。