千家信息网

如何设置tomcat服务器安全

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关如何设置tomcat服务器安全,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 删除webapps目录下的所有文件,禁用tomc
千家信息网最后更新 2026年11月01日如何设置tomcat服务器安全

这期内容当中小编将会给大家带来有关如何设置tomcat服务器安全,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1. 删除webapps目录下的所有文件,禁用tomcat管理界面

rm -rf /usr/local/tomcat/apache-tomcat-9.0.1/webapps/*

2.注释或删除tomcat-users.xml文件内的所有用户权限:

3.隐藏版本信息,修改conf/server.xml


3.用户问题:

nginx,httpd 使用root用户启动守护80端口,子进程/线程会通过setuid(),setgid()两个函数切换到普通用户。即父进程所有者是root用户,子进程与多线程所有者是一个非root用户,这个用户没有shell,无法通过ssh与控制台登陆系统;
而Java 的JVM 是与系统无关的,是建立在OS之上的,使用什么用户启动Tomcat,那麽Tomcat 就会继承该所有者的权限。
这造成了一个问题,Linux系统小于1024的端口只有root可以使用,这也是Tomcat默认端口是8080。如果想使用80端口只能使用root启动Tomcat。这有带来了很多安全问题。

创建一个用户,只能用于启动tomcat:

groupadd -g 80 tomcat
adduser -o --home /tomcat --shell /sbin/nologin --uid 80 --gid 80 -c "Web server" tomcat
chown tomcat:tomcat -R /usr/local/tomcat/apache-tomcat-9.0.1/*
su - tomcat -c "/usr/local/tomcat/apache-tomcat-9.0.1/bin/startup.sh"

做一个端口映射,访问80时调用8080端口

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

取消跳转:

iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

4.关闭自动部署war

vim conf/server.xml

5.隐藏404出现的版本信息:

到lib下解压catalina.jar, jar xf catalina.jar

vim /usr/local/tomcat/apache-tomcat-9.0.1/lib/org/apache/catalina/util/ServerInfo.properties


6.更改关闭tomcat指令

server.xml中定义了可以直接关闭 Tomcat 实例的管理端口。我们通过 telnet 连接上该端口之后,输入 SHUTDOWN (此为默认关闭指令)即可关闭 Tomcat 实例(注意,此时虽然实例关闭了,但是进程还是存在的)。由于默认关闭Tomcat 的端口和指令都很简单。默认端口为8005,指令为SHUTDOWN 。需要将关闭指令修改复杂一点。


或者禁用8005端口

7.分离tomcat和项目用户

为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。因此我们要将 Tomcat 和项目的属主做分离,这样子,即便被搞,他也无法创建和编辑项目文件。

8.在conf/web.xml 添加如下配置

9.自定义错误页面

web.xml是在某一个应用下面的,他处理的应当是本应用的404,而http://localhost/访问的是tomcat自已的应用,那么这个web.xml配置就应当在webapp/Root/下面的应用来配了,
Root目录下面放着Tomcat的应用,把里面换成自已的就行了.
在/webapps/ROOT/WEB-INF/web.xml添加

在webapps目录下创建error.jsp文件

<%@ page contentType="text/html; charset=UTF-8" %><%@ page import="java.io.*" %><%@ page import="java.util.*" %>
404 page
<%  Enumeration attributeNames = request.getAttributeNames();  while (attributeNames.hasMoreElements())  {    String attributeName = attributeNames.nextElement();    Object attribute = request.getAttribute(attributeName);  out.println("request.attribute['" + attributeName + "'] = " + attribute);  }%>

exception.jsp文件

<%@ page contentType="text/html; charset=UTF-8" isErrorPage="true" %><%@ page import="java.io.*" %>
exception page
<%response.getWriter().println("Exception: " + exception); if(exception != null){  response.getWriter().println("
");  exception.printStackTrace(response.getWriter());  response.getWriter().println("
");} response.getWriter().println("
");%>

在浏览器测试自定义的错误页面:


定义会话超时时间及禁止列目录

上述就是小编为大家分享的如何设置tomcat服务器安全了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

端口 用户 文件 指令 应用 目录 进程 项目 安全 实例 所有者 系统 问题 服务器 服务 信息 内容 权限 版本 线程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 智网互联网科技 互联网科技公司怎么样 善班互联网科技 以房互联网科技 互联网女皇 腾讯科技 亿账通互联网科技 互联网科技宣传片 贵州叶脉互联网科技有限公司所属行业 崇明区互联网教育科技诚信经营 杭州壁岐互联网科技有限公司 国大互联网教育科技有限公司工作 中国互联网公司排名锤子科技 互联网公司高科技产品 互联网科技融合创新 下一代互联网重大应用科技园 广东鹅鹅鹅互联网科技有限公司 陕西九四连强互联网科技有限公司 互联网科技的前景 互联网 科技节活动 微视频大赛 互联网与科技 云信互联网科技有限公司 云电互联网科技 互联网金融监管科技 宁波青枫互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 合肥互联网科技公司公章图片 黑云互联网科技有限公司 北京品多多互联网科技有限公司 恒生互联网科技趋势
0