Instalação e configuração do Squid com TProxy no Debian

Quando se tem na rede um Mikrotik e precisa-se fazer controle do que os usuários acessam, existem algumas formas, uma delas é o proxy em paralelo com o Mikrotik e a outra o proxy em uma bridge no meio do caminho. Nesse artigo demonstro como configurar o Squid em bridge, assim como a aplicação dos patches necessários.

[ Hits: 51.297 ]

Por: Leandro Moreira em 11/07/2009


Introdução



Tive a necessidade de fazer o Squid interagir com o Mikrotik, pois o proxy que vem embarcado no Mikrotik, o web proxy, é muito limitado e o Squid tem uma limitação nesse aspecto também.

Para tal temos que recompilar o kernel, o iptables e o Squid com suporte ao TProxy. Gostaria de ressaltar que esse artigo é apenas uma tradução dos arquivos que se encontram no final como referência, incluído com as minhas experiências enquanto implementava a solução.

Pacotes necessários

Como o patch não da suporte a versões mais novas do kernel (acima de 2.6.20), optei por realizar a instalação no kernel 2.6.18 com Squid 2.6, pois o patch também não suporta o Squid 3. Instalei um Debian 5.0 (Lenny) com kernel 2.6.18, em seguida fiz a instalação dos pré-requisitos conforme abaixo, para isso teremos que configurar o sources.list para buscar os pacote da versão Etch do Debian:

# vi /etc/apt/sources.list

deb http://http.us.debian.org/debian etch main contrib non-free
deb http://security.debian.org etch/updates main contrib non-free

Salve o arquivo e saia. Em seguida atualize a lista de repositórios:

# apt-get update

Instale o kernel e as dependências necessárias para a compilação:

# apt-get install linux-image-2.6.18-6-686
# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential dpkg-dev


Agora vamos baixar os fontes do kernel:

# apt-get source linux-image-`uname -r`

Vamos agora baixar o patch a ser aplicado no kernel e no Squid:

# wget http://www.balabit.com/downloads/files/tproxy/obsolete/linux-2.6/cttproxy-2.6.18-2.0.6.tar.gz

    Próxima página

Páginas do artigo
   1. Introdução
   2. Aplicando os patches e compilando
   3. Squid - Compilando, instalando e configurando
   4. Configurando o proxy e modo bridge
Outros artigos deste autor

Integrando autenticação do Squid ao Active Directory

Integrando Apache 2 com Tomcat 5

Instalando e configurando o Nagios com e sem MySQL

Compilando kernel com suporte a POM (path-omatic) e Layer7 no Debian e Slackware

Recuperando RouterOS na RouterBOARD 450

Leitura recomendada

Kernel Hacking (RootKits)

Compilação do kernel passo-a-passo

Debian 3.1 (Sarge) - Atualizando pacotes para unstable e compilando um novo kernel

Compilando o Kernel do OpenBSD 4.3 (GENERIC)

Deixe seu console mais bonito com Bootsplash

  
Comentários
[1] Comentário enviado por lopan em 12/07/2009 - 08:57h

Leandro, essa solução de TProxy é velha e complexa!
O Kernel do Linux já tem suporte nativo ao TProxy, sem a necessidade de Patch (versões >= 2.6.28).
O TProxy também evoluiu para a versão 4.1, a versão do Squid 3.1 já conta com isso e a configuração é extremamente simples, como pode ser visto no link: http://wiki.squid-cache.org/Features/Tproxy4

Abraços,

[2] Comentário enviado por leandromoreirati em 13/07/2009 - 15:06h

lopan,
Me desculpa pelo artigo então, ja o escrevi a um ano e meio e so publiquei pois nas listas que frequento tenho percebido que muitas pessoas pedem documentação sobre o tproxy, a proposito quem usa a versão estable do debian (kernel 2.6.26) não tem esse modulo embracado no kernel, portando e uma escolha que a pessoa tera de fazer, ou aplica o patch e recompila o kernel, ou usa o kernel nao disponível, mas sua observação é valida pois nao consegui aplicar de forma alguma o tproxy no squid3, vou olhar o seu link e testar a versção 3.1, obrigado pela dica.

Att.

Leandro Moreira.

[3] Comentário enviado por josefilhobr em 14/08/2009 - 10:17h

Precisei da solução neste momento e tentei a configuração a partir da versão mais nova disponível no site do SQUID enviada por lopan. Até agora não obtive sucesso. O IP SPOOFING está acontecendo, porém não está fazendo cache, nem o access.log é gravado.

As permissões dos arquivos estão ok e a configuração dos parâmetros do access_log no squid.conf está direcionada também ok, bem como o diretório do cache.

Vcs têm alguma luz?

Obg

[4] Comentário enviado por Rafaelmcosta em 26/08/2009 - 00:49h

LEandro,

muito bom artigo,

uma dúvida...vc nao usou tcp_outgoing_address?

Como ficou a saída dos endereços dos clientes? Estão saindo independentes, ou seja, sai cada um com seu IP e nao com o do proxy, evitando problemas com Rapidshare e afins.

Abraços

[5] Comentário enviado por leandromoreirati em 26/08/2009 - 11:31h

Ramc,
Nao usei o tcp_outgoin, na verdade eles saem com o ip do gateway da rede, pois o gateway-tproxy, fica entre a rede o gateway da rede. Com relaçao ao rapidshare e afins, os problemas que tem e os problemas corriqueiros de multiplos acessos de um mesmo IP, creio eu pois os meus clientes pedem o bloqueio de acesso a esses serviços. Com relacao a saida, fica listado o ip de origem. Pra evitar problemas, eu restinjo acesso a porta 3128 a apenas a minha(s) rede (s) interna(s).
Qualquer duvida estou a disposiçao.

Att.

Leandro Moreira.

[6] Comentário enviado por Rafaelmcosta em 30/08/2009 - 09:57h

eu preciso que os ips dos clientes saiam livremente...
de forma realmente transparente.
Alguma dica?

Abraço ;)

[7] Comentário enviado por modesto916 em 28/04/2010 - 17:15h

Cara, otima atitude de postar sobre o que voce ja teve experiencia, mas sinceramente, na minha opinião, o TPROXY no linux continua uma gambiarra, uso essa solução com FreeBSD, nas versões do FreeBSD inferiores à 8.0, é necessario aplicar um patch e recompilar o kernel, mesmo assim, é muito simples, agora ja no 8.0 ja tem o suporte nativo e 100% funcional.

[8] Comentário enviado por leandromoreirati em 29/04/2010 - 10:43h

Modesto,
No linux no kernel acima de 2.6.28 ele também é nativo, mas infelizmente ainda nao pude testar por falta de tempo, acredido que seja necessário apenas complila-lo sem a necessidade de aplicar o patch.

Att.

Leandro Moreira.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts