Apache 2.4「需要 ip」不適用於在 httpd.conf 中新增 VirtualHost 指令的 /server-status、/phpMyAdmin 等

Apache 2.4「需要 ip」不適用於在 httpd.conf 中新增 VirtualHost 指令的 /server-status、/phpMyAdmin 等

我最近在 Apache 2.4 安裝中更改了使用 Event MPM,以及 PHP-FPM 和 FastCGI 代理,我希望這不是我的問題的原因。我也開始使用基於名稱的 VirtualHost 指令,儘管我沒有多個網站,Linux(特別是 CentOS 7)只是一個在 NAT 後面運行的虛擬機器。

在這些更改之前,除了虛擬機器仍然在 NAT 後面運行之外,它工作正常(至少我相信是這樣,我將在稍後解釋),但「需要 IP」現在困擾著我。

<VirtualHost *:80>
        DocumentRoot /home/website/public_html
        <Directory /home/website>
                Allow from all
                Options +Indexes
                AllowOverride All
        </Directory>
        <Location />
                # Allow Internal IPs
                Require ip 10.0.0.0/8
                Require ip 172.16.0.0/12
                Require ip 192.168.0.0/16
                Require ip 0.0.0.0/8
                Require ip 127.0.0.0/8

                # Allow Company IPs
                Require forward-dns broadband1.company.com
                Require forward-dns broadband2.company.com

                # Allow all IPs (comment it if disallowed)
                Require all granted
        </Location>
</VirtualHost>

所以當我把網頁檔案放在該public_html資料夾下時,效果很好。傑出的!但後來,我安裝了 phpMyAdmin 並phpMyAdmin.conf在 下進行了修改/etc/httpd/conf.d/,如下所示:

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       # Allow Internal IPs
       Require ip 10.0.0.0/8
       Require ip 172.16.0.0/12
       Require ip 192.168.0.0/16
       Require ip 0.0.0.0/8
       Require ip 127.0.0.0/8

       # Allow Company IPs
       Require forward-dns broadband1.company.com
       Require forward-dns broadband2.company.com

       # Was here by default
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

與上面的 VirtualHost 不同,這次我沒有授予所有 IP 位址存取 phpMyAdmin 的權限,因為如果它們可以暴力破解資料庫,那將是極其危險的。

同樣適用於/server-status/server-info,只有特定的 IP 可以訪問此類頁面,當然不能Require all granted。但在我們開始使用 VirtualHost 後,他們可以訪問此類頁面,因此 phpMyAdmin.conf 下的“需要 IP”部分以及我為 /server-status 和 /server-info 創建的命令無法正常工作。

然後我好奇地嘗試並評論“要求所有已授予”,httpd.conf看看會發生什麼,然後 phpMyAdmin 按預期無法訪問。所以看起來「需要 ip」僅基於虛擬主機。然而,VirtualHost 下沒有提到其他 3 個頁面,所以我不知道我做錯了什麼。

我的問題是:如何讓 phpMyAdmin 和 /server-status 和 /server-info 的「需要 ip」再次運作?先感謝您的幫忙!

相關內容