tomcat服务器安全设置方法

Tomcat是一个HTTP服务器,是Sun透过Java Community Process开发的、对广泛使用的Servlet和JavaServer Page(JSP)技术的正式参考实作。Servlet和JSP技术用于建构HTTP服务器应用程序。虽然Servlet技术中加入了许多特性(包括存取安全性、Session管理和执行绪控制)。JSP技术提供了一种处理动态生成的 HTML 页面的简便方法,这些 HTML 页面被直接编译成 Servlet 以用于快速执行时作业。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端口

<Server port="-1" shutdown="SHUTDOWN">

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.*" %>
<html>
<header>
<title>404 page</title>
<body>
<pre>
<%
  Enumeration<String> attributeNames = request.getAttributeNames();
  while (attributeNames.hasMoreElements())
  {
    String attributeName = attributeNames.nextElement();
    Object attribute = request.getAttribute(attributeName);
  out.println("request.attribute['" + attributeName + "'] = " + attribute);
  }
%>
</pre>

exception.jsp文件

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

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

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

好了这篇文章就介绍到这了,希望能帮助到你。

(0)

相关推荐

  • web安全—tomcat禁用WebDAV或者禁止不需要的 HTTP 方法

    WebDAV WebDAV (Web-based Distributed Authoring and Versioning)是基于 HTTP 1.1 的一个通信协议.它为 HTTP 1.1 添加了一些扩展(就是在 GET.POST.HEAD 等几个 HTTP 标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到 Web Server 上,并且在写文件时候可以对文件加锁,写完后对文件解锁,还可以支持对文件所做的版本控制.这个协议的出现极大地增加了 Web 作为一种创作媒体对于我们的价值

  • Tomcat服务器 安全设置第1/3页

    另外,由于其功能比较单纯需要我们进一步地进行设置.本机将从安全和功能两方面谈谈基于Tomcat的Web服务器的部署,希望对大家有所帮助. 环境描述 OS:Windows Server 2003 IP:192.168.1.12 Tomcat:6.0.18 1.安全测试 (1).登录后台 在Windows Server 2003上部署Tomcat,一切保持默认.然后登录Tomcat后台,其默认的后台地址为: http://192.168.1.12:8080/manager/html.在浏览器中输入该

  • Tomcat安全设置 win2003 下tomcat权限限制

    实验环境:microsoft windows server 2003 Service Pack 2, tomcat 6.0.18 1.新建一个tomcat管理用户: 2.给tomcat 用户启动tomcat服务: 3.设置tomcat以tom启动: 4.再给tomcat安装目录和jdk目录相应的权限: tocat目录:各工作目录的权限要设置好,否则即使tomcat能启动,也不能正常运行,这里我给了"完全控制",可以设置更细一点. jdk目录: 经过设置之后,即使不小心被上传了jsp木马

  • 基于Tomcat安全配置与性能优化详解

    Tomcat 是 Apache软件基金会下的一个免费.开源的WEB应用服务器,它可以运行在 Linux 和 Windows 等多个平台上,由于其性能稳定.扩展性好.免费等特点深受广大用户喜爱.目前,很多互联网应用和企业应用都部署在 Tomcat 服务器上,比如我们公司,哈. 之前我们 tomcat 都采用的是默认的配置,因此在安全方面还是有所隐患的.上周对测试环境的所有服务器的tomcat都做了安全优化,其间也粗略做了一些性能优化,这里就简单记录分享下! 一.版本安全 升级当前的tomcat版本

  • tomcat 安全规范(tomcat安全加固和规范)

    tomcat是一个开源Web服务器,基于Tomcat的Web运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐.不过,在默认配置下其存在一定的安全隐患,可被恶意攻击.以下是一些安全加固的方法: 版本安全 升级到最新稳定版,出于稳定性考虑,不建议进行跨版本升级. 服务降权 不要使用root用户启动tomcat,使用用普通用户启动Tomcat,集群内用户名统一UID 端口保护 1 更改tomcat管理端口8005 ,此端口有权限关闭tomcat服务,但要求端口配置在8000~89

  • tomcat服务器安全设置方法

    Tomcat是一个HTTP服务器,是Sun透过Java Community Process开发的.对广泛使用的Servlet和JavaServer Page(JSP)技术的正式参考实作.Servlet和JSP技术用于建构HTTP服务器应用程序.虽然Servlet技术中加入了许多特性(包括存取安全性.Session管理和执行绪控制).JSP技术提供了一种处理动态生成的 HTML 页面的简便方法,这些 HTML 页面被直接编译成 Servlet 以用于快速执行时作业.Tomcat除了上述的两种技术保

  • Ubuntu下配置Tomcat服务器以及设置自动启动的方法

    既然是Ubuntu,那就要利用好"新立得软件包管理器"了. 1.Tomcat需要jdk的支持,所以先说一下jdk的安装,已经安装好了jdk的可以直接看第2条. 1.1安装jdk 在新立得中搜索"sun-java",安装最新的jdk,比如"sun-java6-jdk",然后点击应用就自动安装完成了. 1.2配置jdk环境变量 安装是自动的,但是配置需要自己动手了. 1.2.1修改用户环境变量 $ vi /home/fancy(你的用户名)/.bas

  • Nginx防止直接用IP访问Web服务器的设置方法

    官方文档中提供的方法: If you do not want to process requests with undefined "Host" header lines, you may define a default server that just drops the requests: 复制代码 代码如下: server { listen 80 default_server; server_name _; return 444; } 说白了就是只要是访客用ip访问就直接重置4

  • windows下指定IP地址远程访问服务器的设置方法

    我们有很多服务器经常受到外界网络的干扰,入侵者们通过扫描3389端口爆破密码非法进入我们的服务器,这时,我们可以配置服务器IP 安全策略来限制一些IP访问,大大提高了服务器的安全. 实验环境: 服务端:server 2008R2 IP(192.168.0.103) 客户端:win 7 IP(192.168.0.105) 具体配置如下操作: 1.首先打开ip安全策略:控制面板–管理工具–本地安全策略–IP安全策略,在本地计算机上.在右侧空白处右击,选择创建IP安全策略 点击下一步,完成. 然后点击

  • 同一台服务器(电脑)运行多个Tomcat的设置方法步骤

    大多人在Windows平台用的Tomcat都是免安装版本的,很自然想到复制几份目录,就是在同一个电脑上跑多个Tomcat服务了.实际上是不可以的.经过如下方法就可以实现统一台服务器(电脑)上运行多个Tomcat的目的了. 1.配置电脑"环境变量" 单个Tomcat的配置步骤不再重述,直接从配置第二个Tomcat开始.对电脑"环境变量"做调整,增加环境变量CATALINA_HOMEB,值为新的tomcat的地址. 2.更改Tomcat的 catalina.bat.st

  • Tomcat在Linux服务器上的BIO、NIO、APR模式设置方法

    一.BIO.NIO.AIO 先了解四个概念: 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写). 异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(银行卡和密码),OS需要支持异步IO操作API). 阻塞 : ATM排队取款,你只能等待(使用阻塞IO时,Java调用会一直阻塞到读写完成才返回). 非阻塞 : 柜台取款,取个号,然后坐在椅子上做其它事,等号广播会通知你办理,没到

  • maven自动部署到远程tomcat服务器的方法

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配置tomcat的manager 编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了) <role rolename="manager-gui"/> <role rolename="m

  • 使用Post方式提交数据到Tomcat服务器的方法

    我在上一篇文章中介绍了 使用Get方式提交数据到Tomcat服务器,这篇将介绍使用Post方式提交数据到服务器,由于Post的方式和Get方式创建Web工程是一模一样的,只用几个地方的代码不同所以,我就直接介绍不同的地方,第一个不同点是,提交方式不同,所以修改LoginServlet.Java中的代码 package com.fyt.org; import java.io.IOException; import java.io.OutputStream; import java.io.Print

  • 使用Get方式提交数据到Tomcat服务器的方法

    这篇文章将介绍向服务器发送数据,并且服务器将数据的处理结果返回给客户端,这次先介绍使用Get方式向服务器发送数据,下篇将介绍使用Post方式向服务器发送数据,需要的朋友参考下吧! 实现方式分为以下几步: 第一步:使用MyEclipse创建一个Web project,项目命名为WebProject->在src文件夹中新建一个包名为com.fyt.org的包 ->在包中新建一个Servlet,Servlet命名为LoginServlet,并在LoginServlet.Java中添加下面的代码 pa

随机推荐