前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【安全加固】Apache Tomcat服务安全加固

【安全加固】Apache Tomcat服务安全加固

原创
作者头像
腾讯云-MSS服务
发布于 2021-01-11 10:12:14
发布于 2021-01-11 10:12:14
3K00
代码可运行
举报
文章被收录于专栏:安全加固安全加固
运行总次数:0
代码可运行

1. 配置用户最小权限

Tomcat启动用户权限必须为非root权限、尽量降低tomcat启动用户的目录访问权限。

2. 网络访问控制

(1)您的业务不需要使用 Tomcat 管理后台管理业务代码,建议您使用安全组防火墙功能对管理后台 URL 地址进行拦截,或直接将 Tomcat 部署目录中 webapps 文件夹中的 manager、host-manager 文件夹全部删除,并注释 Tomcat 目录中 conf 文件夹中的 tomcat-users.xml 文件中的所有代码。

(2)您的业务系统确实需要使用 Tomcat 管理后台进行业务代码的发布和管理,建议为 Tomcat 管理后台配置强口令,并修改默认 admin 用户,且密码长度不低于10位,必须包含大写字母、特殊符号、数字组合。

3. 开启 Tomcat 的访问日志

修改 conf/server.xml 文件,将下列代码取消注释:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>

启用访问日志功能,重启 Tomcat 服务后,在 tomcat_home/logs 文件夹中就可以看到访问日志。

4. Tomcat 默认帐号安全

修改 Tomcat 安装目录 conf 下的 tomcat-user.xml 文件,重新设置复杂口令并保存文件。重启 Tomcat 服务后,新口令即生效。

5. 修改默认访问端口

修改 conf/server.xml 文件把默认的 8080 访问端口改成其它端口。

6. 重定向错误页面

修改访问 Tomcat 错误页面的返回信息,在 webapps\manger 目录中创建相应的401.html、404.htm、500.htm 文件,然后在 conf/web.xml 文件的最后一行之前添加下列代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <error-page>  
 <error-code>401</error-code> 
 <location>/401.htm</location> 
 </error-page> 
 <error-page> 
  <error-code>404</error-code> 
 <location>/404.htm</location> 
 </error-page> 
 <error-page> 
 <error-code>500</error-code> 
  <location>/500.htm</location> 
 </error-page>

7. 禁止列出目录

在web.xml文件中,防止直接访问目录时由于找不到默认页面,而列出目录下的文件的情况。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<param-name>listings</param-name>
 <param-value>false</param-value>

8. 删除文档和示例程序

删除 webapps 目录下的 docs、examples、manager、ROOT、host-manager 文件夹。

9、不安全的HTTP方法

编辑tomcat配置文件/conf/web.xml文件,查看是否禁用PUT、DELETE等危险的HTTP 方法,查看org.apache.catalina.servlets.DefaultServlet是否存在如下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <init-param>
 <param-name>readonly</param-name>
 <param-value>false</param-value>
 </init-param> 

如果存在,则将false修改为true。readonly参数默认是true,即不允许delete和put操作。

10、HTTP加密协议

使用HTTPS协议登录tomcat服务器管理页面。

(1)用JDK自带的keytool工具生成一个证书:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 $JAVA_HOME/bin/keytool -genkey –alias tomcat –keyalg RSA -keystore /path/to/my/keystore

其中目录:/path/to/my需要用户自行创建。

(2)改tomcat安装目录下/conf/server.xml配置文件,更改为使用HTTPS方式,增加如下行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <Connector classname="org.apache.catalina.http.HttpConnector"
 port="8443" protocol="HTTP/1.1" minProcessors="5"
 SSLEnabled="true"
  maxprocessors="100"
 enableLookups="true" acceptCount="10" debug="0"
 scheme="https"
 Factory_classname="org.apache.catalina.SSLServerSocketFactory"
 secure="true"
  clientAuth="false"
 keystoreFile="/path/to/my/keystore"
 keystorePass="123qwe"
 sslProtocol="TLS"/>

其中keystorePass的值为生成keystore时输入的密码。

(3)重新启动tomcat服务

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
tomcat安全加固
【加固方法】删除webapps/docs、examples、manager、ROOT、host-manager
程序员同行者
2018/07/24
1K0
Tomcat卷五---Web 应用配置,管理配置和JVM配置
web.xml 是web应用的描述文件, 它支持的元素及属性来自于Servlet 规范定义 。
大忽悠爱学习
2022/05/09
6730
Tomcat卷五---Web 应用配置,管理配置和JVM配置
Tomcat安全加固与防护实践(6个方法)
1) 出于稳定性考虑,不建议进行跨版本升级,如果之前是6.0系列版本,最好还是使用该系列的最新版本。
牛油果
2019/07/31
2.5K0
Tomcat安全加固与防护实践(6个方法)
Tomcat优化实例详解
以下配置如无特别指明,默认为在/usr/local/tomcat8/conf/server.xml文件中配置
星哥玩云
2022/07/27
3430
企业级Tomcat安全管理优化方案
telnet管理端口保护 1. 修改默认的8005管理端口为不易猜测的端口(大于1024); <Server port="8527" shutdown="dangerous"> 2. 修改SHUTDOWN指令为其他字符串; ajp连接端口保护 1. 修改默认的ajp 8009端口为不易冲突的大于1024端口; 2. 通过iptables规则限制ajp端口访问的权限仅为线上机器; <Connector port="8528" protocol="AJP/1.3" /> 保护此端口的目的在于防止线下的测试流量
863987322
2018/01/24
8630
Tomcat安全加固与性能优化
为了更好的指导部署Tomcat应用容器,保证服务的安全稳定高性能的运行,需要对其进行加固和优化; 本次进行Tomcat容器调优加固主要从以下几个部分:
全栈工程师修炼指南
2022/09/29
2.5K0
Tomcat安全加固与性能优化
详解tomcat 9 安全加固方法
关闭后,bin/shutdown.sh 就失效了,提示SEVERE: No shutdown port configured. Shut down server through OS signal. Server not shut down.
IT运维技术圈
2022/08/18
2.1K0
DevOps: Tomcat安全管理规范
随着公司内部使用Tomcat作为web应用服务器的规模越来越大,为保证Tomcat的配置安全,防止信息泄露,恶性攻击以及配置的安全规范,特制定此Tomcat安全配置规范。
Freedom123
2024/03/29
1280
DevOps: Tomcat安全管理规范
安全服务之安全基线及加固(四)Tomcat篇
安全服务工程师大家应该都知道,对于他的岗位职责你可能会说不就是渗透测试啊、应急响应嘛.....实际上正式一点的企业对于安服的要求是包括了漏洞扫描、安全基线检查、渗透测试、安全加固、日志分析、恶意代码检查、应急响应、安全加固等差不多十个方面的内容的。内容多吗?我也觉得多!
Power7089
2020/07/27
2.6K0
安全服务之安全基线及加固(四)Tomcat篇
Tomcat 安全基线检查
描述 tomcat-manger是Tomcat提供的web应用热部署功能,该功能具有较高权限,会直接控制Tomcat应用,应尽量避免使用此功能。如有特殊需求,请务必确保为该功能配置了强口令 加固建议 编辑Tomcat根目录下的配置文件conf/tomcat-user.xml,修改user节点的password属性值为复杂密码, 密码应符合复杂性要求:
咻一咻
2020/05/29
1.9K0
Tomcat下部署vue项目[history模式]
第一种: IP+端口直接访问的方式,如 http://192.168.1.107:8080/ 第二种:IP+端口+项目名,如 http://192.168.1.107:8080/saas/
leader755
2022/03/07
3.4K0
Tomcat下部署vue项目[history模式]
Tomcat_04_安全优化
1. 配置部分(**${ CATALINA_HOME }conf/server.xml**)
Cyylog
2020/08/19
4080
Tomcat安全配置小技巧
1.版本:应该从Tomcat官方提供的下载页面下载最新稳定版本,注意不要下载beta版本。Tomcat官网地址为: http://tomcat.apache.org/ 2.使用非root启动:Tomcat禁止以系统root账户启动,需新建普通用户用于启动Tomcat。检查tomcat启动进程账户可以通过ps aux | grep tomcat命令查看。 直接使用非root用户启动tomcat,适用tomcat5/6/7/8,只能监听1024以上的端口,如8080。操作方案步骤如下: 第一步:新建用户 use
腾讯云安全
2018/06/12
2K0
企业级Tomcat部署实践及安全调优
惨绿少年
2017/12/27
2.3K0
企业级Tomcat部署实践及安全调优
Tomcat 知识点总结
Tomcat 学习笔记。本文相关配置均为 tomcat8 下,其他版本可能略有不同。如有错误请多包涵。
huofo
2022/03/17
9970
Tomcat 知识点总结
Tomcat调优(不定期更新)
之后会多出两个文件夹 进入org/apache/catalina/util编辑配置文件ServerInfo.properties 修改为
仙人技术
2020/04/29
9720
CVE-2025-24813:Apache Tomcat远程代码执行漏洞
Apache Tomcat 是一个开源的、轻量级的 Java Servlet 容器和 Web 服务器,由Apache软件基金会开发和维护,支持运行 Java Servlet、JavaServer Pages (JSP) 和其他基于 Java 的 Web 应用程序,广泛用于开发和部署企业级 Web 应用。
Timeline Sec
2025/03/28
4330
CVE-2025-24813:Apache Tomcat远程代码执行漏洞
Tomcat 的安装与优化
Tomcat服务器是一个免费的开源web应用服务器,属于轻量级应用服务器,在中小型系统和并发用户不是很多的场合中被普遍使用,是开发和测试JSP程序的首选。一般来说,Tomcat虽然和apache或者Nginx这些web服务器一样,具有处理HTML页面的功能,然而由于其处理静态页面的能力远不如apache或者Nginx,所以Tomcat一般是作为一个servlet和JSP容器,单独运行在后端。
小手冰凉
2020/02/12
5850
玩转 Tomcat 配置必备的 10 个小技巧!
现在开发Java Web应用,建立和部署Web内容是一件很简单的工作。使用Jakarta Tomcat作为Servlet和JSP容器的人已经遍及全世界。Tomcat具有免费、跨平台等诸多特性,并且更新得很快,现在非常的流行。 你所需要做的就是:按照你的需求配置Tomcat,只要你正确配置,Tomcat一般都能适合你的要求。下面是一系列关于Tomcat的配置技巧,希望对你有所帮助。
好好学java
2019/11/12
6830
Tomcat多实例及优化
首先要回答一个问题,为什么要用单机多实例? 在不宕机的情况下,webapps里面存在多个项目,可能由于其中一个项目过度使用内存或者其他不确定的因素使得tomcat挂了,那么同一tomcat下的项目也会一同挂了;而使用不同的tomcat,同一台服务器下,每个tomcat的进程是不一样的额,一个项目出现问题tomcat挂了,那么由于是在不同进程,其他项目不会影响的。   还有一个问题就是不同tomcat使用了不同端口,最后域名只有一个怎么分配? 其实这个使用nginx的反向代理,根据请求的前缀,代理到相应的tomcat项目服务端口对应的nginx server即可。 其本质就是复制多个tomcat目录,然后修改为不同的端口并启动 代码一致,但是公用一个数据库
王先森sec
2023/04/24
3840
相关推荐
tomcat安全加固
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验