当前位置 博文首页 > 文章内容

    如何预防后台被攻击,且看Tomcat的安全配置

    作者: 栏目:未分类 时间:2020-09-18 16:01:12

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    安全是系统架构中最重要的关注点之一,通常情况下,所说的安全涵盖网络安全、数据安全、操作系统安全、服务器安全以及应用系统安全等诸多方面。Tomcat 是一个免费的开放源代码 的Web应用服务器,技术先进、性能稳定。由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到广泛的青睐,因此,Tomcat安全也越来越受到重视。

    Tomcat作为一款应用服务器,默认情况下可以满足多数场景的安全需求,但是在安全要求较高的情况下,仍需要从多个方面进行配置,已防止Tomcat管理后台被攻击等风险。Tomcat安全主要从以下2个方面介绍。

    一、配置安全

    默认情况下其存在一定的安全隐患,可被恶意攻击,所以在生产环境中需要对Tomcat进行安全配置,下面将介绍影响Tomcat配置安全的4个选项。

    (1)移除不使用的内置应用

    Tomcat环境部署完毕后,要删除根目录下的一些默认文件夹:CATALINA_HOME/webapps文件夹下的内置应用,这些应用可能会导致安全风险,因此移除不使用的应用。对于docs(Tomcat本地说明文档)、examples(Tomcat相关的demo示例)、ROOT(Tomcat默认页),可以将其直接移除。host-manager和manager用于管理及监控tomcat容器,如果已经使用第三方工具来管理tomcat,不需要manager管理登录,这两个应用也可以直接移除,如下图所示:

    (2) 降权启动tomcat
    tomcat 启动用户权限必须为非root,避免一旦tomcat服务被入侵,获取root权限,因为在Linux操作系统中,root用户的权限是最高的,可以执行普通用户无法执行的操作。应单独为Tomcat服务器创建一个用户,并且授予运行应用服务器所需的最小系统权限。

    (3)删除不使用的组件
    Tomcat是开源软件,那么server.xml中的默认配置对所有人都是可见的,它的运行机制也是众所周知的,因此使用默认配置也会增加服务器受攻击的风险。所以在部署生产环境前,移除不必要的组件。默认情况下,server.xml配置了一个HTTP连接器(8080)和一个AJP连接器(8009),实际上绝大多数情况下,只需要一个连接器。如果Tomcat不存在前置的web服务器,此时可以保留HTTP而删除AJP连接器。

    (4)禁用自动部署
    在默认情况下,Tomcat是自动部署的,只要是在webapps目录下的war包均会在Tomcat启动时自动部署,包括被植入的恶意web应用。
    要避免恶意的web应用自动启动,可以考虑从两个方面解决:
    一是修改web应用部署目录为其他路径,这样攻击者很难找到正确的部署目录并部署web应用;
    二是禁用自动部署,将server.xml配置文件中Host元素的autoDeploy和deployOnStartup属性设置为false,此时只有通过context标签部署web应用,配置方法如下图所示:


    二、管理平台安全

    (1)管理平台是什么
    Tomcat提供了基于Web方式的管理平台,管理平台即是内置的两个独立的web应用,位于webapps目录下的host-manager和manager。
    host-manager管理控制台可以动态地添加一个虚拟主机。此外还可以启动、停止、删除虚拟主机,在实际生产中很少使用host-manager管理平台。
    manager管理平台可以很方便的管理运行在tomcat服务器上的Web应用,如发布、启动、停止或删除Web应用,还可以实时管理HTTP会话以及查看服务器状态信息等。

    (2)管理平台如何使用
    在tomcat启动成功后,通过http://ip:port/manager/html访问manager 管理平台 ,因为默认添加了访问权限控制,第一次访问需要在conf/ tomcat-users.xml 文件中为当前用户添加角色,manager管理平台共有4种角色,分别为:

    • manager-gui:允许访问html页面接口(即URL路径为/manager/html/*);

    • manager-script:允许访问纯文本接口(即URL路径为/manager/text/*);

    • manager-jmx:允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*);

    • manager-status:允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)。

    其中manager-gui、manager-script、manager-jmx三个角色均具备manager-status角色的权限,即这三种角色权限无需再额外添加manager-status权限。

    实际使用中只需配置manager-gui角色通过html页面的形式访问管理平台。

    manager管理平台有4种角色,host-manager管理平台有2种角色,配置方式如下图所示:


    Web版管理控制台可以发布、停止、重新加载指定的web应用,如下图所示:

    通过http://ip:port/manager/status ,查看Server-status服务器状态页面,如下图所示:

    Server-status包含以下几部分信息:

    服务器基本信息 服务器版本、JVM版本、操作系统、ip地址
    系统信息 内存使用情况
    JVM信息 JVM分配及使用情况
    连接器信息 连接器请求处理线程的使用情况

    host-manager管理控制台可以动态地添加一个虚拟主机。此外还可以启动、停止、删除虚拟主机,如下图所示:

    通过http:// ip:port /host-manager/html 访问host-manager管理平台,因为默认添加了访问权限控制,第一次访问需要在conf/tomcat-users.xml文件中为当前用户添加角色,host-manager管理平台共有2种角色,分别为admin-gui和admin-script,配置方式见上面(2)管理平台如何使用中的配置。

    • admin-gui:允许访问html页面接口(即URL路径为/manager/html/*)。

    • admin-script:允许访问纯文本接口(即URL路径为/manager/text/*)。

    (3)管理平台安全加固
    管理平台有发布管理应用的权限,默认情况下host-manager和manager应用存在安全风险,可能会产生严重的危害,所以针对Tomcat管理平台需通过以下几个方面进行安全加固。

    1、如使用内置host-manager和manager管理应用,需要增加IP访问限制。

    在应用下META-INF/context.xml文件中配置。修改allow属性的正则表达式。8.5版本前需要手动开启,而8.5版本之后,则默认开启只有本机可以访问。比如只允许ip地址10.232.150.78和10.232.150.80访问manager管理应用,将allow属性值修改为10.232.150.78|10.232.150.80即可,如下图所示:

    2、如需访问host-manager和manager应用需要分配相关的角色权限。
    我们还应设置足够健壮的密码,建议加强口令强度,设置口令复杂度为8位以上,大小写字母、数字、特殊符号的组合,并定期更换密码,避免使用弱口令。

    3、管理平台添加用户锁定功能。
    在server.xml中配置了org.apache.catalina.realm.LockOutRealm,LockOutRealm是一个Tomcat的Realm实现,它扩展了CombinedRealm,假如在某一段时间内出现多次验证失败,则它能够提供锁定用户的功能,以避免攻击者进行密码暴力破解。LockOutRealm配置方式在server.xml文件Engine元素内添加,如下图所示:

    failureCount 用户身份验证验证失败的连续次数。默认为5。
    lockOutTime 身份验证失败后,用户被锁定的时间(以秒为单位)。默认为300(5分钟)。

    关于realm安全域参见:https://wiki.jikexueyuan.com/project/tomcat/realms-aaa.html


    最后特此声明:本文作者苗超,中国农业银行研发中心系统支持部工程师。
    全文摘自CSDN,只用于学习使用,不作其他用途。