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/ *
相关文章
相关标签/搜索