tomcat 安全配置

Tomcat 安全管理配置規範

管理端口保護8005

tcp6   0   0 127.0.0.1:8005    :::*     LISTEN    35830/java

[root@apache01 webapps]# telnet 127.0.0.1 8005
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SHUTDOWN
能過telnet命令連接到8005端口,可以執行SHUTDOWN命令關閉tomcat

優化方案:
修改默認的8005端口,修改shutdown指定字符串
<Server port="8005" shutdown="SHUTDOWN">
將端口修改成隨機端口,將關閉命令修改成任意字符

ajp連接端口8009

修改默認的8009端口,通過Iptables控制ajp端口訪問

  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

保護此端口的目的在於防止線下的測試流量被mod_jk轉發至線上tomcat服務器

禁用管理端

刪除tomcat/目錄的一些host-manager docs  examples  或者將tomcat的目錄設定爲
tomcat以外的目錄
對於前端web模塊,tomcat管理端屬於tomcat高危安全隱患,一旦被攻破,×××通過上
傳web shell的方式將會直接取得服務器的控制

修改默認的發佈目錄站點位置
<Context path="/" docBase="/data/webapps/www"  debug="0" reloadable="true" crossContext="true"/>

降權啓動

以非root用戶啓動tomcat

文件列表訪問控制

conf/web.xml文件中default部分listings的配置必須爲false;
false爲不列出目錄文件,true爲允許,默認false
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>

版本信息隱藏

1.修改conf/web.xml,重定向403,404以及500等錯誤到指定的錯誤頁面,
2. 也可以修改應用程序目錄下的WEB-INF/web.xml下的配置進行錯誤頁面的重定向

<error-page>
<error-code>403</error-code>
<location>/forbidden.jsp</location>
<error-code>404</error-code>
<location>/notfound.jsp</location>
</error-code>
<error-page>
<error-code>500</error-code>
<location>/systembusy.jsp</location>
</error-page>

在配置中對一些常見錯誤進麼重定向,避免當出現錯誤時,tomcat默認顯示的錯誤頁面暴
露服務器和版本信息,必須確保程序根目錄下的錯誤頁面已經存在

server header重寫

在HTTP Connector配置中加入server的配置
server="webserver"
當tomcat HTTP端口直接提供web服務時,此配置生效,加入此配置,將會替換http響
應server header部分的默認配置,默認是Apache-Coyote/1.1
示例:
[root@tomcat01 conf]# curl --head 127.0.0.1:8080
    HTTP/1.1 403 Forbidden
    Server: Apache-Coyote/1.1
    Cache-Control: private
    Expires: Thu, 01 Jan 1970 08:00:00 CST
    Content-Type: text/html
    Content-Length: 559
    Date: Sun, 31 Dec 2017 14:28:10 GMT

修改配置:
    <Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"
redirectPort="8443" server="nginx1.1"/>

修改後的結果
[root@tomcat01 scripts]# curl --head 10.204.3.7:8080
    HTTP/1.1 403 Forbidden
    Cache-Control: private
    Expires: Thu, 01 Jan 1970 08:00:00 CST
    Content-Type: text/html
    Content-Length: 559
    Date: Sun, 31 Dec 2017 14:33:57 GMT
    Server: nginx1.1

訪問限制

通過限制,限制訪問的ip來源
ip的白名單,拒絕非白名單IP的訪問,此配置主要是針對高保密級別的系統,
<Context docBase="/data/webapps/www"  debug="0" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.*" deny="*.*.*.*" />
</Context>

起停腳本權限回收

去除其他用戶對tomcat的bin目錄下的shutdown.sh  startup.sh catalina.sh的執行權限
chmod -R 744 tomcat/bin/*

訪問日誌格式規範

開啓tomcat默認訪問日誌中的referer和User-Agent記錄,是爲了一旦出現安全問題能夠更好的根據
日誌進行問題排查
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t %r %b %{Referer}i %{User-Agent}i $D" resolveHosts="false" />

Tomcat的狀態管理和host管理

管理狀態頁文件

/usr/local/tomcat8/webapps/manager

修改配置文件

vim /usr/local/tomcat8/conf/tomcat-users.xml
在最後</tomcat-users>段前添加的內容如下:
<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui"/>

訪問狀態頁

http://10.204.3.6:8080/manager
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章