Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux
» Screenshot
Linux: Amarok...
Por in54no



» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper


Artigo

Controlando acesso às páginas do Apache na rede interna
Linux user
reimassupilami
04/06/2005
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.
Por: void_main_void
[ Hits: 54561 ]
Conceito: 10.0   Linux conceitoLinux conceitoLinux conceitoLinux conceitoLinux conceito + quero dar nota ao artigo

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
Navegação
   1. Mãos à obra!
   2. Resumindo e concluindo

Outros artigos deste autor

Leitura recomendada

Comentários
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

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

Como bloquear sites https pelo squid???

EX:
https://www.plaxo.com

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

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

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?.

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.

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
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Contribuir com: [ Artigo | Conf | Dica | Pergunta | Script | Screenshot | Simulado | Wallpaper ]
Responsável pelo site: Fábio Berbert de Paula - Copyleft© 2002-2008 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux do Brasil! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.