Web加固linux,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與運行、維護等工作無關,刪除帳號,注釋如下行即可:
.
2. 口令復雜度:
口令要求:長度至少8位,并包括數字、小寫字母、大寫字母和特殊符號4類中至少3類。
修改tomcat配置文件/conf/tomcat-users.xml配置文件
要求usr1密碼必須滿足復雜度要求。
3. 不同用戶不同賬號:
應為兩個或兩個以上即為合理
修改tomcat配置文件/conf/tomcat-users.xml配置文件,修改或添加帳號:
4. 非root啟動服務:
ps -ef | greptomcat|grep -v "grep"
tomcat進程的啟動用戶應不為root
使用普通用戶啟動tomcat服務。
02
訪問控制
最小特權:
編輯tomcat配置文件/conf/tomcat-user.xml配置文件,在配置文件節點下,修改用戶角色權限,授權tomcat具有遠程管理權限:
1. tomcat6
2. tomcat7
03
安全審計
編輯tomcat配置文件server.xml配置文件,在標簽中增加記錄日志功能,將以下內容的注釋標記取消:
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方式,增加如下行:
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是否存在如下配置:
readonly
false
將false修改為true。readonly參數默認是true,即不允許delete和put操作。
05
資源控制
1. 超時登出
單位是毫秒
/conf/server.xml配置文件,將connectionTimeout修改為30秒:
2. 錯誤頁面重定向
(1) 編輯tomcat配置文件/conf/web.xml文件:
在最后一行之前加入以下內容:
404
/noFile.htm
java.lang.NullPointerException
/error.jsp
第一個之間的配置實現了將404未找到jsp網頁的錯誤導向noFile.htm頁面,也可以用類似方法添加其多的錯誤代碼導向頁面,如403,500等。
第二個之間的配置實現了當jsp網頁出現java.lang.NullPointerException導常時,轉向error.jsp錯誤頁面,還需要在第個jsp網頁中加入以下內容:
典型的error.jsp錯誤頁面的程序寫法如下:
錯誤頁面錯誤信息:Stack Trace is :
java.io.CharArrayWritercw = new java.io.CharArrayWriter();
java.io.PrintWriterpw = new java.io.PrintWriter(cw,true);
exception.printStackTrace(pw);
out.println(cw.toString());
%>
當出現NullPointerException異常時tomcat會把網頁導入到error.jsp,且會打印出出錯信息。
重新啟動tomcat服務
3. 修改默認端口
修改tomcat配置文件server.xml配置文件,更改默認管理端口到非8080:
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配置文件:
listings
true
把true改成false。
重新啟動tomcat服務
5. 防止惡意關閉服務
編輯tomcat配置文件conf/server.xml配置文件,
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服務器通用安全加固指南 :學習對Linux服務器進行安全加固。點擊http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015070311360700001文開始操作!
總結
以上是生活随笔為你收集整理的Web加固linux,Linux安全加固之中间件Tomcat的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中职组“网络空间安全赛项”linux安全
- 下一篇: Linux安全加固的常用方法