zoukankan      html  css  js  c++  java
  • tomcat 安全

    1.关闭服务器端口:
    server.xml默认有下面一行:

    <Server port="8005" shutdown="SHUTDOWN">
    这样允许任何人只要telnet到服务器的8005端口,输入"SHUTDOWN",然后回车,服务器立即就被关掉了。
    从安全的角度上考虑,我们需要把这个shutdown指令改成一个别人不容易猜测的字符串,可以同时把端口也改了。
    例如修改如下:

    <Server port="8005" shutdown="c1gstudio">
    这样就只有在telnet到8005,并且输入"c1gstudio"才能够关闭Tomcat.
    注意:这个修改不影响shutdown.bat的执行。运行shutdown.bat一样可以关闭服务器。

    2.增加防火墙
    更安全的方式是同时增加防火墙,来限制访问Tomcat的控制与连接器端口
    你可以通过运行netstat -a来查看网络服务器socket及其他现有连接的清单
    插入规则
    iptables -A INPUT -p tcp -m tcp --dport 8005 -j DROP
    保存规则
    service iptables save
    重载规则
    service iptables restart

    3.处理好Tomcat管理台的安全
    Tomcat管理台的应用文件,默认在{Tomcat安装目录}serverwebapps下,有admin和manager两个应用。
    其用户密码,在{Tomcat安装目录}conf/tomcat-users.xml中定义。在{Tomcat安装目录}webapps下
    admin.xml和manager.xml文件定义了可以通过访问/admin和/manager进入。
    默认情况下,完全可以登录tomcat管理台,造成严重安全问题
    检测办法:用IE打开链接http://[IP]:[Port]/admin,以用户名admin,密码为空登录,如果成功,
    说明存在问题。
    解决办法:可以删除{Tomcat安装目录}webapps下admin.xml和manager.xml文件,或者去掉用户密
    码,也可以删除应用文件。

    4.运行错误网页

    如果找不到网页即出现404错误,会显示服务器版本号,服务器配置也一目了然,
    为了避免这种情况,希望自定义设置错误页面。
    设置如下:
    用记事本打开confweb.xml文件,在文件的倒数第二行(一行之前)加入以下内容:

    <error-page>
    <error-code>404</error-code>
    <location>/404.jsp</location>
    </error-page>
    <error-page>
    <error-code>500</error-code>
    <location>/500.jsp</location>
    </error-page>
    在根目录下创建404.jsp和500.jsp文件

    5.多重服务器的安全防护模式
    当在同一台主机(或同一网络文件系统)上的 Apache httpd Web 服务器与 Tomcat 之间共享网页的实际目录时,
    请留意其个别安全防护模式间的相互作用。当你有“受保护的目录”时,这会特别重要。
    服务器将具有能读取彼此文件的权限。
    在这些状况下,请注意 Tomcat 并不会保护如 .htaccess 的文件,而Apache也不会保护Web应用程序的 WEB-INF 或 META-INF 目录。
    这些情形都有可能导致重大的安全漏洞,所以,我们建议你在使用这些特别的目录时,要格外小心。

    若要让 Apache httpd 保护 WEB-INF 及 META-INF 目录,请在 httpd.conf 中加入下列内容

    <LocationMatch "/WEB-INF/">
    AllowOverride None
    deny from all
    </LocationMatch>
    <LocationMatch "/META-INF/">
    AllowOverride None
    deny from all
    </LocationMatch>
    6.屏蔽目录文件自动列出的方法
    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为充许列出

    7.以非root用户运行

    8.关闭8009端口
    8009/tcp open ajp13

    8009端口是tomcat和apache的mod_proxy_ajp,mod_jk沟通的端口,没有用到就关了。

    tomcatpath/conf/server.xml 中的这段注释掉

    <!--
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    -->

  • 相关阅读:
    012.Nginx负载均衡
    011.Nginx防盗链
    010.Nginx正反代理
    009.Nginx缓存配置
    附007.Docker全系列大总结
    附024.Kubernetes全系列大总结
    008.Nginx静态资源
    007.Nginx虚拟主机
    006.Nginx访问控制
    005.Nginx配置下载站点
  • 原文地址:https://www.cnblogs.com/zhzhao/p/4582530.html
Copyright © 2011-2022 走看看