tomcat安裝配置規範

tomcat用戶設置
1
2
[root@host-1 ~] # useradd -u 501 tomcat
[root@host-1 ~] # passwd tomcat
 
安裝JDK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@host-1 tools] # tar zxf jdk-8u101-linux-x64.tar.gz -C /usr/local/
[root@host-1 tools] # cd /usr/local/
[root@host-1  local ] # ln -s jdk1.8.0_101 jdk
[root@host-1  local ] # vim /etc/profile.d/java.sh
     export  JAVA_HOME= /usr/local/jdk
     export  JAVA_BIN= /usr/local/jdk/bin
     export  PATH=$PATH:$JAVA_HOME /bin
     export  CLASSPATH=.:$JAVA_HOME /lib/dt .jar:$JAVA_HOME /lib/tools .jar
     export  JAVA_HOME JAVA_BIN PATH CLASSPATH
 
[root@host-1  local ] # source /etc/profile.d/java.sh
[root@host-1  local ] # java -version
java version  "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
 
[root@host-1 ~] # cd /usr/local/
[root@host-1  local ] # chown -R tomcat.tomcat jdk/

 

tomcat安裝
1
2
3
4
[root@host-1 tools] # tar zxf apache-tomcat-8.5.5.tar.gz -C /usr/local/
[root@host-1 tools] # cd /usr/local/
[root@host-1  local ] # ln -s apache-tomcat-8.5.5 tomcat
[root@host-1  local ] # chown -R tomcat.tomcat tomcat/

 

應用程序配置
1
2
3
4
5
[root@host-1  local ] # mkdir -p /data/webapps
[root@host-1  local ] # cd /data/
[root@host-1 data] # chown -R tomcat.tomcat webapps
[root@host-1  local ] # su tomcat
將應用程序放置在 /data/webapps/ 目錄下。創建相應的目錄如團購wmw_tuan,靜態化wmw_static,並修改server.xml,對應好目錄便可

 

啓動tomcat
1
2
3
4
5
6
7
[tomcat@host-1 ~]$  /usr/local/tomcat/bin/startup .sh
Using CATALINA_BASE:          /usr/local/tomcat
Using CATALINA_HOME:        /usr/local/tomcat
Using CATALINA_TMPDIR:    /usr/local/tomcat/temp
Using JRE_HOME:                 /usr/local/jdk
Using CLASSPATH:               /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar
Tomcat started.

 

tomcat重啓問題
1
2
3
4
/usr/local/tomcat/bin/shutdown .sh   這個命令是關閉tomcat
重啓有2個問題須要注意:
一、建議生產環境中,每次重啓以前把這兩個文件夾清空,否則可能會由於緩存的問題形成一些奇怪的事件
二、有時候會發現執行 shutdown .sh後,tomcat並無徹底關閉,因此咱們能夠作腳本 kill 進程

 

tomcat腳本
1
2
# vim tomcat.sh
# chmod +x tomcat

 

telnet管理端口保護(強制)
1
2
3
4
5
6
7
8
9
說明:
修改默認的8005管理端口爲不易猜想的端口(大於1024)
修改SHUTDOWN指令爲其餘字符串
 
標準配置:
<Server port= "8527"  shutdown = "dangerous" >
 
備註:
以上配置項的配置內容只是建議配置

 

ajp鏈接端口保護(推薦)
1
2
3
4
5
6
7
8
9
10
說明:
修改默認的ajp 8009端口爲不易衝突的大於1024端口
經過iptables規則限制ajp端口訪問的權限僅爲線上機器
 
標準配置:
<Connector port= "8528"  protocol= "AJP/1.3" />
 
備註:
以上配置項內容僅爲建議配置,請按照實際狀況進行合理配置,但要求端口在8000~8999之間
保護此端口的目的在於防止線下的測試流量被mod_jk轉發至線上tomcat服務器

 

禁用管理端(強制)
1
2
3
4
5
6
7
8
9
10
11
說明:
刪除默認的{tomcat安裝目錄} /conf/tomcat-user .xml文件,重啓tomcat後將會自動生成新的文件
刪除{tomcat安裝目錄} /webapps 下默認全部的目錄和文件
將tomcat應用根目錄配置爲tomcat安裝目錄之外的目錄
 
標準配置:
<Context path= ""  docBase= "/data/webapps/bagtree"  debug= "0"  reloadable= "false"  crossContext= "true"  />
 
備註:
對於前段web模塊,tomcat管理端屬於tomcat的高危安全隱患,一旦被攻破,黑客經過上傳web shell的方式將會直接取
得服務器的控制權,後果極其嚴重

 

降權啓動(強制)
1
2
3
4
5
6
說明:
tomcat啓動用戶權限必須爲非root權限,儘可能下降tomcat啓動用戶的目錄訪問權限
如須要直接對外使用80端口,可經過普通賬號啓動後,配置iptables規則進行轉發
 
備註:
避免一旦tomcat服務被入侵,黑客直接獲取高級用戶權限危害整個server的安全

 

文件列表訪問控制(強制)
1
2
3
4
5
6
7
8
9
10
11
說明:
conf /web .xml文件中default部分listings的配置必須爲 false
 
標準配置:
<init-param>
             <param-name>listings< /param-name >
             <param-value> false < /param-value >
  < /init-param >
 
備註:
false 爲不列出目錄文件, true 爲容許列出,默認爲 false

 

版本信息隱藏(強制)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
說明:
修改conf /web .xml,重定向40三、404以及500等錯誤到指定的錯誤頁面
也能夠經過應用程序目錄下的WEB-INF /web .xml進行錯誤頁面的重定向
 
標準配置:
<error-page>
     <error-code>403< /error-code >
     <location> /forbidden .jsp< /location >
< /error-page >
 
<error-page>
     <error-code>404< /error-code >
     <location> /notfound .jsp< /location >
< /error-page >
 
<error-page>
     <error-code>500< /error-code >
     <location> /serverbusy .jsp< /location >
< /error-page >
 
備註:
在配置中對一些常見錯誤進行重定向,避免當出現錯誤時tomcat默認顯示的錯誤頁面暴露服務器和版本信息
必須確保程序跟目錄下的錯誤頁面已經存在

 

Server header重寫(推薦)
1
2
3
4
5
6
7
8
說明:
在HTTP Connector配置中加入server的配置
 
標準配置:
server= "webserver"
 
備註:
當tomcat HTTP端口直接提供web服務時此配置生效,加入此配置,將會替換http響應Server header部分默認配置,默認是Apache-Coyote /1 .1

 

訪問限制(根據業務場景需求)
1
2
3
4
5
6
7
8
9
10
說明:
經過配置,限定訪問的ip源
 
標準配置:
<Context path= ""  docBase= "/home/work/tomcat"  debug= "0"  reloadable= "false"  crossContext= "true" >
<Valve className= "org.apache.catalina.valves.RemoteAddrValue"   allow= "61.148.18.138,61.135.165.*"  deny= "*.*.*.*"  />
< /Context >
 
備註:
ip的白名單,拒絕非白名單ip的訪問,此配置主要是針對高保密級別的系統

 

起停腳本權限回收(推薦)
1
2
3
4
5
6
7
8
說明:
取出其餘用戶對tomcat的bin目錄下 shutdown .sh、startup.sh、catalina.sh的可執行權限
 
標準配置:
chmod  -R 744 tomcat /bin/ *
 
備註:
防止其餘用戶有起停線上tomcat的權限

 

訪問日誌格式規範(推薦)
1
2
3
4
5
6
7
8
9
10
說明:
開啓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 %s %b %{Referer}i %{User-Agent}i %D"  resolveHosts= "false"  />
 
備註:
開啓Referer和User-Agent是爲了一旦出現安全問題可以更好的根據日誌進行問題排查

 

附錄:建議配置標準執行方案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
一、配置部分(${CATALINA_HOME}conf /server .xml)
    <Server port= "8527"  shutdown = "dangerous" >
 
<!--Define a non-SSL HTTP /1 .1 Connector on port 8080 -->
     <Connector port= "8080"  server= "webserver"  />
 
<!--Define an AJP1.3 Connector on port 8528-->
<!--Define an accesslog-->
     <Valve className= "org.apache.catalina.valves.AccessLogValve"  directory= "logs"
                prefix= "localhost_access_log"  suffix= ".txt"
                pattern= "%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %D"  resolveHosts= "false"  />
 
     <Connector port= "8528"  protocol= "AJP/1.3"  />
 
     <Context path= ""  docBase= "/data/webapps/xxx"  debug= "0"  reloadable= "false"   crossContext= "true" >
 
二、配置部分(${CATALINA_HOME}conf /web .xml或者WEB-INF /web .xml)
<init-param>
             <param-name>listings< /param-name >
             <param-value> false < /param-value >
  < /init-param >
 
<error-page>
     <error-code>403< /error-code >
     <location> /forbidden .jsp< /location >
< /error-page >
 
<error-page>
     <error-code>404< /error-code >
     <location> /notfound .jsp< /location >
< /error-page >
 
<error-page>
     <error-code>500< /error-code >
     <location> /serverbusy .jsp< /location >
< /error-page >
 
三、刪除以下 tomcat默認目錄和默認文件
tomcat /webapps/ *
tomcat /conf/tomcat-user .xml
 
四、去除其餘用戶對tomcat起停囧啊本的執行權限
chmod  744 -R tomcat /bin/ *
相關文章
相關標籤/搜索