XAMPP 拒绝来自特定外部 IP 地址的访问

XAMPP 拒绝来自特定外部 IP 地址的访问

我需要一些帮助来保护我的测试 XAMPP 服务器,因为到目前为止我尝试过的方法似乎都没有奏效。我在 Windows 7 机器上运行 Apache 2.4.7。

设置如下:

我正在将来自我的服务器 IP、端口 80 的所有流量重定向到正在运行的 Java 应用程序localhost:5000

在文件中执行所有这些操作的代码httpd-vhosts.conf如下:

<VirtualHost *:80> 
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName demo.website.com
  ServerAlias website.com
  ProxyPass / http://localhost:5000/
  ProxyPassReverse / http://localhost:5000/
  <Proxy *>
        Order deny,allow
        Allow from all
  </Proxy>
</VirtualHost>

问题是,如何deny从特定的外部 IP 地址发送流量?

似乎我无法使用,.htaccess因为端口 80 上的请求被重定向到 java 应用程序,而不是包含 web 内容的 xampp 文件夹。

此外,下面的代码也不起作用:

<Proxy *>
    order allow,deny
    deny from 193.37.XXX.XX
    allow from all
</Proxy>

还有什么其他选择?

有什么建议么?

编辑:

从收到的回复来看,我似乎完全错误地执行了代理反转,从而在服务器中打开了可利用的漏洞。根据提供的答案,我修改了我的初始代码。

由于我在端口 443 上使用类似的不安全代码,并且在修改后无法启动 Apache,因此我发布了一个新问题这里

答案1

正如@MichaelHampton 已经评论的那样:立即删除以下设置:

<Proxy *>
    order allow,deny
    deny from 193.37.XXX.XX
    allow from all
</Proxy> 

这些对于反向代理而是用来配置向前代理人几乎任何人都可以访问,这将导致您的服务器被滥用。(幸运的是,您仍然使用了ProxyRequests off

顺便说一句,当您确实需要正向代理时,请不要使用 Apache httpd,而要使用更具体的产品。


看来我不能使用 .htaccess......

在我看来,你已经走错了方向,你想要创建一个.htaccess文件,这是我最讨厌的,引用自.htaccess 手册文件:

你应该完全避免使用.htaccess文件 如果你有权访问 httpd 主服务器配置文件。使用.htaccess文件会减慢你的 Apache http 服务器速度. 任何可以包含在.htaccess文件中的指令最好都设置在Directory在主 Apache 配置文件中阻止,因为它将具有相同的效果且性能更好)并将其与

但在这种情况下 .htaccess 不起作用的原因是它们将设置应用于本地文件系统上的资源(来自目录),并且通过反向代理由 Apache httpd 从其他地方检索内容。


解决您实际问题的方法,即如何在反向代理 URL 上应用额外的访问控制和 IP 地址白名单/黑名单:将ProxyPass指令和附加指令放在<Location>配置中的一个块中(这也自 Apache 2.4 起恰好是提供最佳性能的配置语法),并使用Require指向该位置的指令:

<VirtualHost *:80> 
  ServerName demo.website.com
  ServerAlias website.com

  <Location />
    <RequireAll>
      # Block IP-addresses from the 193.37.0.0/16 and 10.9.8.0/24 networks 
      Require not ip 193.37 10.9.8
      # Allow all other IP's
      Require all granted
    </RequireAll> 
    ProxyPass http://localhost:5000/
    ProxyPassReverse http://localhost:5000/
  </Location>

</VirtualHost> 

相关内容