报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

Linux 系统安全(九):Tomcat 安全

  • 2019-08-25
  • 本文字数:1094 字

    阅读完需:约 4 分钟

Linux系统安全(九):Tomcat 安全

Tomcat 是 Java Servlet、JSP、Java 表达式语言和 Java WebSocket 技术的开源实现,被广泛使用在 Java 语言开发的大型网站系统中。我们可以从以下几个方面来保障 Tomcat 的安全。

保持版本更新

建议在部署时采用最新稳定版的 Tomcat,并在运维过程中追踪官方版本发布的情况,选择升级到最新稳定版。

删除默认应用

从官网下载了 Tomcat 安装文件后,在其 webapps 目录下默认有如下的应用:docs、examples、host-manager、manager、ROOT。删除这些默认应用,可以减少安全风险。

服务降权

在实践中,Tomcat 服务器一般部署在负载均衡设备或者 Nginx 之后,服务的监听端口应设置为 1024 以上(例如常见的 8080)。在这种情况下,笔者建议为 Tomcat 设置专用的启动用户,而并不是使用 root 这一超级权限用户,以限制在发生 Tomcat 入侵后黑客可以获得的权限避免更大的危害。而这也是最小权限原则的实践。例如,通过以下命令建立普通用户 tomcat:


# groupadd -g 2000 tomcat# useradd -g 2000 -u 2000 tomcat  
复制代码

管理端口保护

Tomcat 提供了通过 Socket 连接 8005 端口来执行关闭服务的能力,这在生产环境中是极为危险的。通过修改 server.xml 配置文件来禁用该管理端口:


<Server port="8005" shutdown="SHUTDOWN"> 
复制代码


修改为


<Server port="-1" shutdown="SHUTDOWN">
复制代码

AJP 连接端口保护

Tomcat 服务器通过 Connector 连接器组件与客户程序建立连接,Connector 组件负责接收客户的请求以及把 Tomcat 服务器的响应结果发送给客户。默认情况下,Tomcat 在 server.xml 中配置了两种连接器,一种使用 AJP,要和 apache 结合使用,一种使用 http。当使用 http 时,建议禁止 AJP 端口访问。禁用的方式是在 server.xml 中注释以下行:


<!--<Connector port="8329" protocol="AJP/1.3" redirectPort="8443" />-->
复制代码

关闭 WAR 包自动部署

默认 Tomcat 开启了对 WAR 包的热部署的。笔者建议关闭自动部署,以防止 WAR 被恶意替换后导致的网站挂马。关闭 WAR 包自动部署的方式在修改 server.xml 中的


   <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
复制代码


改成


<Host name="localhost"  appBase="webapps" unpackWARs="false" autoDeploy="false">
复制代码

自定义错误页面

通过自定义错误页面,可以防止在发生未处理的异常时导致的信息泄露。自定义错误页面的方式是,编辑 web.xml,在标签上添加以下内容:


<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>
复制代码


本文内容来自作者图书作品《Linux 系统安全:纵深防御、安全扫描与入侵检测》,点击购买


2019-08-25 09:007334

评论

发布
暂无评论
发现更多内容

渗透率不到5%,低代码怎么就不受企业待见

代码生成器研究

低代码技术之争:表单驱动和模型驱动,谁更能代表未来的方向?

代码生成器研究

一切为了应用!九章云极DataCanvas大模型系列成果重磅发布!

九章云极DataCanvas

在线协作新选择!5款风靡全球的白板软件盘点。

彭宏豪95

职场 科技 在线白板 在线协作 效率软件

视频素材传输慢?大文件传输软件一步到位

镭速

大文件传输 大文件传输软件

滴滴、阿里云、语雀相继宕机,损失巨大,软件的高可用失效了么?

极狐GitLab

阿里云 高可用 滴滴 geo

低代码开发前景如何,大家都真的看好低代码开发么?

代码生成器研究

瑞云科技参与《数字孪生世界白皮书》编写,实时云渲染助力数字孪生

3DCAT实时渲染

数字孪生 云渲染 实时渲染

比亚迪面试,全程八股!

王磊

Java 面试

PingCAP 荣获亚马逊云科技 2023 年度合作伙伴奖项

编程猫

一款LED段码显示屏驱动芯片方案

芯动大师

如何整合淘宝/天猫购物车 API?

技术冰糖葫芦

API 文档

8个程序员常用的开发工具,各位老铁请收好!

伤感汤姆布利柏

低代码 开发工具

程序员,你会尝试一门新的编程语言吗?

代码生成器研究

程序员的护城河是什么 ?

代码生成器研究

【重磅合作】九章云极DataCanvas公司与生态伙伴强强联手,构建人工智能强生态!

九章云极DataCanvas

TableAgent:首个国产可私有部署的企业级Code Interpreter

九章云极DataCanvas

Raft理论篇

Geek_44385e

如何获取淘宝/天猫添加到购物车 API 接口

技术冰糖葫芦

API】

教育行业如何用技术推动用户增长

Onegun

小程序 在线教育 在线学习

华为全屋智能5.0,无为而“智”

脑极体

AI

TuGraph Analytics云原生部署:基于K8S Operator的轻量级作业启动方案

TuGraphAnalytics

云原生 图数据库 图计算 K8s Operator

编程到底难在哪里?

代码生成器研究

SQL HAVING 子句详解:在 GROUP BY 中更灵活的条件筛选

小万哥

MySQL 数据库 程序员 sql 后端开发

“通识+产业”大模型,“Alaya元识”的赋能路径

九章云极DataCanvas

srm供应商、在线采购及询比价管理系统(源码)

金陵老街

探索低代码之路

互联网工科生

软件开发 低代码 JNPF

编程需要天分吗?

代码生成器研究

2D智能化标注,MatrixGo平台的宝藏功能

澳鹏Appen

数据标注 交互式标注 2D标注

Linux系统安全(九):Tomcat 安全_软件工程_胥峰_InfoQ精选文章