XAMPP 拒絕來自特定外部 IP 地址的訪問
我需要一些幫助來保護我的測試 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
**.htaccess
Directory
但是在這種情況下 .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>