zoukankan      html  css  js  c++  java
  • 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/*
  • 相关阅读:
    javascript数组/对象数组的深浅拷贝问题
    Vue packages version mismatch
    关于Echarts的使用和遇到的问题
    webpack 打包 todolist 应用
    Js正则学习笔记
    Vue项目多域名跨域
    Vuex的简单应用
    css3实现饼状图进度及环形进度条
    浏览器缓存机制
    去除滚动条
  • 原文地址:https://www.cnblogs.com/shengy/p/7389243.html
Copyright © 2011-2022 走看看