您好,登錄后才能下訂單哦!
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* 即可。
注:皆為參考操作配置。
1. 刪除多余賬號:
修改tomcat配置文件/conf/tomcat-users.xml配置文件,刪除與工作無關(guān)的帳號。
例如tomcat1與運(yùn)行、維護(hù)等工作無關(guān),刪除帳號,注釋如下行即可:
<userusername=”tomcat1” password=”tomcat” roles=”admin”>.
口令要求:長度至少8位,并包括數(shù)字、小寫字母、大寫字母和特殊符號4類中至少3類。
修改tomcat配置文件/conf/tomcat-users.xml配置文件
<userusername=”usr1” password=”12345qwe” roles=”admin”>
要求usr1密碼必須滿足復(fù)雜度要求。
應(yīng)為兩個或兩個以上即為合理
修改tomcat配置文件/conf/tomcat-users.xml配置文件,修改或添加帳號:
<userusername=”tomcat” password=” Tomcat!234” roles=”admin”>
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)知識。
免責(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)容。