Safe Port por site específico

Publicado por Sergio Napolitano em 29/04/2013

[ Hits: 5.698 ]

 


Safe Port por site específico



Buenas, galera.

Me deparei com a necessidade de liberar uma porta apenas para um site específico, afim de filtrar melhor os acessos feitos via proxy.

Procurei e não achei nada a respeito. Se já existe algo parecido na internet, ótimo. Que esta dica venha para reforçar e facilitar a busca de quem precisar.

Introdução

Versão usada: Squid Cache versão 3.1.6 instalado em Debian 6.0.x.

* Ressalto, desde já, que não testei a solução apresentada em outras versões do Squid ou outro S.O., pois não tive tempo para isso.

Acredito que funcione corretamente e, no mais, estou pronto a ajudar no que estiver ao meu alcance.

Este não é um tutorial sobre como configurar um Squid proxy ou firewall do início, para isto já tem farto material aqui no VOL e na internet.

O problema

Precisava de liberar a porta 8080, por exemplo, somente para o site \"exemplo.com".

Depois de pensar um pouco, consegui ver duas soluções: IPtables e o próprio Squid.

A preocupação principal é evitar lixo na configuração do proxy e liberações desnecessárias.

Um breve exemplo de situação possível: Um site usa um endereço com porta diferente do padrão para HTTP/HTTPS e está hospedado em um servidor que nem DNS tem registrado. Temos, então, aquela porta liberada para qualquer destino pela necessidade de acessar apenas um.

No caso acima, o problema maior seria o administrador esquecer esta porta liberada, mesmo se aquele site que a usa deixar de existir ou passar a trabalhar de outra forma, pois, além de termos acesso liberado para qualquer outro domínio naquela porta, ela não passaria de lixo na configuração do proxy.

Em um proxy bem configurado, teríamos esta "porta a mais" liberada apenas para os sites expressamente liberados, salvo nos casos dos "privilegiados" (diretores, chefes, mandachuvas, etc), que teriam acesso ao resto do conteúdo "não blacklist". Mesmo assim, ainda considero um risco de segurança.

Solução 1: IPtables

Neste caso, o Squid continua do jeito que está e damos ao IPtables a função de filtrar a saída não desejada.

Basta adicionar duas regrinhas na OUTPUT da tabela filter para liberar apenas a saída para o destino que queremos. Algo como:

# iptables -I OUTPUT -p tcp -d exemplo.com --dport 8080 -j ACCEPT
# iptables -A OUTPUT -p tcp --dport 8080 -j DROP


A regra acima está super resumida, apenas para ser funcional e pode ser incrementada afim de obter um melhor filtro.

Também pode ser especificado mais de uma porta por destino, ou uma nova regra para cada destino que use determinada porta. Fica a gosto do freguês.

Solução 2: Squid

Esta também é simples.

O Firewall fica do jeito que está. No "squid.conf" daremos nome aos bois.

Onde temos:
acl Safe_ports port 80
acl Safe_ports port 8080  #liberação do dominio abc
acl Safe_ports port 7000  #liberação do dominio fgh
acl Safe_ports port 9090  #liberação do dominio yzx
acl Safe_ports port 8787  #liberação do dominio wnd

Faremos:

acl Safe_ports port 80
acl porta_abc port 8080
acl porta_fgh port 7000
acl porta_yzx port 9090
acl porta_wnd port 8787


E então, teremos mais uma ACL para cada destino, afim de podermos tratar um por vez no "http_access":

acl dominioabc dst 100.30.20.10
acl dominiofgh dst 200.30.20.10
acl dominioyzx dstdomain exemplo.com
acl dominiownd dstdomain exemplo2.com

http_access allow porta_abc dominioabc
http_access allow porta_fgh dominiofgh
http_access allow porta_yzx dominioyzx
http_access allow porta_wnd dominiownd

http_access deny porta_abc
http_access deny porta_fgh
http_access deny porta_yzx
http_access deny porta_wnd


E com isso, temos apenas os domínios/IPs "especiais" sendo acessados nas portas diferentes.


Espero que tenham gostado e fico a disposição.
Críticas e/ou sugestões são bem-vindas.

Abraço a todos.

Outras dicas deste autor

Backup remoto + Backup automático para HD externo

Leitura recomendada

Comando time no zsh (shell Linux)

Instalando TimWebMóvel no Debian/Kurumin

Bloqueando Skype em definitivo no IPtables

O comando paste

Como criar um atalho de navegação anônima no Chrome ou no Chromium

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts