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.
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.
# vi /etc/apt/sources.list
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
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
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
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,