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安装配置规范的更多相关文章

  1. Tomcat安装配置

    Tomcat安装配置 很久没有通过博客对学习所得进行记录了. 现在将使用Tomcat的一些经验和心得写到这里,作为记录和备忘.如果有朋友看到,也请不吝赐教. 1.首先是Tomcat的获取和安装. 获取 ...

  2. Zookeeper、Solr和Tomcat安装配置实践

    Zookeeper.Solr和Tomcat安装配置实践

  3. nginx+tomcat安装配置

    nginx+tomcat安装配置 # nginx+tomcat安装配置 #创建网站目录 mkdir -p /www/wwwroot cd /www #安装配置 wget http://mirrors. ...

  4. centos tomcat/resin安装配置 卸载系统自带的java tomcat安装配置 安装JDK resin安装配置 第二十八节课

    centos  tomcat/resin安装配置  卸载系统自带的java  tomcat安装配置  安装JDK   resin安装配置    第二十八节课 tomcat和java都不需要编译 tom ...

  5. tomcat 安装配置及问题解决

    最近没写程序 刚想运行一个jsp程序发现tomcat出现一些问题,然后就重新装了程序,重新配置 总结经验就是不要怕报错,把错误复制下来,百度里面都有解决办法 要安装与自己jdk版本相匹配的tomcat ...

  6. tomcat安装配置.md

    tomcat 安装 安装jdk jdk我使用的是oracle的,如果下载请在oracle的官网上下载.或者你也可以使用openjdk,官网在http://openjdk.java.net/. # ta ...

  7. 转:Tomcat安装配置及站点说明

    原文地址:http://www.cnblogs.com/Johness/archive/2012/07/20/2600937.html 1.首先是Tomcat的获取和安装. 获取当然得上Apache的 ...

  8. JDK,TomCat安装配置

    JDK.Tomcat.myEclipse安装配置 准备安装包 JAVA运行环境包 JDK1.7下载地址: http://www.veryhuo.com/down/html/43205.html Jsp ...

  9. 基于centOS7:新手篇→tomcat安装配置

    1.新环境,还没有安装lrzsz和unzip,先安装 yum -y install lrzsz yum -y install unzip 2.进入tomcat官网下载安装包,使用rz上传到服务器opt ...

随机推荐

  1. java中的BigInteger

    头文件 import java.io.*; import java.math.*; 读入 Scanner cin = Scann(System.in); while(cin.hasNext()) &l ...

  2. [Math Review] Statistics Basics: Main Concepts in Hypothesis Testing

    Case Study The case study Physicians' Reactions sought to determine whether physicians spend less ti ...

  3. 大数据技术之_16_Scala学习_08_数据结构(下)-集合操作+模式匹配

    第十一章 数据结构(下)-集合操作11.1 集合元素的映射-map11.1.1 map 映射函数的操作11.1.2 高阶函数基本使用案例1+案例211.1.3 使用 map 映射函数来解决11.1.4 ...

  4. [BZOJ4568][SCOI2016]幸运数字(倍增LCA,点分治+线性基)

    4568: [Scoi2016]幸运数字 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 2131  Solved: 865[Submit][Statu ...

  5. [USACO17DEC] Barn Painting

    题目描述 Farmer John has a large farm with NN barns (1 \le N \le 10^51≤N≤105 ), some of which are alread ...

  6. (转)stage 3d or unity 3d

    这个是这样子的.stage3d如果不使用flascc的话,性能会卡在as上面.你没卡是因为你用的效果还不够高级.往深了走的高端应用就是卡as性能上.这不是你代码能优化了的.我们后来都改用flascc写 ...

  7. 移动 web 1px 边框解决方案

    在移动端web页面开发中,为了使css中使用的尺寸与设计稿一致,通常会采用 rem 单位配合 lib-flexible 来实现移动端的适配,在IOS设备上 flexible.js 会根据设备的分辨率动 ...

  8. 设计模式之空对象模式(php实现)

    github地址:https://github.com/ZQCard/design_pattern /** * 在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象 ...

  9. web服务器、wsgi、应用

    1.web服务器(比如Apache.Nginx.Tomcat.Jetty.IIS)属于静态服务器,只能返回静态的文件,服务器多是C/C++语言开发的.web服务器可以说一个request proxy, ...

  10. SilverLight-3:目录

    ylbtech-SilverLight-Index: 1.A,返回顶部 Layout The Layout Containers - The Panel Background Borders   Si ...