中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

發布時間:2021-10-22 11:58:40 來源:億速云 閱讀:278 作者:柒染 欄目:網絡安全

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

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

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

先大概說下web的一些基礎東西。

一般的web訪問順序如下

web瀏覽器->web服務器(狹義)->web容器->應用服務器->數據庫服務器

所以哪一個環節出了問題,各種攻擊姿勢就來了。

業務上一般的選擇如下:

小項目,個人開發一般用tomcat。

linux系統一般使用jetty或apachehpptd

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

web服務器:

響應頁面,處理http協議

IIS、Apache、nginx、Lighttpd

web容器:

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

操作系統與應用程序之間的交互

應用服務器:

IIS,Tomcat,WebLogic,WebSphere即是應用服務器,又擁有web服務器的功能

中間件:為應用程序提供容器和服務

這次是tomcat的Linux加固。

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

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

大部分加固基于xml配置文件進行修改,也應根據實際需求制定方案。

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

注:皆為參考操作配置。

01
身份鑒別

1. 刪除多余賬號:

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

例如tomcat1與運行、維護等工作無關,刪除帳號,注釋如下行即可:

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

2. 口令復雜度:

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

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

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

要求usr1密碼必須滿足復雜度要求。

3. 不同用戶不同賬號:

應為兩個或兩個以上即為合理

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

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

4. 非root啟動服務:

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

tomcat進程的啟動用戶應不為root

使用普通用戶啟動tomcat服務。

02

訪問控制

最小特權:

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

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>標簽中增加記錄日志功能,將以下內容的注釋標記<! -- -- >取消:

<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、本地服務器IP、記錄日志服務器IP、訪問方式、發送字節數、本地接收端口、訪問URL地址等相關信息在日志文件中。

resolveHosts:值為true時,tomcat會將這個服務器IP地址通過DNS轉換為主機名,如果是false,就直接寫服務器IP地址。

04

入侵防范

1. HTTP加密協議

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需要用戶自行創建。

(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服務

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參數默認是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>一行之前加入以下內容:

<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>之間的配置實現了將404未找到jsp網頁的錯誤導向noFile.htm頁面,也可以用類似方法添加其多的錯誤代碼導向頁面,如403,500等。

第二個<error-page></error-page>之間的配置實現了當jsp網頁出現java.lang.NullPointerException導常時,轉向error.jsp錯誤頁面,還需要在第個jsp網頁中加入以下內容:

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

典型的error.jsp錯誤頁面的程序寫法如下:

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

當出現NullPointerException異常時tomcat會把網頁導入到error.jsp,且會打印出出錯信息。

重新啟動tomcat服務

3. 修改默認端口

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

<Connector

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

minSpareThreads="25"maxSpareThreads="75"、

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

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

重新啟動tomcat服務

4. 禁止目錄列出

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

<init-param>

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

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

</init-param>

把true改成false。

重新啟動tomcat服務

5. 防止惡意關閉服務

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

shutdown的值為復雜的字符串:

<Serverport="8005" shutdown="復雜的字符串">

6. 連接數設置

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

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

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

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

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

7. 修改banner

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

server.info=X

server.build=BuildDate

server.number=X

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广东省| 南昌县| 尼勒克县| 襄城县| 龙州县| 清丰县| 工布江达县| 高邮市| 阿拉尔市| 黑河市| 汕头市| 连山| 沁源县| 百色市| 凤山县| 淮南市| 漯河市| 巴东县| 云南省| 开阳县| 石门县| 上高县| 北安市| 墨脱县| 遂溪县| 资溪县| 墨江| 佛山市| 江西省| 紫云| 平远县| 方山县| 新兴县| 宁河县| 达孜县| 四子王旗| 米易县| 邯郸县| 莒南县| 宜黄县| 资中县|