如何加强Apache Tomcat的安全性?详细实现介绍

2021年11月10日16:18:53 发表评论 942 次浏览

如何加强Apache Tomcat的安全性?Apache Tomcat 是一个免费的开源 Java 应用程序服务器,它提供了令人难以置信的开箱即用功能。尽管多年来 Apache Tomcat 的安全性有了显着提高,但这并不意味着它不可利用。

Apache Tomcat安全配置有哪些?在本指南中,我们将讨论保护 Apache Tomcat 服务器的各种方法。本指南中讨论的方法最适合生产,因为你在开发过程中可能需要也可能不需要它们。

1 – 抑制服务器信息

提高 Apache Tomcat 服务器安全性的一种简单方法是从 HTTP 响应中删除服务器横幅。如果暴露,该标志可能会泄露你正在使用的 Tomcat 版本,从而更容易收集有关服务器和已知漏洞的信息。

在 Tomcat 的最新版本(Tomcat 8 及更高版本)中,默认情况下禁用服务器横幅。但是,如果你使用的是旧版本的 Tomcat,则可能需要手动执行此操作。

Apache Tomcat如何配置安全选项:编辑Tomcat安装目录conf目录下的server.xml文件。

找到连接器端口条目并删除服务器块。

之前:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
            server="<value>"
               redirectPort="8443" />

设置后:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

保存文件并重新启动 Apache Tomcat 服务。

2 – 启用 SSL/TLS

Apache Tomcat安全配置有哪些?SSL 允许你通过 HTTPS 协议在服务器和客户端之间提供数据。要在 Tomcat 中使用 SSL,从而增强安全性,请将连接器端口中的 server.xml 文件和 SSLEnabled 指令编辑为: 

   <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            SSLEnabled="true" scheme="https" keystoreFile="conf/key.jks" keystorePass="password" clientAuth="false" sslProtocol="TLS"
               redirectPort="8443" />

以上条目假设你有一个带有 SSL 证书的密钥库。

3 – 不要以 root 身份运行 Tomcat

切勿以特权用户身份运行 Tomcat。这允许你在 Tomcat 服务受损的情况下保护系统。

创建一个用户来运行Tomcat服务。

sudo useradd -m -U -d /home/tomcat -s $(which false) tomcat

最后,将所有权更改为创建的 tomcat 用户。

chown -R tomcat:tomcat /home/tomcat

4 – 使用安全管理器

如何加强Apache Tomcat的安全性?最好使用安全管理器运行 Apache Tomcat 服务器。这可以防止不受信任的小程序在浏览器中运行。

./startup.sh -security

Apache Tomcat如何配置安全选项 - 下面是一个示例输出:

To do this, use the catalina script with the –security flag.
Using CATALINA_BASE:   /home/debian/apache-tomcat-10.0.10
Using CATALINA_HOME:   /home/debian/apache-tomcat-10.0.10
Using CATALINA_TMPDIR: /home/debian/apache-tomcat-10.0.10/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/debian/apache-tomcat-10.0.10/bin/bootstrap.jar:/home/debian/apache-tomcat-10.0.10/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Using Security Manager
Tomcat started.

5 – 删除不需要的应用程序

Apache Tomcat 带有可利用的默认示例应用程序。对此的最佳措施是将它们从你的 webapps 目录中删除。

你可以删除应用程序,例如:

  1. ROOT – Tomcat 默认页面
  2. docs– Tomcat 文档
  3. examples – 用于测试的 Servlet
如何加强Apache Tomcat的安全性?详细实现介绍

6 - 修改Tomcat的关机程序

Apache Tomcat安全配置有哪些?另一种保护 Tomcat 的方法是更改​​关闭程序。这样做有助于防止恶意用户关闭 Tomcat 的服务。

可以通过在 telnet 上使用端口 8005 并发送关闭命令来关闭 Tomcat:

$ telnet localhost 8005
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
shutdown
Connection closed by foreign host.

Apache Tomcat如何配置安全选项:要解决此问题,请编辑 server.xml 文件并删除以下块。

<Server port="8005" shutdown="SHUTDOWN">

如果要保持关闭命令有效,请更改默认端口和命令。例如:

<Server port="5800" shutdown="KILLME">

7 – 添加安全和 HttpOnly 标志

如何加强Apache Tomcat的安全性?攻击者还可以操纵已安装应用程序的 cookie 和会话。要解决此问题,请编辑 web.xml 文件并在 session-config 块中添加以下条目。

<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>

结论

本文概述了你可以对 Apache Tomcat 进行的一些必要配置,以帮助增加和增强安全性。请注意,所讨论的方法只是你可以用来保护 Tomcat 的众多措施中的一小部分。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: