安全是系统架构中最重要的关注点之一,通常情况下,所说的安全涵盖网络安全、数据安全、操作系统安全、服务器安全以及应用系统安全等诸多方面。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所示。

图 2.Tomcat内置应用

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应用,配置方法如图3所示。

图 3.禁用自动部署

管理平台安全

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种角色,配置方式如图4所示。

图 4. 管理平台角色配置

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

图 5. Web版管理控制台

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

图 6. 服务器状态页面

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

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

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

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

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

图 7. host-manager管理平台页面

3. 管理平台安全加固

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

如使用内置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即可,如图8所示。

图8. IP访问限制配置方式

如需访问host-manager和manager应用需要分配相关的角色权限。我们还应

设置足够健壮的密码,建议加强口令强度,设置口令复杂度为8位以上,大小写字母、数字、特殊符号的组合,并定期更换密码,避免使用弱口令。

管理平台添加用户锁定功能,在server.xml中配置了org.apache.catalina.real

m.LockOutRealm,LockOutRealm 是一个Tomcat的Realm实现,它扩展了CombinedRealm,假如在某一段时间内出现很多验证失败,则它能够提供锁定用户的功能,已避免攻击者进行密码暴力破解。LockOutRealm 配置方式, server.xml文件Engine元素内添加,如图9所示

图9. LockOutRealm 配置

如何预防后台被攻击?Tomcat 的安全配置来啦!相关推荐

  1. JavaWeb(一)——web服务器、Tomcat安装和配置

    文章目录 1. 基本概念 1.1 前言 1.2 web应用程序 1.3 静态web 1.4 动态web 2. web服务器 2.1 技术讲解 2.2 web服务器 3. Tomcat 3.1 安装To ...

  2. apache+Tomcat均衡负载配置

    2019独角兽企业重金招聘Python工程师标准>>> Tomcat集群配置 集群结构 负载均衡服务器 在一些大公司采用F5负载均衡交换机作为负载均衡服务器,然后将请求转发给tomc ...

  3. Tomcat server.xml配置示例

    转载自    Tomcat server.xml配置示例 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完成初始化所需要的.正是由于 ...

  4. Apache + Tomcat集群配置详解(1)

    Apache + Tomcat集群配置详解(1) 一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl ...

  5. tomcat和nginx配置java服务器

    tomcat和nginx配置java服务器 环境配置 服务器配置  写了这么久的SSM,做了一个简单的网站[没有加入数据库],然后就要开始部署javaWEB的云服务器了.本次搭建使用的Tomcat和n ...

  6. windows下tomcat集群配置(两种方法)

    两种方法只是在配置上不同原理一样,因为apache2.X后其自身集成了mod_jk功能,相对于1.3版本,不需要再进行繁琐的worker.properties配置,配置过程大幅简化. 一.软件需求 操 ...

  7. tomcat 的优化配置

    http://blog.csdn.net/herrapfel/archive/2007/07/30/1717081.aspx http://blog.csdn.net/rko/archive/2005 ...

  8. Nginx以及通过Nginx实现tomcat集群配置与负载均衡

    Nginx简介 启动,停止,和重新加载配置文件命令 Nginx功能 正向代理和反向代理的区别 反向代理 负载均衡 1.RR(默认) 2.权重 3.ip_hash 4.fair(第三方) 5.url_h ...

  9. Linux下Tomcat的安装配置

    Linux下Tomcat的安装配置 一.下载安装对应的jdk,并配置Java环境. 官网下载地址: http://www.oracle.com/technetwork/java/javase/down ...

最新文章

  1. LIVE555中RTSP客户端接收媒体流分析及测试代码
  2. 摩拜活跃用户跌200万、使用次数跌6400万或告别榜首之争?
  3. 聚类(下) 谱聚类算法
  4. wireshark如何对指定ip进行嗅探
  5. java 链表删除头结点,删除链表的倒数第N个节点,并返回链表的头节点
  6. 19. yum 常用命令《Mr.Robot》
  7. 三菱plc编程软件gx+developer安装教程
  8. 经验:如何做好两台BXP服务器(转)
  9. 【毕业设计】基于树莓派的指纹识别考勤系统 - 单片机 嵌入式 物联网
  10. Apktool反编译
  11. jQuery插件及表单验证
  12. 数据文化 | Uber的数据治理
  13. 北京华宇南航宣讲面试
  14. Navicat Premium 15安装教程
  15. 好看的网站正在升级维护中html单页源码
  16. 屠龙猎手攻略(图)原创
  17. 太阳高度角计算题_太阳高度角的计算与应用答题.ppt
  18. TRW2000操作手册 整理
  19. mtk tuning isp 调试流程
  20. 电源php38电路,8脚电源芯片TB6806的电路图

热门文章

  1. 通信与计算机技术的联系,通信技术与计算机技术融合发展论文
  2. 速达财务3000服务器账套维护显示,速达3000财务软件使用常见问题
  3. 微信小程序可以加服务器上的字体,微信小程序中自定义字体
  4. java定义一个方法,返回a的b次方
  5. html添加工具栏,添加带有命令的工具栏 (HTML)
  6. java对docker_如何在docker中运行java程序
  7. C语言数据类型转换详解
  8. 获取数据库内容放入下拉框中
  9. 【课题总结】OpenCV 抠图项目实战(4)固定阈值抠图
  10. 使用一个环境的或者半径异样消除器来进行异样消除