溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux安全加固的中間件Tomcat怎么用

發(fā)布時間:2021-10-22 11:58:40 來源:億速云 閱讀:276 作者:柒染 欄目:網(wǎng)絡(luò)安全

Linux安全加固的中間件Tomcat怎么用,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

之前整理了關(guān)于主機(jī)系統(tǒng)的加固(Linux安全加固、Windows安全加固)。(其實我還是喜歡日靶機(jī)……)

接下來想整理下和探索下中間件或者web容器的加固,以及主流數(shù)據(jù)庫的加固。

先大概說下web的一些基礎(chǔ)東西。

一般的web訪問順序如下

web瀏覽器->web服務(wù)器(狹義)->web容器->應(yīng)用服務(wù)器->數(shù)據(jù)庫服務(wù)器

所以哪一個環(huán)節(jié)出了問題,各種攻擊姿勢就來了。

業(yè)務(wù)上一般的選擇如下:

小項目,個人開發(fā)一般用tomcat。

linux系統(tǒng)一般使用jetty或apachehpptd

大型的項目會用jboss或webloigc,商業(yè)項目一般采用weblgoic,webshere,其他的還有jboss、glasshfish等

web服務(wù)器:

響應(yīng)頁面,處理http協(xié)議

IIS、Apache、nginx、Lighttpd

web容器:

tomcat(擁有JSP容器,servlet容器),IIS(擁有ASP容器)

操作系統(tǒng)與應(yīng)用程序之間的交互

應(yīng)用服務(wù)器:

IIS,Tomcat,WebLogic,WebSphere即是應(yīng)用服務(wù)器,又擁有web服務(wù)器的功能

中間件:為應(yīng)用程序提供容器和服務(wù)

這次是tomcat的Linux加固。

tomcat是apache的一個中間件軟件,其可以提供jsp或者php的解析服務(wù)

加固依然分為身份鑒別、訪問控制、安全審計、資源控制和入侵防范5個方面。

大部分加固基于xml配置文件進(jìn)行修改,也應(yīng)根據(jù)實際需求制定方案。

尋找配置文件目錄,Linux可以用find /-name *tomcat* 即可。

注:皆為參考操作配置。

01
身份鑒別

1. 刪除多余賬號:

修改tomcat配置文件/conf/tomcat-users.xml配置文件,刪除與工作無關(guān)的帳號。

例如tomcat1與運(yùn)行、維護(hù)等工作無關(guān),刪除帳號,注釋如下行即可:

<userusername=”tomcat1” password=”tomcat” roles=”admin”>.

2. 口令復(fù)雜度:

口令要求:長度至少8位,并包括數(shù)字、小寫字母、大寫字母和特殊符號4類中至少3類。

修改tomcat配置文件/conf/tomcat-users.xml配置文件

<userusername=”usr1” password=”12345qwe” roles=”admin”>

要求usr1密碼必須滿足復(fù)雜度要求。

3. 不同用戶不同賬號:

應(yīng)為兩個或兩個以上即為合理

修改tomcat配置文件/conf/tomcat-users.xml配置文件,修改或添加帳號:

<userusername=”tomcat” password=” Tomcat!234” roles=”admin”>

4. 非root啟動服務(wù):

ps -ef | greptomcat|grep -v "grep"

tomcat進(jìn)程的啟動用戶應(yīng)不為root

使用普通用戶啟動tomcat服務(wù)。

02

訪問控制

最小特權(quán):

編輯tomcat配置文件/conf/tomcat-user.xml配置文件,在配置文件<tomcat-users>節(jié)點下,修改用戶角色權(quán)限,授權(quán)tomcat具有遠(yuǎn)程管理權(quán)限:

1. tomcat6

<rolerolename="admin"/>

<rolerolename="manager"/>

<userusername="tomcat" password="Qwe12345"roles="admin,manager"/>

2. tomcat7

<rolerolename="admin-gui"/>

<rolerolename="manager-gui"/>

<userusername="admin" password="Qwe12345"roles="admin-gui,manager-gui"/>

03

安全審計

編輯tomcat配置文件server.xml配置文件,在<HOST>標(biāo)簽中增加記錄日志功能,將以下內(nèi)容的注釋標(biāo)記<! -- -- >取消:

<valveclassname=”org.apache.catalina.valves.AccessLogValve”

Directory=”logs”prefix=”localhost_access_log.” Suffix=”.txt”

Pattern=”common”resloveHosts=”false”/>

classname: This MUSTbe set to org.apache.catalina.valves.AccessLogValve to use thedefault access log valve

Directory:日志文件放置的目錄,在tomcat下面有個logs文件夾,那里面是專門放置日志文件的,也可以修改為其他路徑;

Prefix:這個是日志文件的名稱前綴,日志名稱為localhost_access_log.2008-10-22.txt,前面的前綴就是這個localhost_access_log。

Suffix: 文件后綴名。

Pattern:common方式時,將記錄訪問源IP、本地服務(wù)器IP、記錄日志服務(wù)器IP、訪問方式、發(fā)送字節(jié)數(shù)、本地接收端口、訪問URL地址等相關(guān)信息在日志文件中。

resolveHosts:值為true時,tomcat會將這個服務(wù)器IP地址通過DNS轉(zhuǎn)換為主機(jī)名,如果是false,就直接寫服務(wù)器IP地址。

04

入侵防范

1. HTTP加密協(xié)議

cat/usr/apache-tomcat-5.5.23//conf/server.xml|sed '//d'|sed '/^$/d'|sed'//d'|sed '/^\s*$/d'|grep "keystoreFile"

(1)使用JDK自帶的keytool工具生成一個證書:

$JAVA_HOME/bin/keytool -genkey –alias tomcat –keyalg RSA -keystore/path/to/my/keystore

其中目錄:/path/to/my需要用戶自行創(chuàng)建。

(2)修改tomcat安裝目錄下/conf/server.xml配置文件,更改為使用HTTPS方式,增加如下行:

<Connectorclassname="org.apache.catalina.http.HttpConnector"

port="8443" protocol="HTTP/1.1" minProcessors="5"

SSLEnabled="true"

maxprocessors="100"

enableLookups="true" acceptCount="10" debug="0"

scheme="https"

Factory_classname="org.apache.catalina.SSLServerSocketFactory"

secure="true"

clientAuth="false"

keystoreFile="/path/to/my/keystore"

keystorePass="123qwe"

sslProtocol="TLS"/>

其中keystorePass的值為生成keystore時輸入的密碼。

(3)重新啟動tomcat服務(wù)

2. 禁用非法HTTP請求方法

編輯web.xml文件

查看org.apache.catalina.servlets.DefaultServlet是否存在如下配置:

<init-param>

<param-name>readonly</param-name>

<param-value>false</param-value>

</init-param>

將false修改為true。readonly參數(shù)默認(rèn)是true,即不允許delete和put操作。

05

資源控制

1. 超時登出

單位是毫秒

/conf/server.xml配置文件,將connectionTimeout修改為30秒:

<Connectorport="8080" maxHttpHeaderSize="8192" maxThreads="150"minSpareThreads="25"maxSpareThreads="75"、enableLookups="false"redirectPort="8443" acceptCount="100"connectionTimeout="30000" disableUploadTimeout="true"/>

2. 錯誤頁面重定向

(1) 編輯tomcat配置文件/conf/web.xml文件:

在最后</web-app>一行之前加入以下內(nèi)容:

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

第一個<error-page></error-page>之間的配置實現(xiàn)了將404未找到j(luò)sp網(wǎng)頁的錯誤導(dǎo)向noFile.htm頁面,也可以用類似方法添加其多的錯誤代碼導(dǎo)向頁面,如403,500等。

第二個<error-page></error-page>之間的配置實現(xiàn)了當(dāng)jsp網(wǎng)頁出現(xiàn)java.lang.NullPointerException導(dǎo)常時,轉(zhuǎn)向error.jsp錯誤頁面,還需要在第個jsp網(wǎng)頁中加入以下內(nèi)容:

<%@ pageerrorPage="/error.jsp" %>

典型的error.jsp錯誤頁面的程序?qū)懛ㄈ缦?

<%@ pagecontentType="text/html;charset=GB2312"%>

<%@ pageisErrorPage="true"%>

<html>

<head><title>錯誤頁面</title></head>

<body>出錯了:</p>錯誤信息:<%= exception.getMessage() %><br>

Stack Trace is :<pre><font color="red"><%

java.io.CharArrayWritercw = new java.io.CharArrayWriter();

java.io.PrintWriterpw = new java.io.PrintWriter(cw,true);

exception.printStackTrace(pw);

out.println(cw.toString());

%></font></pre>

</body>

</html>

當(dāng)出現(xiàn)NullPointerException異常時tomcat會把網(wǎng)頁導(dǎo)入到error.jsp,且會打印出出錯信息。

重新啟動tomcat服務(wù)

3. 修改默認(rèn)端口

修改tomcat配置文件server.xml配置文件,更改默認(rèn)管理端口到非8080:

<Connector

port="8080" maxHttpHeaderSize="8192" maxThreads="150"

minSpareThreads="25"maxSpareThreads="75"、

enableLookups="false"redirectPort="8443" acceptCount="100"

connectionTimeout="300"disableUploadTimeout="true" />

重新啟動tomcat服務(wù)

4. 禁止目錄列出

編輯tomcat配置文件web.xml配置文件:

<init-param>

<param-name>listings</param-name>

<param-value>true</param-value>

</init-param>

把true改成false。

重新啟動tomcat服務(wù)

5. 防止惡意關(guān)閉服務(wù)

編輯tomcat配置文件conf/server.xml配置文件,

shutdown的值為復(fù)雜的字符串:

<Serverport="8005" shutdown="復(fù)雜的字符串">

6. 連接數(shù)設(shè)置

編輯tomcat配置文件server.xml文件:

maxThreads="150" 表示最多同時處理150個連接。

minSpareThreads="25" 表示即使沒有人使用也開這么多空線程等待。

maxSpareThreads="75" 表示如果最多可以空75個線程。

acceptCount="100" 當(dāng)同時連接的人數(shù)達(dá)到maxThreads時,還可以接收排隊的連接,超過這個連接的則直接返回拒絕連接。

7. 修改banner

修改/lib/catalina.jar中Serverinfo.properties問津中的以下參數(shù)(修改以掩飾真實版本信息):

server.info=X

server.build=BuildDate

server.number=X

關(guān)于Linux安全加固的中間件Tomcat怎么用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI