tomcat安全規(guī)范有哪些

tomcat安全規(guī)范有哪些,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、虛擬空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、西峽網(wǎng)站維護(hù)、網(wǎng)站推廣。

tomcat是一個(gè)開(kāi)源Web服務(wù)器,基于Tomcat的Web運(yùn)行效率高,可以在一般的硬件平臺(tái)上流暢運(yùn)行,因此,頗受Web站長(zhǎng)的青睞。不過(guò),在默認(rèn)配置下其存在一定的安全隱患,可被惡意攻擊。以下是一些安全加固的方法:

版本安全

 升級(jí)到最新穩(wěn)定版,出于穩(wěn)定性考慮,不建議進(jìn)行跨版本升級(jí)。

服務(wù)降權(quán)

不要使用root用戶(hù)啟動(dòng)tomcat,使用用普通用戶(hù)啟動(dòng)Tomcat,集群內(nèi)用戶(hù)名統(tǒng)一UID

端口保護(hù)

1 更改tomcat管理端口8005 ,此端口有權(quán)限關(guān)閉tomcat服務(wù),但要求端口配置在8000~8999之間,并更改shutdown執(zhí)行的命令
2 若 Tomcat 都是放在內(nèi)網(wǎng)的,則針對(duì) Tomcat 服務(wù)的監(jiān)聽(tīng)地址都是內(nèi)網(wǎng)地址
3 修改默認(rèn)的ajp 8009端口為不易沖突(大于1024),但要求端口配置在8000~8999之間

禁用管理端

1 刪除默認(rèn)$CATALINA_HOME/conf/tomcat-users.xml文件,重啟tomcat將會(huì)自動(dòng)生成新的文件
2 刪除$CATALINA_HOME/webapps下載默認(rèn)的所有目錄和文件
3 將tomcat應(yīng)用根目錄配置為tomcat安裝目錄以外的目錄

隱藏Tomcat的版本信息

針對(duì)該信息的顯示是由一個(gè)jar包控制的,該jar包存放在$CATALINA_HOME/lib目錄下,名稱(chēng)為 catalina.jar,
通過(guò) jar xf 命令解壓這個(gè) jar 包會(huì)得到兩個(gè)目錄 META-INF 和 org ,
修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段來(lái)實(shí)現(xiàn)來(lái)更改我們tomcat的版本信息

關(guān)閉war自動(dòng)部署

默認(rèn) Tomcat 是開(kāi)啟了對(duì)war包的熱部署的。為了防止被植入木馬等惡意程序,因此我們要關(guān)閉自動(dòng)部署。

修改實(shí)例:

   <Host name="localhost" appBase=""
           unpackWARs="false" autoDeploy="false">

自定義錯(cuò)誤頁(yè)面

編輯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>

屏蔽目錄文件自動(dòng)列出

編輯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ī),推薦每個(gè)站點(diǎn)使用一個(gè)實(shí)例。即,可以啟動(dòng)多個(gè) Tomcat,而不是啟動(dòng)一個(gè) Tomcat 里面包含多個(gè)虛擬主機(jī)。
因?yàn)?Tomcat是多線(xiàn)程,共享內(nèi)存,任何一個(gè)虛擬主機(jī)中的應(yīng)用崩潰,都會(huì)影響到所有應(yīng)用程序。雖然采用多實(shí)例的方式會(huì)產(chǎn)生過(guò)多的開(kāi)銷(xiāo),但至少保障了應(yīng)用程序的隔離和安全。

腳本權(quán)限回收

控制CATALINAHOME/bin目錄下的start.sh、catalina.sh、shutdown.sh的可執(zhí)行權(quán)限
chmod?R744 CATALINA_HOME/bin/*

分離 Tomcat 和項(xiàng)目的用戶(hù)

為了防止 Tomcat 被植入 web shell 程序后,可以修改項(xiàng)目文件。因此我們要將 Tomcat 和項(xiàng)目的屬主做分離,這樣子,即便被搞,他也無(wú)法創(chuàng)建和編輯項(xiàng)目文件。

server head重寫(xiě)

在HTTP Connector配置中加入server的配置 server="server_name",默認(rèn)是Apache-Copyote/1.1
通過(guò)配置,限定訪(fǎng)問(wèn)的IP來(lái)源

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

訪(fǎng)問(wèn)日志格式規(guī)范
開(kāi)啟tomcat默認(rèn)訪(fǎng)問(wè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 &quot;%r&quot; %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時(shí),即不允許delete和put操作。

tomcat用戶(hù)具有遠(yuǎn)程管理權(quán)限
在tomcat-users.xml中,修改tomcat用戶(hù)的role值包含manager,如:

<user username="tomcat" password="***"
roles="manager">

tomcat自動(dòng)登出時(shí)間不大于30秒
編輯server.xml,修改自動(dòng)登出時(shí)間為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” 表示即使沒(méi)有人使用也開(kāi)這么多空線(xiàn)程等待
根據(jù)實(shí)際情況設(shè)置連接數(shù)

編輯server.xml文件,
樣例如下: <Connector port="8080" maxThreads="150"……/>
maxThreads=“150” 表示最多同時(shí)處理150個(gè)連接
根據(jù)實(shí)際情況配置連接數(shù)

Tomcat配置訪(fǎng)問(wèn)日志
修改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錯(cuò)誤頁(yè)面重定向

編輯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ī)范有哪些問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

當(dāng)前名稱(chēng):tomcat安全規(guī)范有哪些
當(dāng)前地址:http://bm7419.com/article48/isgjep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)