Controlando acesso às páginas do Apache na rede interna

Este artigo mostra uma solução que encontrei para configurar o Squid de modo a impedir que algumas máquinas da rede interna tenham acesso às páginas do Apache instalado no mesmo servidor. Deve existir outra maneira mais "bonita" de fazer isso, mas pelo menos no meu caso já resolveu.

[ Hits: 73.478 ]

Por: Everton da Silva em 04/06/2005


Mãos à obra!



Na minha rede tenho um servidor com proxy que as máquinas cliente usam para acessar Internet. Nesse mesmo servidor tive que instalar o Apache para rodar algumas aplicações na rede interna. Porém precisava que somente algumas máquinas conseguissem acessar o servidor pelo Apache, sem prejudicar o acesso das demais à Internet.

Na verdade a saída é bem simples. Mesmo que a máquina cliente acesse uma página da rede interna, essa requisição passa pelo proxy. Então a solução é controlar isso pelas próprias ACLs do proxy, nada de firewall.

Então peguemos um exemplo: digamos que nosso servidor se chame galadriel, seu ip seja 192.168.0.1 e queremos que apenas a máquina com ip 192.168.0.10 tenha acesso às páginas do servidor da rede interna. Sem o controle desejado, quando o usuário digita o nome do servidor no browser, isso o leva direto às páginas do Apache.

No squid.conf criamos então uma ACL chamada "palavra" referente ao nome do servidor e, em seguida, uma outra ACL chamada "liberado" referente ao nome da máquina que deve ter acesso ao servidor:

acl palavra url_regex -i galadriel
acl liberado src 192.168.0.10/32

Depois tratamos das permissões:

http_access allow palavra liberado # permite o acesso apenas à maquina especificada
http_access deny palavra # nega acesso para toda rede

Parece estranha a ordem das tags, mas é assim mesmo. O Squid lê isso tudo de baixo para cima, então primeiro ele vai negar pra rede inteira e depois liberar para a especificada.

No meu caso, precisava dar permissão para mais de uma máquina, então bastou criar mais uma ACL "liberado" logo abaixo da primeira e assim por diante, para quantas máquinas mais forem necessárias:

acl liberado src 192.168.0.10/32
acl liberado src 192.168.0.1/32
acl liberado src 192.168.0.8/32

Você pode optar por utilizar faixas de ip também. Por exemplo, vamos liberar para todas máquinas entre 192.168.0.2 e 192.168.0.15:

acl liberado src 192.168.0.2-192.168.0.15/32

Uma dica: dessa forma bloqueamos o acesso caso o usuário digite o nome do servidor no browser, mas e se ele digitar o ip do servidor? O que acontece? O que acontece é que ele vai acessar normalmente, pois estamos bloqueando o nome do servidor e não o ip dele. Simples, basta criar mais uma ACL "palavra" logo abaixo da primeira, porém com o ip do servidor ao invés do nome dele:

acl palavra url_regex -i 192.168.0.17
    Próxima página

Páginas do artigo
   1. Mãos à obra!
   2. Resumindo e concluindo
Outros artigos deste autor

Instalando o DBDesigner no Linux

Mostrar nome da música no aMSN

Resolvendo problemas com o Conexão Segura da CAIXA

Leitura recomendada

Squid balanceado com LVS

Autenticando usuários do Squid em um banco de dados MySQL

Instalação do Squid com autenticação NTLM e Kerberos

Compilação do Squid 3 no Debian Wheezy

Implementação de um proxy/cache para ganho de conexão

  
Comentários
[1] Comentário enviado por fabio em 04/06/2005 - 13:49h

Fala Reima,

Parabéns pelo artigo!

Bom, minha forma não seria mais bonita, mas ficaria da seguinte forma:

acl palavra src 192.168.0.17
# o src se refere ao host, logo ele casa tanto com o IP quanto com o hostname

acl liberado src 192.168.0.10 192.168.0.1 192.168.0.8
# pode listar todos numa linha só, separando os hosts por espaço

No mais, é isso aí, parabéns!

[]'s,
Fábio

[2] Comentário enviado por claudivino em 21/11/2005 - 08:39h

Como bloquear sites https pelo squid???

EX:
https://www.plaxo.com

[3] Comentário enviado por lipecys em 19/09/2007 - 13:12h

E aí cara, muito bom, parabéns.

[4] Comentário enviado por valdir.lima em 16/10/2007 - 15:34h

Show! muito esse artigo!.
Eu gotaria, ou melhor eu preciso aprender como fazer o bloqueio dos sites HTTPS direto na máquina, apenas como administrador da mesma. Será que pode me ajudar?.

[5] Comentário enviado por zenildosilva em 21/08/2008 - 16:31h

Fala irmão

Parabéns pela iniciativa. Mas acho que você esta equivocado em relação a ordem de leitura das acl´s. O squid lê sim de cima pra baixo. Se ele ele fosse ler de baixo pra cima pararia na regra que bloqueia toda a rede e sua solução não funcionaria. Me corrijam se estiver errado. Mas é isso ai vamos difundir o conhecimento.

[6] Comentário enviado por zenildosilva em 21/08/2008 - 16:33h

Até porque devo precisar de algo parecido daqui a um mes ou dois e voce já me deu uma luz de como fazer.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts