QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:007283

评论

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

程序员的护城河是什么 ?

代码生成器研究

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

代码生成器研究

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

九章云极DataCanvas

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

九章云极DataCanvas

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

编程猫

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

芯动大师

Mac写作工具:WonderPen for Mac最新 「终端激活」

加油,小妞!

WonderPen妙笔 WonderPen

TG Pro for mac温度和风扇速度控制工具

加油,小妞!

TG Pro 下载 TG Pro

简便的看图软件:Pixea激活版

胖墩儿不胖y

Mac软件 看图软件 看图工具

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

九章云极DataCanvas

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

3DCAT实时渲染

数字孪生 云渲染 实时渲染

Whimsical:在线协作必备工具!一文弄懂功能 | 使用场景 | 优势 | 替代软件推荐

彭宏豪95

效率工具 科技 在线白板 办公软件 在线协作

Flutter加固原理及加密处理

百度搜索内容HTAP表格存储系统

百度Geek说

大数据 百度搜索 存储技术 企业号11月PK榜

编程需要天分吗?

代码生成器研究

编程到底难在哪里?

代码生成器研究

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

代码生成器研究

月薪两万,大厂疯抢AI数据标注员

自象限

大模型

强大的音频标签编辑器 Mp3tag 免激活中文最新

mac大玩家j

Mac软件 音频处理工具 音频标签编辑器

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

九章云极DataCanvas

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

小万哥

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

gRPC C++快速编译与上手

王玉川

c++ gRPC 进程通信 Protocol Buffers

KaiwuDB 亮相中国国际供应链促进博览会

KaiwuDB

KaiwuDB 中国国际供应链促进博览会

CI/CD 最佳实践,让研发团队效率起飞!

极狐GitLab

DevOps 敏捷开发 持续集成 CI/CD 持续交付

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

代码生成器研究

Raft理论篇

Geek_44385e

探索DevOps文化

FunTester

Amazon CodeWhisperer 使用体验

亚马逊云科技 (Amazon Web Services)

Java Python 人工智能 云上探索实验室 Amazon CodeWhisperer

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