如何加强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 目录中删除。
你可以删除应用程序,例如:
- ROOT – Tomcat 默认页面
- docs– Tomcat 文档
- examples – 用于测试的 Servlet
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 的众多措施中的一小部分。