1.   Tomcat运行在非root用户下

        为Tomcat创建的专用用户,并拥有必须的最小权限。

    useradd tomcat -M -d / -s /usr/sbin/nologin


2.   删除默认的应用

       webapps目录下的应用删除或禁止访问。


3.   关闭Shutdown端口或复杂化停止密码

       Shutdown端口设置为-1 或为Shutdown提供复杂密码。

       


4.   禁用TRACE请求

      allowTrace="fasle"/>


5.  关闭xpoweredBy响应头

     xpoweredBy="fasle"/>


6.  禁用SSL v3协议

     

        port="8443" sslProtocols = "TLS" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"/>


7.   禁用deployXML功能

       deployXML="false">


8.  关闭自动部署

        防止被植入恶意程序,关闭自动部署。部署应用时重启生效。

       


9.   隐藏Tomcat的版本信息

       修改catalina.jar!org\apache\catalina\util\ServerInfo.properties文件中的版本信息为

       server.info=Apache Tomcat

       server.number=

       server.built=

      server="AS 1.0"/>


10.  自定义错误页面

   Tomcat内部生成的错误页面包含Tomcat相关信息。

   编辑conf/web.xml,在标签前添加以下内容

  
  404
   /404.html
   
  
    500
   /500.html
  


11.  限定访问的IP地址

     一般存在前端负载均衡,请求地址比较固定。

     

       

     


12. 开启访问日志记录

    记录流量访问,会带来部分性能开销

   

     prefix="localhost_access_log"  suffix=".txt" 

     pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i %D"

     resolveHosts="false" />


13.  禁用访问目录列表

        编辑conf/web.xml文件

     

        default

        org.apache.catalina.servlets.DefaultServlet

       

            debug

            0

       

       

            listings

            false

       

        1

   


14. 禁用资源的修改权限

     

        default

        org.apache.catalina.servlets.DefaultServlet

       

            debug

            0

       

       

            readonly

            true

       

        1

   

15.  Tomcat与项目文件属主分离

      即便攻破了Tomcat,也不能对项目文件进行更改。