tomcat安装配置规范
Posted 盛碗米饭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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个问题需要注意: 1、建议生产环境中,每次重启之前把这两个文件夹清空,不然可能会因为缓存的问题造成一些奇怪的事件 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,重定向403、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
|
1、配置部分(${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" > 2、配置部分(${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 > 3、删除如下 tomcat默认目录和默认文件 tomcat /webapps/ * tomcat /conf/tomcat-user .xml 4、去除其他用户对tomcat起停囧啊本的执行权限 chmod 744 -R tomcat /bin/ * |
以上是关于tomcat安装配置规范的主要内容,如果未能解决你的问题,请参考以下文章
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途