热门标签 | 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

更多



推荐阅读
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 新浪微博热搜暂停更新;即刻APP回归;Android 11 Beta版发布 | 科技新闻速递
    为您带来最新的科技资讯,涵盖社交媒体动态、软件更新及行业重大事件。CSDN携手您共同关注科技前沿。 ... [详细]
  • 探讨密码安全的重要性
    近期,多家知名网站如CSDN、人人网、多玩、开心网等的数据库相继被泄露,其中大量用户的账户密码因明文存储而暴露无遗。本文将探讨黑客获取密码的常见手段,网站如何安全存储用户信息,以及用户应如何保护自己的密码。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • ArcBlock 发布 ABT 节点 1.0.31 版本更新
    2020年11月9日,ArcBlock 区块链基础平台发布了 ABT 节点开发平台的1.0.31版本更新,此次更新带来了多项功能增强与性能优化。 ... [详细]
  • Spring Security基础配置详解
    本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 最新版 EasyCriteria 3.0 已正式上线,该版本经过全面重构,带来了多项性能优化与功能增强。更多详情请参阅官方文档:http://uaihebert.com/?p=1898 ... [详细]
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社区 版权所有