热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxtomcat安全设置,Tomcat安全加固方案(Linux)

一、Tomcat版本安全在不升级大版本的情况下,升级到最新稳定版本。1.Tomcat6.x:该版本已经于2016年12月31日停止支持,最

一、 Tomcat版本安全

在不升级大版本的情况下,升级到最新稳定版本。

1. Tomcat6.x:该版本已经于2016年12月31日停止支持,最新稳定版本为6.0.53,下载地址:https://archive.apache.org/dist/tomcat/tomcat-6/v6.0.53/bin/   由于该版本不再更新,建议如果条件允许,还是更新版本至Tomcat7.0.94,Tomcat6漏洞列表页面:http://tomcat.apache.org/security-6.html  。

二、 Tomcat服务降权

不使用root用户启动Tomcat,使用普通用户启动(所有操作均在root用户下)。

1. 创建普通用户hcy-manager,用户密码为Hcycom123$%^,命令如下:

groupadd -g 9916 hcy-manager

useradd -u 9916 -g hcy-manager -s /usr/sbin/nologin hcy-manager

2. 修改Tomcat目录文件用户权限,命令如下:

chown -R hcy-manager:hcy-manager apache-tomcat-6.0.53

chown -R hcy-manager:hcy-manager apache-tomcat-7.0.94

查看目录用户权限,验证是否修改成功

796f8d3329e042e15b06fb81f9143410.png

1. 修改Tomcat目录文件读写运行权限,命令如下:

chmod -R 700 apache-tomcat-6.0.53

chmod -R 700 apache-tomcat-7.0.94

查看目录读写权限,验证是否修改成

29541f02bc6f38b809faac5979beafc7.png

1. hcy-manager用户启动Tomcat(以Tomcat6为例,Tomcat7操作相同)

修改bin目录下的startup.sh和shutdown.sh文件,命令如下:

mv startup.sh startup_.sh

mv shutdown.sh shutdown_.sh

在bin目录下新建startup.sh和shutdown.sh文件,标黄部分自行替换,文件内容如下:

# startup.sh

#!/bin/bash

usermod -s /bin/bash hcy-manager

su - hcy-manager -c /opt/apache-tomcat-6.0.53/bin/startup_.sh

usermod -s /sbin/nologin hcy-manager

# startup.sh

#!/bin/bash

usermod -s /bin/bash hcy-manager

su - hcy-manager -c /opt/apache-tomcat-6.0.53/bin/shutdown_.sh

usermod -s /sbin/nologin hcy-manager

再次执行2、3步骤,然后使用root用户执行startup.sh和shutdown.sh进行启动和停止

8f4b8aacca69eee84f61aabbc8f448de.gif

一、 Tomcat端口保护

Tomcat默认启动三个端口,8080、8005、8009,8080是默认访问端口,8005是shutdown端口,8009是AJP端口

1. 修改默认8080端口

修改server.xml文件

修改前:

eddf3e5fa6199b51c167958d963f3531.png

1. 关闭AJP的8009端口

修改server.xml文件

8a6ede790ad5c502f257e27514e5c8bc.png

验证查看

重启Tomcat,查看默认端口已消失,只能查看到修改后的应用端口

禁用管理程序

1. 删除webapps目录下,除开发应用外的其它目录,包括:docs、examples、host-manager、manager和ROOT,执行命令:

rm -rf docs  examples  host-manager  manager  ROOT

2. 删除conf目录下tomcat-users.xml文件,执行命令:

rm -rf tomcat-users.xml

3. 清空Tomcat缓存work目录,执行命令:

rm -rf Catalina

4. 重启Tomcat验证

feffe137057ecf6bdfaf3ff7d57761c0.png

删除后是这样的:

3559e5fd88bf13566a2197f1734e806a.png

隐藏Tomcat版本信息查看当前版本信息,执行Tomcat的bin目录下的version.sh,结果如下:

b0262aab2f27df0723c3afd7802ee539.png

修改Tomcat版本信息,拷贝Tomcat目录下的lib文件夹中的catalina.jar文件到本地,使用压缩工具打开,直接修改,修改完成后直接保存至catalina.jar文件,具体步骤如下图:

5b3b2e5e4b01f2dfa3264e102180a180.png

保存修改 验证修改是否成功

关闭war包自动部署

默认 Tomcat 是开启了对war包的热部署的,为了防止被植入木马等恶意程序,因此我们要关闭自动部署。

1. 修改Tomcat下的conf文件夹下的server.xml文件

修改前为自动部署、自动解压war文件:

837e42c3bd46c3cb18adbf68c9feab6f.png

禁止目录文件自动列出

直接修改Tomcat下的conf目录下的web.xml文件,true为列出,false为不列出,请设置为false

4e495ad1d88fc588924778f591c5f3e6.png

多应用隔离

建议不要使用 Tomcat 的虚拟主机,推荐每个站点使用一个实例。即,可以启动多个 Tomcat,而不是启动一个 Tomcat 里面包含多个虚拟主机。因为 Tomcat是多线程,共享内存,任何一个虚拟主机中的应用崩溃,都会影响到所有应用程序。虽然采用多实例的方式会产生过多的开销,但至少保障了应用程序的隔离和安全。

查看conf目录下的server.xml文件,如果有多个Host标签对,则表示有多个虚拟主机,建议分开使用,开启多个Tomcat。

脚本权限回收

直接修改Tomcat下的bin目录下的所有执行脚本,执行命令:

chmod -R 700 /opt/tomcat/bin/*

查看结果,截图如下:

5e054847cfd8975ab19b88312cd23369.png

更多



推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
author-avatar
爱做梦的蓝梦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有