Squid 3.3.4 com suporte a TPROXY no BSD
-
Pessoal,
Esta nova funcionalidade, se compatível com o pfsense, pode abrir muitas possibilidades
http://wiki.squid-cache.org/ConfigExamples/Intercept/FreeBsdPf
Até onde entendi, o TPROXY é capaz de fazer proxy transparente e ainda enviar o forjar o ip do cliente no pacote de saída.
Isso abriria possibilidade para o uso simultâneo de proxy e traffic shape no pfsense? proxy e load balance sem a necessidade de tcp_outgoing_address ou regras na aba floating? ???
att,
Marcello Coutinho -
alguma previsão para atualizar o pacote ? se quiser posso testar
-
alguma previsão para atualizar o pacote ? se quiser posso testar
O buraco é mais em baixo, mandei na lista de devel e parece que o que o squid precisa só vem na 2.2
Ainda sim vou tentar alguma coisa…
-
Vamos lá…. questões sobre TPROXY:
TPROXY é um metodo que faz com que o ip do cliente saia pelo o proxy diretamente, deixando o proxy mais transparente ainda em relação a conexão, é como se o proxy fosse realmente o cliente fazendo conexão.
Neste caso, você precisa que o ip do cliente seja roteavel diretamente do outro lado, nesses casos, esqueça o NAT ! já que a conexão é integrada (via tproxy) a conexão do cliente.
Eu trabalho muito com tproxy, mas 99% dos ambientes são provedores, onde eles entregam ip's publicos no lado cliente, então via tproxy, eu roteio a conexão no squid (no caso sempre usei lusca)
Já houve um tentativa minha de mexer nisso a dois anos no pfsense, mas isso implica em aplicar patchs no kernel e na base do pfsense, iria dar um certo trabalho por conta do número grande de patchs aplicados na base do pfsense assim como as alterações poderiam interferir em outras alterações.
Nesses casos, quando eu preciso aplicar tproxy em algum ambiente, eu uso o freebsd puro com aplicação de patch na base.
Eu fiz adaptações no patch do Luiz Otavio (loos), segue abaixo:
http://www.mundounix.com.br/~gugabsd/lusca_tproxy_8_STABLE.diff
http://www.mundounix.com.br/~gugabsd/lusca_tproxy_9-STABLE.diffQuem quiser brincar, use em conjunto com o lusca (www/lusca-head) que já vem nativo com a funcionalidade de tproxy.
Abraços
-
uma outra questão que esqueci de mencionar é sobre o forwarding do packet filter que ainda não tem suporte a faze-lo sem alterar o pacote. Hoje o forward funciona alterando o cabeçalho do pacote afim de "natear" a conexão, coisa que com o tproxy não deve ser alterado, para que o tproxy reconheça a origem e faça a simulação do ip de origem.
Para que isso funcione no FreeBSD, é necessário o patch que citei anteriormente e usa funções nativas do ipfw e adapta ao uso do mesmo em situações de BRIDGE.
Isso mesmo, eu uso o patch sempre quando o ambiente esta em uma conexão em bridge, sem bridge, sendo o firewall o roteador da rede, não é necessário o uso do patch, já que nativamente o IPFW faz o forwarding sem gerar um "NAT" na conexão.
Nas versões do PF via openbsd 5.4, talvez isso funcione com alguns parâmetros novos que vi no manual do mesmo, mas como ainda não temos portado para o FreeBSD, não sei te dizer ao certo se os parâmetros são para isso mesmo.