Tomcat服务安全加固

Tomcat服务默认启用了管理后台功能,使用该后台可直接上传 war 文件包对站点进行部署和管理。由于运维人员的疏忽,可能导致管理后台存在空口令或者弱口令的漏洞,使得黑客或者不法分子可以利用该漏洞直接上传 Webshell 脚本导致服务器沦陷。

通常 Tomcat 后台管理的 URL 地址为 http://iP:8080/manager/html/, 如下图所示:

黑客通过猜解到的口令登录 Tomcat 管理后台后,可以上传 Webshell 脚本导致服务器被入侵。

安全加固方案

由于此类型漏洞可能对业务系统造成比较严重的危害,建议您针对 Tomcat 管理后台进行以下安全加固配置。

1. 网络访问控制

  • 如果您的业务不需要使用 Tomcat 管理后台管理业务代码,建议您使用安全组防火墙功能对管理后台 URL 地址进行拦截,或直接将 Tomcat 部署目录中 webapps 文件夹中的 manager、host-manager 文件夹全部删除,并注释 Tomcat 目录中 conf 文件夹中的 tomcat-users.xml 文件中的所有代码。
  • 如果您的业务系统确实需要使用 Tomcat 管理后台进行业务代码的发布和管理,建议为 Tomcat 管理后台配置强口令,并修改默认 admin 用户,且密码长度不低于10位,必须包含大写字母、特殊符号、数字组合。

2. 开启 Tomcat 的访问日志

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

  1. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  2. prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>

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

3. Tomcat 默认帐号安全

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

4. 修改默认访问端口

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

5. 重定向错误页面

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

  1. <error-page>
  2. <error-code>401</error-code>
  3. <location>/401.htm</location>
  4. </error-page>
  5. <error-page>
  6. <error-code>404</error-code>
  7. <location>/404.htm</location>
  8. </error-page>
  9. <error-page>
  10. <error-code>500</error-code>
  11. <location>/500.htm</location>
  12. </error-page>

6. 禁止列出目录

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

在 web.xml 文件中,将<param-name>listings</param-name>改成<param-name>false</param-name>

7. 删除文档和示例程序

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

原文地址:https://www.cnblogs.com/rusking/p/9242589.html

时间: 2024-11-06 10:20:22

Tomcat服务安全加固的相关文章

linux下tomcat服务的启动、关闭与错误跟踪

linux下tomcat服务的启动.关闭与错误跟踪,远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务: 1).启动tomcat服务 进入tomcat主目录下的bin目录,然后执行如下命令: ./startup.sh 2).关闭tomcat服务 进入tomcat主目录下的bin目录,然后执行如下命令: ./shutdown.sh 通过1)启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也就立即关闭了,通过以下命令可以作为linux服务一直运行 3).作为服务启

自动化运维—tomcat服务起停(mysql+shell+django+bootstrap+jquery)

项目简介: 项目介绍:自动化运维是未来的趋势,最近学了不少东西,正好通过这个小项目把这些学的东西串起来,练练手. 基础架构: 服务器端:web框架-Django 前端:html css jQuery bootstrap 脚本:shell 适用系统:redhat5.8/redhat6.6 平台已实现功能: 中间件和数据库软件的启停和状态检查 (tomcat,nginx,apache,oracle,mysql) 完整功能设计图: 效果图: 架构图(简要): 项目源码:https://github.c

Linux下tomcat服务

一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/local/tomcat/bin)1,启动tomcat服务方式一:直接启动 ./startup.sh方式二:作为服务启动 nohup ./startup.sh &方式三:控制台动态输出方式启动 ./catalina.sh run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务解释:

配置Tomcat服务

目前有很多网站使用jsp的程序编写,所以解析jsp的程序就必须要有相关的软件来完成.Tomcat就是用来解析jsp程序的一个软件,而JDK相当于是个容器. 一.安装JDK 直接进JDK官网选择正确的版本:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1.下载 [[email protected] ~]# cd /usr/local/src [[email protected]

CentOS7 下面使用systemctl 来管理tomcat服务

查看全部服务命令: systemctl list-unit-files --type service 查看服务 systemctl status name.service 启动服务 systemctl start name.service 停止服务 systemctl stop name.service 重启服务 systemctl restart name.service增加开机启动 systemctl enable name.service 删除开机启动 systemctl disable

Tomcat服务重启脚本

#此脚本适用于本地安装tomcat环境,操作脚本重启. [[email protected]_clent ~]# cat restart_tomcat.sh  #!/bin/bash function shutdown_tomcat () {     #tomcat_id=`jps | grep Bootstrap | awk '{print $1}'` tomcat_id=`lsof -i:8080 | awk 'NR==2''{print $2}'` if [ ! $tomcat_id ];

Tomcat服务无法开启,点击stat不一会就变成stopped

前天在学习J2EE方面技术时,运行一个调试示例,需要用到Tomcat服务,结果使用Myeclipse怎么也打不开服务.之后去尝试手动打开Tmcat服务也无法成功,一直弄了好几个小时.后来,问了一下隔壁宿舍的同学,不一会问题就解决了~ 具体问题和相关解决方法如下(当然这个方法不一定适应所有Tomcat无法开启的问题哟): 首先,当时我按照网上手动开启Tomcat服务方法步骤: 一.在cmd中install service.bat,注册tomcat服务 图一:找到Tomcat中service.bat

Vbs脚本定时判断及启动tomcat服务

说到tomcat服务,我们大家都会联系到apache,那apache和tomcat有什么区别呢,apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP.PHP)tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行,两者从以下几点可以比较的: 1.两者都是apache组织开发的 .2.两者都有HTTP服务的功能 .3.两者都是开源免费的 .当然对于一个java开发人员来

IDEA、Eclipse的详细安装配置及Tomcat服务集成介绍

说到开发工具,我们大家都知道每一个开发语言对会对应多个比较合适自己的开发工具,好的开发工具可以帮助提高写代码的效果及排错,比如拿java来说吧~最早及现在用的人最多的想必应该是eclipse了吧~那具体功能怎么样呢,对我一个新手来说没有资格评价了,最近看见有人用IDEA工具来编写代码,而且还说到IDEA工具比eclipse的效率高,而且好,于是我在网上找了一些关于idea和eclipse的对比文档,查看后,多少对idea有些触动,之前就会使用eclipse,可idea不会使用,所以就慢慢学吧~通