Controle de acesso em Apache. Mod_access.
O módulo de controle de acesso de apache permite controlar o acesso aos diferentes diretórios e arquivos do servidor dependendo do nome da máquina ou endereço IP do cliente.Por Carlos Cuenca Díaz
Publicado em: 18/2/08
As diretrizes que este módulo proporciona podem ser utilizadas dentro dos elementos
, e do arquivo de configuração httpd.conf, ou também dentro de arquivos .htaccess localizados dentro das pastas.
As diretrizes com as que o módulo conta para permitir ou denegar o acesso são:
- Allow: controla os servidores que terão acesso ao conteúdo, por exemplo:
| Allow from criarweb.com | Permite o acesso desde criarweb.com |
| Allow from 192.168.0.1 | Permite o acesso desde 192.168.0.1 |
| Allow from 192.168 | Permite o acesso desde todos os endereços Ip que começam por 192.168 |
| Allow from all | Permitir todos |
- Deny: controla os servidores aos que se denegará o acesso, por exemplo:
| Deny from criarweb.com | Denega o acesso desde criarweb.com |
| Deny from 192.168.0.1 | Denega o acesso desde 192.168.0.1 |
| Deny from 192.168 | Denega o acesso desde todos os endereços Ip que começam por 192.168 |
| Deny from all | Denegar todos |
- Order: determina a ordem na qual se lerão as permissões, por exemplo, para ler primeiro os permitidos e logo os não permitidos se colocará "Allow,Deny" neste caso se um servidor está na lista de permitidos, e na de denegados, o acesso ao mesmo será denegado, já que a entrada dentro da opção Deny sobrescreverá a da entrada Allow.
Há que ter em conta que o uso de order junto com Allow from all ou Deny from all, permite especificar configurações como, permitir desde uma máquina x e denegar do resto, de uma forma muito simples.
Adicionalmente, mediante a diretriz SetEnvIf del módulo mod_setenvif, se podem estabelecer variáveis de ambiente que determinem o funcionamento de Allow ou Deny da mesma forma que se utilizam números IP ou nomes de máquinas. Por exemplo, utilizando Allow from env=entrada permitirá o acesso a todas as petições que tenham definida a variável de ambiente "entrada".
Controlar acesso dependendo do navegador com Apache
Mediante o uso conjunto das diretrizes Allow, Deny, Order e SetEnvIf se pode restringir o acesso a um site dependendo do tipo de navegador. Para realizá-lo simplesmente basta criar uma variável de ambiente dependendo do tipo do navegador, e permitir o acesso às petições que contem com esta variável de ambiente denegando-se ao resto.
Para isso a configuração necessária é a seguinte:
SetEnvId User-Agent googlebot entrar
Order Deny, Allow
Deny from all
Allow from env=entrar
Na primeira linha se especifica que se criará uma variável de ambiente chamada entrar quando o navegador for o motor de indexação de google.
Na segunda linha se especifica a ordem na que se utilizará a lista de servidores, primeiro os denegados e logo os permitidos.
Na quarta linha se especifica que se denega o acesso a qualquer petição.
Na quinta linha se especifica que se permite o acesso às petições que têm definida a variável de ambiente entrar.
No caso de que entre o motor de indexação de google, primeiro se lerá a linha em que se denegam todas as petições, para a seguir ler a linha na linha a qual se permite o acesso através das petições que tem definida a variável entrar, como o navegador que o faz é o googlebot, esta variável estará definida e entrará.
No caso da petição ser realizada por qualquer outro navegador primeiro se lerá a linha que denega as petições, e como não satisfaz a linha em que o permite, não entrará.