Tomcat 十大安全优化方法(详解版)

目录

1 talnet管理端口保护

2 AJP连接端口保护

3 禁用管理器

4 降权启动

5 控制文件列表的访问

6 隐藏版本信息

7 server header重写

8 限制IP访问

9 修改脚本权限

10 访问日志格式规范


1 talnet管理端口保护

配置内容

(1)修改默认8005管理端口(要求:在8000~8999之间)

(2)修改shutdown指令为其他字符串。

配置: 

以我的为例,我的Tomcat安装在application目录下。

vi /application/tomcat/conf/server.xml

将 <Server port="8005" shutdown="SHUTDOWN"> 中的8005shutdown修改即可,例如:<Server port="8123" shutdown="mortal">。

2 AJP连接端口保护

配置内容

(1)修改默认的AJP 8009端口(要求:在8000~8999之间)

(2)限制AJP端口访问的权限为线上机器(iptables规则)

【防止线下的测试流量被转发到Tomcat服务器端】

配置

vi /application/tomcat/conf/server.xml

将port="8009"中8009修改即可,例如:port="8234"。

3 禁用管理器

配置内容

(1)删除Tomcat目录下的/conf/tomcat-users.xml文件,重启Tomcat后会自动生成新文件

(2)删除Tomcat目录下的/webapps目录下所有内容。

(3)将Tomcat应用根目录配置为Tomcat安装目录以外的目录。

【Tomcat管理端如果被黑客攻破,将会获取服务器的控制权,后果不敢想象!】

配置

rm -rf /application/tomcat/conf/tomcat-users.xml
rm -rf /application/tomcat/webapps/*
vi /application/tomcat/conf/server.xml

将<Host name="localhost"  appBase="webapps" 中的webapps修改即可,例如:<Host name="localhost"  appBase="/application/test/webapps"。

【要求修改后的目录必须存在!不存在则使用mkdir -p命令创建】

4 降权启动

配置内容

降低Tomcat启动用户的目录访问权限(必须为非root权限)

【避免Tomcat服务被入侵时,直接获取高级用户权限,后果极其严重!】

配置

(1)创建用户

useradd tomcat

(2)新建目录

mkdir -p /home/tomcat

(3)将原本的Tomcat复制到新创建的目录下并改名为tomcat_1

cp -a /application/tomcat/ /home/tomcat/tomcat_1

(4)修改属组和属主

chown -R tomcat:tomcat /home/tomcat/tomcat_1/

(5)通过普通用户将新生成的tomcat_1运行起来

su -c '/home/tomcat/tomcat_1/bin/startup.sh' tomcat

 【关闭使用 su -c '/home/tomcat/tomcat_1/bin/shutdown.sh' tomcat 命令即可】

5 控制文件列表的访问

配置内容

修改Tomcat目录下的 /conf/web.xml 文件中的default部分。

【true表示允许列出目录文件,false表示不列出目录文件】

配置

vi /application/tomcat/conf/web.xml

默认就是false,不需要修改。

6 隐藏版本信息

配置内容

(1)修改Tomcat目录下的 /conf/web.xml 文件中的403、404、500等错误页面。

(2)修改Tomcat应用程序目录下的 WEB-INF/web.xml 文件中配置进行错误页面的重定向。(在Tomcat安装目录中,webapps是放置web应用的目录。在Tomcat的webapps目录下,针对每个web应用程序都有一个目录,例如:在 webapps 下新建一个名为 myapp 的目录,那么 myapp 目录下的 WEB-INF 目录就是存放 Web 应用程序的配置文件和类文件的目录。WEB-INF 目录下的 web.xml 是该web应用的核心配置文件,其他在WEB-INF/classes和WEB-INF/lib下的文件则是该web应用程序所使用的类和jar包。)

【避免出现错误时错误页面暴露出服务器或者版本信息,还必须确保修改后的重定向页面必须存在】

配置

vi /application/tomcat/conf/web.xml

在文件最下方</web-app>上面添加如下内容:

	<error-page><error-code>403</error-code><location>/forbidden.jsp</location></error-page><error-page><error-code>404</error-code><location>/force.jsp</location></error-page><error-page><error-code>500</error-code><location>/mortal.jsp</location></error-page>

其中网站发布目录的根目录下面(Tomcat中webapps/)必须存在forbidden.jspforce.jspmortal.jsp

7 server header重写

配置内容

在Connector参数中加入server配置。

【修改HTTP响应中的Server头来重写Tomcat服务器的标识,重启Tomcat之后,相应的HTTP响应中的Server头就会被重写为你设置的标识。】

配置

vi /application/tomcat/conf/server.xml

Connector参数:

在其中添加如下内容:

server=”myweb-server”

添加完成后保存退出即可。

8 限制IP访问

配置内容

通过配置,限制IP的访问来源。

【配置信任IP的白名单,同时拒绝非白名单IP的访问。】

配置

修改Tomcat主配置文件server.xml

vi /application/tomcat/conf/server.xml

host参数下面添加如下内容:

<Context path="" docBase="/application/tomcat/webapps/test" debug="0" reloadable="false" crossContext="true"/>
<Value className=”org.apache.catalina.values.RemoteAddrValue” allow=”192.168.10.123,192.168.124*” deny=”*.*.*.*”/>
</Context>

 添加完毕后保存退出。

9 修改脚本权限

配置内容

去除其他用户对Tomcat目录下的bin目录下的文件(例如:shutdown.shstartup.shcatalina.sh等)的可执行权限。

【防止其他用户有启动/停止Tomcat的权限】

配置

chmod -R 774 /application/tomcat/bin/*

10 访问日志格式规范

配置内容

开启Tomcat默认访问日志中RefererUser-Agent记录。

【一旦出现安全问题能够更好的根据日志进行问题排查和解决】

配置

vi /application/tomcat/conf/server.xml

%b后添加如下内容:

%{Referer}i %{User-Agent}i %D" resolveHosts="false"

添加完成后,保存退出即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIA-H12-811题目解析(3)

1、【单选题】 以下关于路由器的描述&#xff0c;说法错误的是&#xff1f; 2、【单选题】某网络工程师在输入命令行时提示如下信息&#xff1a;Error:Unrecognized command foun at position.对于该提示信息说法正确的是&#xff1f; 3、【单选题】如下图所示的网络&#xf…

【Axure RP9】的详细安装及Axure入门应用

目录 一 Axure入门安装 1.1 Axure是什么? 1.2 Axure应用场景 1.3 Axure安装 1.3.1 汉化 1.3.2 授权 二, Axure应用 1.1 Axure软件界面概述 1.2 Axure的应用 1.2.1备份 1.2.2 视图显示及网格设置 1.2.3 生成HTML文件 1.2.4 备注说明 一 Axure入门安装 1.1 Axure…

搭建你的知识付费小程序平台:源码解析与技术实现

知识付费小程序平台在当今数字化时代扮演着越来越重要的角色&#xff0c;为教育者和学习者提供了一个灵活、便捷的学习环境。本文将以关键词“知识付费小程序源码”为基础&#xff0c;探讨如何搭建一个功能强大的知识付费小程序平台&#xff0c;并提供一些基础的技术代码示例。…

Elasticsearch的 8.x常用api汇总

ES的查询语法比较复杂,对于初学者需要在不断练习中才会逐渐掌握,本文汇总了ES各种查询语法以及常用api,可以作为新手的实用笔记 首先,安装 Kibana! 下载Elasticsearch,官方下载页面;Elasticsearch 参考,官方文档;<

湖南财信:灰盒测试筑牢安全防线,保障差异化金融服务体系建设

湖南财信是国有独资公司&#xff0c;湖南省唯一的省级地方金融控股公司、省属国有大型骨干企业。湖南财信坚持金融科技战略&#xff0c;以数字化建设为驱动&#xff0c;创新融资服务手段&#xff0c;逐步打造出差异化产品与数字化服务体系&#xff0c;全方位、多维度推动金融服…

Android通过listview实现输入框自定义提示栏(代替AutoCompleteTextView自动完成文本框)

效果图 背景 本人因为一些需求初次接触android&#xff0c;需要实现一个类似android自带的AutoCompleteTextView&#xff08;自动完成文本框&#xff09;&#xff0c;但和其不同的是通过后端接口直接筛选数据&#xff08;自己的分词处理规则&#xff09;&#xff0c;然后返回前…

2023,真人漫改走上IP高地

你能接受自己的纸片人老公/老婆变成了真人吗&#xff1f; 无论大家能不能接受&#xff0c;真人漫改都已经成为了影视行业的新趋势&#xff0c;而阅文集团收购腾讯动漫的举措&#xff0c;无疑是为漫改剧添了一把火。 在阅文宣布以6亿人民币的价格收购腾讯动漫旗下的相关业务以…

HTTP 503错误:服务不可用,原因及解决方案

在Web开发中&#xff0c;HTTP状态码是用于表示Web服务器响应的各种状态。其中&#xff0c;HTTP 503错误表示服务不可用&#xff0c;这意味着服务器暂时无法处理请求。这个错误通常是由于服务器过载、维护或其他原因导致的。 原因&#xff1a; 服务器过载&#xff1a;当服务器…

电脑自动关机怎么设置?

电脑自动关机怎么设置&#xff1f;如果你是一名上班族&#xff0c;工作忙起来很多事情都会忘记做&#xff0c;有时候忙到很晚后紧急下班&#xff0c;就会忘记给电脑关机&#xff0c;电脑如果经常不关机&#xff0c;那么电脑就会超负荷的运转&#xff0c;大家都知道电脑的寿命是…

[Linux] Tomcat部署和优化

一、Tomcat相关知识 1.1 Tomcat的简介 Tomcat 是 Java 语言开发的&#xff0c;Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器&#xff0c;是 Apache 软件基金会的 Jakarta 项目中的一个核心项目&#xff0c;由 Apache、Sun 和其他一些公司及个人共同开发而成。 …

linux 查看服务启动时间

文章目录 linux 查看服务启动时间参数解析 linux 查看服务启动时间 [root104 ~]# ps -o lstart -p ps -ef |grep -v grep |grep "zookeeper"|awk {print$2}STARTED Fri Dec 15 16:54:10 2023参数解析 linux 命令中 ps -ef 详解 ps -ef表示查看全格式的进程。 ps …

maven工程中读取resources中的资源文件

maven工程的代码布局如下&#xff1a;在resources下面有一个资源文件test.properties&#xff0c;现在的目标要在Java代码中读取该资源文件中的内容。 test.properties资源文件的内容如下&#xff1a; Java代码如下&#xff1a; package com.thb;import java.io.BufferedR…

Star 4.1k!Gitee GVP开源项目!新一代桌面应用开发框架 ElectronEgg!

前言 随着现代技术的快速升级迭代及发展&#xff0c;桌面应用开发已经变得越来越普及。然而对于非专业桌面应用开发工程师在面对这项任务时&#xff0c;可能会感到无从下手&#xff0c;甚至觉得这是一项困难的挑战。 本篇文章将分享一种新型桌面应用开发框架 ElectronEgg&…

微软microsoft推出了最新的小型但强大的开源语言AI模型Phi-2

微软推出了最新的小型开源语言模型 Phi-2。该模型只有 27 亿个参数&#xff0c;却能超过比它大 25 倍的模型的性能。Phi-2 是微软 Phi 项目的一部分&#xff0c;旨在制作小而强大的语言模型。该项目包括 13 亿参数的 Phi-1&#xff0c;据称在 Python 编码方面实现了最先进的性能…

十几个软件测试实战项目【外卖/医药/银行/电商/金融】

项目一&#xff1a;ShopNC商城 项目概况&#xff1a; ShopNC商城是一个电子商务B2C电商平台系统&#xff0c;功能强大&#xff0c;安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城&#xff0c;系统PC后台是基于ThinkPHP MVC构架开发的跨…

网站服务器/域名/备案到底有什么关联?

​  在一个网站的组成中&#xff0c;网站服务器、域名、备案这几个要素是要被常提到的。在谈及三者关联之前&#xff0c;我们先了解下三者的各自概念。 域名&#xff1a;它是网站的唯一标识符&#xff0c;通俗理解来说就是用户在浏览器地址栏中输入的网址。一般来说&#xff…

迅为RK3588开发板瑞芯微国产化工业ARM核心板AI人工智能

性能强 iTOP-3588开发板采用瑞芯微RK3588处理器&#xff0c;是全新一代AloT高端应用芯片&#xff0c;采用8nm LP制程&#xff0c;搭载八核64位CPU&#xff0c;四核Cortex-A76和四核Cortex-A55架构&#xff0c;主频高达2.4GHz&#xff0c;8GB内存&#xff0c;32GB EMMC。 四核心…

2023.12.15 FineBI与kettle

1.结构化就是可以用schema描述的数据,就是结构化数据,能转为二维表格, 如CSV,Excel, 2.半结构化就是部分可以转换为二维表格,如JSON,XML 3.非结构化数据,就是完全无法用二维表格表示的数据,如Word文档,Mp4,图片,等文件. kettle的流程 新建转换-构建流图-配置组件-保存运行 使…

Java开发工具积累(符合阿里巴巴手册规范)

文章目录 一、命名规约二、集合篇1. 栈、队列、双端队列2. List的升序倒序3. Map的升序降序4. 二维数组排序5. 集合之间的转换6. Map键值对遍历 三、并发篇1. 创建线程池2. ThreadLocal的使用 四、时间篇1. LocalDateTime的使用2. String、Date、LocalDateTime转换 五、控制块1…

【Hive】——DDL(TABLE)

1 查询指定表的元数据信息 如果指定了EXTENDED关键字&#xff0c;则它将以Thrift序列化形式显示表的所有元数据。 如果指定了FORMATTED关键字&#xff0c;则它将以表格格式显示元数据。 describe formatted student&#xff1b;2 删除表 如果已配置垃圾桶且未指定PURGE&…