
Recentemente mudei o uso do Event MPM em minha instalação do Apache 2.4, junto com PHP-FPM e proxy FastCGI, espero que não tenha sido esse o motivo do meu problema. Também comecei a trabalhar com diretivas VirtualHost baseadas em nomes, embora não tenha vários sites, o Linux (especificamente CentOS 7) é apenas uma VM rodando atrás de NAT.
Antes dessas mudanças, exceto que a VM ainda rodava atrás de NAT, ela estava funcionando bem (pelo menos acredito que sim, o que explicarei mais tarde), mas o "Exigir IP" está me incomodando agora.
<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>
Então, quando coloco os arquivos da web na public_html
pasta, funciona muito bem. Brilhante! Mas então instalei o phpMyAdmin e modifiquei phpMyAdmin.conf
em /etc/httpd/conf.d/
, como abaixo:
<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>
Ao contrário do VirtualHost acima, desta vez, não concedi a todos os endereços IP acesso ao phpMyAdmin porque é extremamente perigoso se eles conseguirem invadir o banco de dados com força bruta.
O mesmo se aplica a /server-status
e /server-info
, apenas IPs específicos podem ter acesso a tais páginas e certamente não Require all granted
. Mas depois que começamos a usar o VirtualHost, eles podem acessar essas páginas literalmente na seção "Exigir IP" em phpMyAdmin.conf e as diretivas que criei para /server-status e /server-info não estão funcionando corretamente.
Então eu curiosamente tentei e comentei "Exigir todos concedidos" httpd.conf
e vi o que acontece e então o phpMyAdmin fica inacessível como esperado. Portanto, parece que "Exigir ip" é baseado exclusivamente no VirtualHost. No entanto, as outras 3 páginas não são mencionadas em VirtualHost, então não sei o que fiz de errado.
Minha pergunta é: como fazer com que "Exigir ip" funcione novamente para phpMyAdmin e/server-status e/server-info? Obrigado pela sua ajuda antecipadamente!