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
[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
leo_jfa 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
leo_jfa 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
leo_jfa 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.