zoukankan      html  css  js  c++  java
  • Tomcat 安全优化

    Tomcat 安全优化

    ============================================
    1、telnet 管理端口保护(强制)
    类别:telnet管理端口保护 
    配置内容及说明  :
     【1】修改默认的8005管理端口(大于1024)
     【2】修改SHUTDOWN指令为其他字符串
    标准配置:
    <Server port="8527"
    shudown="crushlinux">
    备注:以上配置项的配置内容只是建议配置,可以按照服务实际情况进行合理配置,但要求端口配置在8000~8999之间。
    2、ajp连接端口保护(推荐)
    类别:ajp连接端口保护
    配置内容及说明  :
     【1】修改默认的ajp 8009端口为不易冲突的大于1024端口;
     【2】通过iptables规则限制ajp端口访问的权限仅为线上机器
    标准配置:
    <Connector port="8528"
    protocol="AJP/1.3" />
    备注:以上配置项的配置内容仅为建议配置,请按照服务实际情况进行合理配置,但要求端口配置在8000~8999之间,保护此端口的目的在于防止线下的测试流量被mod_jk转发至线上tomcat服务器
    主要是配置文件的伪装与修改
    [root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml
    =============================================
    3、禁用管理端(强制)
    类别:禁用管理端
    配置内容及说明  :
     【1】删除默认的{Tomcat 安装目录} /conf/tomcat-user.xml文件,重启tomcat后将会自动生成新的文件;
     【2】删除{Tomcat 安装目录}/webapps 下默认的所有目录和文件;
     【3】将tomcat应用根目录配置为tomcat安装目录以外的目录;
    标准配置:
    <Context path="" docBase="/web/webapps" debug="0" reloadable="false" crossContext="true"/>
    备注:对于前端web模块,tomcat管理端属于tomcat的高危安全隐患,一旦被攻破,黑客通过上传web shell 的方式将会直接取得服务器的控制权,后果极其严重。
    4、降权启动(强制)
    类别:降权启动
    配置内容及说明  :
     【1】tomcat启动用户权限必须为非root权限,尽量降低tomcat启动用户的目录访问权限
     【2】如需直接对外使用80端口,可通过普通账号启动后,配置iptables规则进行转发
    标准配置:
    [root@localhost ~]# useradd tomcat
    [root@localhost ~]# cp -a /usr/local/tomcat8/ /home/tomcat/tomcat8_1
    [root@localhost ~]# chown -R tomcat:tomcat /home/tomcat/tomcat8_1/
    [root@localhost ~]# su -c '/home/tomcat/tomcat8_1/bin/startup.sh' tomcat   //-c 指定命令操作 降权启动
    [root@localhost ~]# ps aux |grep java
    备注:避免一旦tomcat服务被入侵,黑客直接获取高级用户权限危害整个server的安全
    5、文件列表访问控制(强制)
    类别:文件列表 访问控制
    配置内容及说明:
     【1】conf/web.xml 文件中default部分listings的配置必须为false
    标准配置:
    <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
    </init-param>
    备注:false为不列出目录文件,true为允许列出,默认为false
    [root@localhost ~]# vim /usr/local/tomcat8/conf/web.xml
     110         <init-param>
     111             <param-name>listings</param-name>
     112             <param-value>false</param-value>
     113         </init-param>
    默认的 保存退出
    ====================================================
    6、版本信息隐藏(强制)
    类别:版本信息隐藏
    配置内容及说明:
     【1】修改conf/web.xml,重定向403、404以及500等错误到指定的错误页面
     【2】也可以通过修改应用程序目录下的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>/systembusy.jsp</location>
    </error-page>
    备注:在配置文件中对一些常见的错误进行重定向,避免当出现错误时tomcat默认显示的错误页面暴露服务器和版本信息,必须确保程序根目录下的错误页面已经存在。
    7、server header 重写(推荐)
    类别:server header 重写
    配置内容及说明:在HTTP Connector配置中加入server的配置
    标准配置:serve="webserver"
    备注:当tomcat HTTP 端口直接提供web服务时此配置生效,加入此配置,将会替换http响应Server header 部分的默认配置,默认是Apache-Coyote/1.1
    8、访问限制(可选
    类别:访问限制
    配置内容及说明:通过配置,限定访问的ip来源
    标准配置:
    <Conntext path="" docBase="/web/webapps" debug="0" reloadable="false" crossContext="true">
    <Value className="org.apache.catalina.values.RemoteAddrValue"
    allow="61.148.18.138,61.135.165.*" deny="*.*.*.*"/>
    </Context>
    备注:通过配置信任ip的白名单,拒绝非白名单ip的访问,此配置主要是针对高保密级别的系统,一般产品线不需要
    9、起停脚本权限回收(推荐)
    类别:起停脚本权限回收
    配置内容及说明:去除其他用户对tomcat的bin目录下shutdown.sh、startup.sh、catalina.sh的可执行权限
    标准配置:chmod -R 744 tomcat/bin/*
    备注:防止其他用户有起停线上Tomcat的权限
    10、访问日志格式规范(推荐
    类别:访问日志格式规范
    配置内容及说明:开启tomcat默认访问日志中的Referer和User-Agent记录
    标准配置或操作:
    <Value
    className="org.apache.cataline.values.AccessLogValue"
    directory="logs"
    prefix="localhost_access_log."
    suffix=".txt"
    pattern="%h %I %u %t %r %s %b %{Referer}i
    %{UserAgebt}i %D" resolveHosts="false"/>
    备注:开启Referer 和User-Agent是为了一旦出现安全问题能够更好的根据日志进行问题排查
    11、禁止列出目录
    [root@localhost ~]# vim /usr/local/tomcat8/conf/web.xml
     110         <init-param>
     111             <param-name>listings</param-name>
     112             <param-value>false</param-value>
     113         </init-param>
    12、页面超时
    [root@localhost ~]# vim /usr/local/tomcat8/conf/web.xml
    581   <session-config>
    582   <session-timeout>30</session-timeout>
    583   </session-config>
    13、默认页面
    [root@localhost ~]# vim /usr/local/tomcat8/conf/web.xml
    4715     <welcome-file-list>
    4716         <welcome-file>index.html</welcome-     file>
    4717         <welcome-file>index.htm</welcome-f     ile>
    4718         <welcome-file>index.jsp</welcome-f     ile>
    4719     </welcome-file-list>
    14、配置网页传输压缩
    [root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml
     69     <Connector port="8080" protocol="org.ap    ache.coyote.http11.Http11AprProtocol"
     70                connectionTimeout="20000"
     71                redirectPort="8443"
     72                compression="on"   #开启压缩
    73                 compressionMinSize="50"  #指定最小的压缩文件,单位是字节
    74                 noCompressionUserAgents="go    zilla,Traviata"  #此浏览器类型不进行压缩
    75                 compressionMineType="text/h    tml,text/xml,text/javascript,text/css,text/    plain"/>  #文件格式
    保存退出
    [root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh
    [root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
    完成!!!!!!!!!!!!!!!!!!!!!!
     
     
     
     
  • 相关阅读:
    unsupported jsonb version number 123
    如何在MPlayer上支持RTSP
    TDengine 时序数据库的 ADO.Net Core 提供程序 Maikebing.EntityFrameworkCore.Taos
    如何使用IoTSharp对接ModBus?
    如何从源码启动和编译IoTSharp
    Asp.Net Core 自动适应Windows服务、Linux服务、手动启动时的内容路径的扩展方法
    MQTTnet 的Asp.Net Core 认证事件的扩展
    Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)
    The remote certificate is invalid according to the validation procedure 远程证书验证无效
    settings插拔式源码
  • 原文地址:https://www.cnblogs.com/elin989898/p/11926337.html
Copyright © 2011-2022 走看看