
Recientemente cambié el uso de Event MPM en mi instalación de Apache 2.4, junto con PHP-FPM y el proxy FastCGI, espero que ese no haya sido el motivo de mi problema. También comencé a trabajar con directivas VirtualHost basadas en nombres, aunque no tengo varios sitios web, Linux (específicamente CentOS 7) es solo una máquina virtual que se ejecuta detrás de NAT.
Antes de estos cambios, excepto que la VM todavía se ejecutaba detrás de NAT, funcionaba bien (al menos eso creo, lo cual explicaré más adelante), pero "Requerir IP" me molesta ahora.
<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>
Entonces, cuando coloco los archivos web en la public_html
carpeta, funciona muy bien. ¡Brillante! Pero luego, instalé phpMyAdmin y lo modifiqué phpMyAdmin.conf
en /etc/httpd/conf.d/
, como se muestra a continuación:
<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>
A diferencia del VirtualHost anterior, esta vez no otorgué a todas las direcciones IP acceso a phpMyAdmin porque es extremadamente peligroso si pueden ingresar a la base de datos con fuerza bruta.
Lo mismo se aplica a /server-status
y /server-info
, sólo IP específicas pueden tener acceso a dichas páginas y seguramente no Require all granted
. Pero después de que comenzamos a usar VirtualHost, pueden acceder a dichas páginas, por lo que literalmente la sección "Requerir IP" en phpMyAdmin.conf y las directivas que creé para /server-status y /server-info no funcionan correctamente.
Luego, curiosamente, intenté y comenté "Requerir todo concedido" httpd.conf
y vi qué sucede y luego phpMyAdmin es inaccesible como se esperaba. Entonces parece que "Requerir IP" se basa únicamente en VirtualHost. Sin embargo, las otras 3 páginas no se mencionan en VirtualHost, por lo que no sé qué he hecho mal.
Mi pregunta es: ¿cómo hacer que "Requerir ip" vuelva a funcionar para phpMyAdmin y /server-status y /server-info? ¡Gracias por tu ayuda de antemano!