Bloquear endereços IP no Apache VHost com proxy

1

Eu tenho o vhost da seguinte forma:

<VirtualHost *:80>
        ServerName somename.com

        <Proxy *>
                order deny,allow
                Deny from 65.74.5.130
                Allow from all
        </Proxy>

        ProxyPreserveHost On
        ProxyPass / http://0.0.0.0:8890/
        ProxyPassReverse / http://0.0.0.0:8082/
</VirtualHost>

Os IPs que eu coloquei na seção Proxy não estão sendo bloqueados. Não estou entendendo a ordem correta de negação / permissão? Ou há alguma outra diretiva que eu precise usar?

    
por tubaguy50035 10.09.2014 / 19:14

1 resposta

4

Sua diretiva order está errada.

Order indica como o apache avalia as diretivas allow e deny . Em e deny,allow configuration, você primeiro especifica suas origens negadas e, em seguida, as exceções (origens permitidas) para a lista negada.

Como o seu IP banido corresponde a ambas as diretivas, você está introduzindo-o como uma exceção à regra de negação, permitindo que ele acesse livremente.

Use order allow,deny com as mesmas diretivas deny e allow para restringir o acesso:

<VirtualHost *:80>
    ServerName somename.com

    <Proxy *>
            order allow,deny
            Deny from 65.74.5.130
            Allow from all
    </Proxy>

    ProxyPreserveHost On
    ProxyPass / http://0.0.0.0:8890/
    ProxyPassReverse / http://0.0.0.0:8082/
</VirtualHost>

Observação: o último parâmetro em order define a ação padrão se não houver correspondência para nem deny nem allow é encontrado, portanto, ter um xxxx from all não é necessário, mas a maioria das pessoas prefere defini-lo explicitamente.

Isso é equivalente:

order allow,deny
Deny from 65.74.5.130
Allow from all
  • 65.74.5.130 corresponde a allow e deny , aplicando ordem (1ª permissão, última negação), negará o acesso.
  • qualquer outro IP corresponderia a allow , por isso permitirá o acesso.

para isso:

order deny,allow
Deny from 65.74.5.130
  • 65.74.5.130 corresponde apenas a deny , por isso nega acesso
  • qualquer outro IP não corresponderá a allow ou deny , por isso, a ação padrão será allow , permitindo o acesso.
por 10.09.2014 / 21:25