Proxy

XAMPP 拒絕來自特定外部 IP 地址的訪問

  • September 18, 2019

我需要一些幫助來保護我的測試 XAMPP 伺服器,因為到目前為止我嘗試過的任何東西似乎都不起作用。我在 Windows 7 機器上執行 Apache 2.4.7。

設置如下:

我正在將來自我的伺服器 IP 埠 80 的所有流量重定向到執行在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,因此我在此處發布了一個新問題。

正如@MichaelHampton 已經評論的那樣:立即刪除以下設置:

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

反向代理不需要這些,而是用於配置正向代理,幾乎對任何人開放,這將允許您的伺服器被濫用。(幸好你還用過ProxyRequests off

順便說一句,當您確實需要轉發代理時,請不要使用 Apache httpd,而是使用更具體的產品。


看來我不能使用 .htaccess …

恕我直言,您打算創建.htaccess文件的意圖已經走錯了方向,這是我的寵兒,引自.htaccess文件的手冊:

如果您有權訪問 httpd 主伺服器配置文件,則應完全****避免使用.htaccess 文件。使用文件會降低 Apache http 伺服器的速度。您可以包含在文件中的任何指令都最好設置在主 Apache 配置文件的塊中,因為它具有相同的效果並具有更好的性能)並將其與**.htaccess**.htaccessDirectory

但是在這種情況下 .htaccess 不起作用的原因是它們將設置應用於本地文件系統上的資源,從目錄中,並且使用反向代理,Apache httpd 從其他地方檢索內容。


您實際問題的解決方案,例如如何在反向代理 URL 上應用額外的訪問控制和 IP 地址白/黑名單:您將ProxyPass指令和其他指令放在<Location>配置中的一個塊中(這也是因為 Apache 2.4恰好是提供最佳性能的配置語法)並使用Require指向該位置的指令添加到 IP 地址限制:

<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> 

引用自:https://serverfault.com/questions/984606