您好,登錄后才能下訂單哦!
tomcat安全規(guī)范有哪些,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
tomcat是一個開源Web服務(wù)器,基于Tomcat的Web運(yùn)行效率高,可以在一般的硬件平臺上流暢運(yùn)行,因此,頗受Web站長的青睞。不過,在默認(rèn)配置下其存在一定的安全隱患,可被惡意攻擊。以下是一些安全加固的方法:
版本安全
升級到最新穩(wěn)定版,出于穩(wěn)定性考慮,不建議進(jìn)行跨版本升級。
服務(wù)降權(quán)
不要使用root用戶啟動tomcat,使用用普通用戶啟動Tomcat,集群內(nèi)用戶名統(tǒng)一UID
端口保護(hù)
1 更改tomcat管理端口8005 ,此端口有權(quán)限關(guān)閉tomcat服務(wù),但要求端口配置在8000~8999之間,并更改shutdown執(zhí)行的命令
2 若 Tomcat 都是放在內(nèi)網(wǎng)的,則針對 Tomcat 服務(wù)的監(jiān)聽地址都是內(nèi)網(wǎng)地址
3 修改默認(rèn)的ajp 8009端口為不易沖突(大于1024),但要求端口配置在8000~8999之間
禁用管理端
1 刪除默認(rèn)$CATALINA_HOME/conf/tomcat-users.xml文件,重啟tomcat將會自動生成新的文件
2 刪除$CATALINA_HOME/webapps下載默認(rèn)的所有目錄和文件
3 將tomcat應(yīng)用根目錄配置為tomcat安裝目錄以外的目錄
隱藏Tomcat的版本信息
針對該信息的顯示是由一個jar包控制的,該jar包存放在$CATALINA_HOME/lib目錄下,名稱為 catalina.jar,
通過 jar xf 命令解壓這個 jar 包會得到兩個目錄 META-INF 和 org ,
修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段來實(shí)現(xiàn)來更改我們tomcat的版本信息
關(guān)閉war自動部署
默認(rèn) Tomcat 是開啟了對war包的熱部署的。為了防止被植入木馬等惡意程序,因此我們要關(guān)閉自動部署。
修改實(shí)例:
<Host name="localhost" appBase=""
unpackWARs="false" autoDeploy="false">
自定義錯誤頁面
編輯conf/web.xml,在</web-app>標(biāo)簽上添加以下內(nèi)容:
<error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> <error-page> <error-code>500</error-code> <location>/500.html</location> </error-page>
屏蔽目錄文件自動列出
編輯conf/web.xml文件
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <param-value>false</param-value>
這里false為不列出,true為充許列出
多虛擬主機(jī)
強(qiáng)烈建議不要使用 Tomcat 的虛擬主機(jī),推薦每個站點(diǎn)使用一個實(shí)例。即,可以啟動多個 Tomcat,而不是啟動一個 Tomcat 里面包含多個虛擬主機(jī)。
因?yàn)?Tomcat是多線程,共享內(nèi)存,任何一個虛擬主機(jī)中的應(yīng)用崩潰,都會影響到所有應(yīng)用程序。雖然采用多實(shí)例的方式會產(chǎn)生過多的開銷,但至少保障了應(yīng)用程序的隔離和安全。
腳本權(quán)限回收
控制CATALINAHOME/bin目錄下的start.sh、catalina.sh、shutdown.sh的可執(zhí)行權(quán)限
chmod?R744 CATALINA_HOME/bin/*
分離 Tomcat 和項(xiàng)目的用戶
為了防止 Tomcat 被植入 web shell 程序后,可以修改項(xiàng)目文件。因此我們要將 Tomcat 和項(xiàng)目的屬主做分離,這樣子,即便被搞,他也無法創(chuàng)建和編輯項(xiàng)目文件。
server head重寫
在HTTP Connector配置中加入server的配置 server="server_name",默認(rèn)是Apache-Copyote/1.1
通過配置,限定訪問的IP來源
<Host name="localhost" appBase="/data/www/tomcat_webapps" unpackWARs="true" autoDeploy="false">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30,192.168.2.*" deny=""/>
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="www.test.com,*.test.com" deny=""/>
</Host>
訪問日志格式規(guī)范
開啟tomcat默認(rèn)訪問日志中Referer和User-Agent記錄
標(biāo)準(zhǔn)配置:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log"
suffix=".txt" pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i %D"
resolveHosts="false" />
tomcat禁用非法HTTP方法
編輯web.xml文件中配置
org.apache.catalina.servlets.DefaultServlet的 <init-param> <param-name>readonly</param-name> <param-value>true</param-value> </init-param>
其中param-value為true時,即不允許delete和put操作。
tomcat用戶具有遠(yuǎn)程管理權(quán)限
在tomcat-users.xml中,修改tomcat用戶的role值包含manager,如:
<user username="tomcat" password="***"
roles="manager">
tomcat自動登出時間不大于30秒
編輯server.xml,修改自動登出時間為30秒,如下:
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"、 enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="30000" disableUploadTimeout="true" />
tomcat應(yīng)根據(jù)機(jī)器性能和業(yè)務(wù)需求,設(shè)置最小連接數(shù)和最大連接數(shù)
編輯server.xml文件,
樣例如下: <Connector port="8080" minSpareThreads="25" ……/>
minSpareThreads=“25” 表示即使沒有人使用也開這么多空線程等待
根據(jù)實(shí)際情況設(shè)置連接數(shù)
編輯server.xml文件,
樣例如下: <Connector port="8080" maxThreads="150"……/>
maxThreads=“150” 表示最多同時處理150個連接
根據(jù)實(shí)際情況配置連接數(shù)
Tomcat配置訪問日志
修改server.xml,將如下內(nèi)容的注釋標(biāo)記取消:
<Valve className=”org.apache.catalina.valves.AccessLogValve” Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt” Pattern=”common” resloveHosts=”false”/>
配置Tomcat錯誤頁面重定向
編輯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>
關(guān)于tomcat安全規(guī)范有哪些問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。