zoukankan      html  css  js  c++  java
  • tomcat安全加固和规范

    tomcat是一个开源Web服务器,基于TomcatWeb运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐。不过,在默认配置下其存在一定的安全隐患,可被恶意攻击。以下是一些安全加固的方法:

    版本安全

     升级到最新稳定版,出于稳定性考虑,不建议进行跨版本升级。

    服务降权

    不要使用root用户启动tomcat,使用用普通用户启动Tomcat,集群内用户名统一UID

    端口保护

    1 更改tomcat管理端口8005 ,此端口有权限关闭tomcat服务,但要求端口配置在8000~8999之间,并更改shutdown执行的命令
    2 若 Tomcat 都是放在内网的,则针对 Tomcat 服务的监听地址都是内网地址
    3 修改默认的ajp 8009端口为不易冲突(大于1024),但要求端口配置在8000~8999之间

    禁用管理端

    1 删除默认$CATALINA_HOME/conf/tomcat-users.xml文件,重启tomcat将会自动生成新的文件
    2 删除$CATALINA_HOME/webapps下载默认的所有目录和文件
    3 将tomcat应用根目录配置为tomcat安装目录以外的目录

    隐藏Tomcat的版本信息

    针对该信息的显示是由一个jar包控制的,该jar包存放在$CATALINA_HOME/lib目录下,名称为 catalina.jar,
    通过 jar xf 命令解压这个 jar 包会得到两个目录 META-INF 和 org ,
    修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段来实现来更改我们tomcat的版本信息

    关闭war自动部署

    默认 Tomcat 是开启了对war包的热部署的。为了防止被植入木马等恶意程序,因此我们要关闭自动部署。

    修改实例:

       <Host name="localhost" appBase=""
               unpackWARs="false" autoDeploy="false">

    自定义错误页面

    编辑conf/web.xml,在</web-app>标签上添加以下内容:

    <error-page>
        <error-code>404</error-code>
        <location>/404.html</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/500.html</location>
    </error-page>

    屏蔽目录文件自动列出

    编辑conf/web.xml文件

    <servlet>
            <servlet-name>default</servlet-name>
            <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <init-param>
                <param-name>listings</param-name>
                <param-value>false</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
    <param-value>false</param-value>
    
    这里false为不列出,true为充许列出

    多虚拟主机

    强烈建议不要使用 Tomcat 的虚拟主机,推荐每个站点使用一个实例。即,可以启动多个 Tomcat,而不是启动一个 Tomcat 里面包含多个虚拟主机。
    因为 Tomcat是多线程,共享内存,任何一个虚拟主机中的应用崩溃,都会影响到所有应用程序。虽然采用多实例的方式会产生过多的开销,但至少保障了应用程序的隔离和安全。

    脚本权限回收

    控制CATALINAHOME/bin目录下的start.sh、catalina.sh、shutdown.sh的可执行权限
    chmod−R744 CATALINA_HOME/bin/*

    分离 Tomcat 和项目的用户

    为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。因此我们要将 Tomcat 和项目的属主做分离,这样子,即便被搞,他也无法创建和编辑项目文件。

    server head重写

    在HTTP Connector配置中加入server的配置 server="server_name",默认是Apache-Copyote/1.1

    通过配置,限定访问的IP来源

    <Host name="localhost"  appBase="/data/www/tomcat_webapps"   unpackWARs="true" autoDeploy="false">
       <Valve className="org.apache.catalina.valves.RemoteAddrValve"  allow="192.168.1.10,192.168.1.30,192.168.2.*" deny=""/>  
       <Valve className="org.apache.catalina.valves.RemoteHostValve"  allow="www.test.com,*.test.com" deny=""/>
    </Host>

    访问日志格式规范

    开启tomcat默认访问日志中Referer和User-Agent记录

    标准配置:

    <Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs" prefix="localhost_access_log"
         suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b %{Referer}i %{User-Agent}i %D"
         resolveHosts="false" />
  • 相关阅读:
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结v2
    JS设置cookie、读取cookie、删除cookie
    Atitit 图像处理30大经典算法attilax总结
    Atitit数据库层次架构表与知识点 attilax 总结
    Atitit 游戏的通常流程 attilax 总结 基于cocos2d api
    Atitti css transition Animation differ区别
    Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结
    Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式
    Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend
    Atitit  rgb yuv  hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
  • 原文地址:https://www.cnblogs.com/panwenbin-logs/p/8177523.html
Copyright © 2011-2022 走看看