【问题标题】:How to filter requests so that apache handles them and not tomcat?如何过滤请求以便apache处理它们而不是tomcat?
【发布时间】:2018-10-17 13:35:33
【问题描述】:

由于各种原因,我想在一段时间的空闲时间后关闭我的服务器。我在 Debian 4.9.88 上运行 Tomcat 8.5.29 和 Apache2(不确定版本)。我编写了一个脚本来查看 Tomcat 上次访问的时间。我在服务器上只有一个应用程序,它位于“http://hostname/source/”。我的问题是那里存在许多网络服务器漏洞,并且我不断收到以下请求: “获取/HTTP/1.1” “POST /GponForm/diag_Form?images/HTTP/1.1” “GET /jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.system%3Aservice%3DMainDeployer HTTP/1.1” "POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1"

我想要做的是阻止任何不以“/source”开头的东西进入tomcat。我认为 Apache 中的重写或其他东西可以做到这一点,但我不确定请求是如何首先到达 Tomcat 的。 有什么想法吗?

【问题讨论】:

    标签: apache tomcat url-rewriting mod


    【解决方案1】:

    请求到达 Tomcat 有两种可能的方式:

    1. 探测器将请求直接发送到 Tomcat 端口(通常为 8080 端口)。您可以通过将属性address="127.0.0.1" 添加到conf/server.xml 中的相应连接器元素来将Tomcat 的侦听地址限制为环回地址来解决此问题。或者您可以在防火墙中阻止端口 8080。

    2. 请求通过 Apache 中的反向代理配置从 Apache 转发到 Tomcat。这意味着在其中一个 Apache 配置文件中有如下一行:

      ProxyPass / http://127.0.0.1:8080/

      如果为两个参数添加显式路径前缀,则可以限制将哪些请求传递给 Tomcat:

      ProxyPass /source http://127.0.0.1:8080/source

      这确保只有以“/source”开头的请求被转发到 Tomcat。

      一些 Apache 配置使用 AJP 协议而不是 HTTP 进行代理,但同样的推理也适用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 2014-07-18
      • 2015-03-15
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多