Mas para que o TPROXY funcione, o freebsd tem que fazer um "spoof" dos endereços dos clientes.
A bridge trabalha transparente, quando o tproxy for fazer o spoof, atrapalha a bridge... acredito algo assim... -------------------------------------------------- From: "Marcelo Gondim" <gon...@linuxinfo.com.br> Sent: Friday, April 30, 2010 11:07 AM To: "'Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)'" <freebsd@fug.com.br> Subject: [FUG-BR] RES: RES: RES: Cacheboy Free 8.0 + Tproxy > Pois é com o ipfw eu não consegui mesmo mas com o PF eu vejo o > redirecionamento indo pro lusca, inclusive funciona perfeitamente usando: > > http_port 192.168.10.200:3128 transparent > > Agora se ponho: > > http_port 192.168.10.200:3128 transparent tproxy > > Aí já não funciona mais, ou seja, pode ser algo específico com o tproxy > mesmo porque só com transparent funfa certinho. > > -----Mensagem original----- > De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em nome > de Renato Frederick > Enviada em: sexta-feira, 30 de abril de 2010 10:54 > Para: 'Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)' > Assunto: Re: [FUG-BR] RES: RES: Cacheboy Free 8.0 + Tproxy > > Nunca tentei usar em bridge, não sei se funcionaria, a bridge não estaria > uma camada OSI abaixo do que um fwd de portas? > > > > > -------------------------------------------------- > From: "Marcelo Gondim" <gon...@linuxinfo.com.br> > Sent: Friday, April 30, 2010 10:31 AM > To: "'Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)'" > <freebsd@fug.com.br> > Subject: [FUG-BR] RES: RES: Cacheboy Free 8.0 + Tproxy > >> Opa Renato, >> >> Sabe se eu conseguiria fazer funcionar também em uma bridge? A máquina >> fazendo forward foi de boa mas ainda estou penando tentando fazer em >> bridge. >> Meu teste está assim: meu notebook(192.168.10.177) passando pela bridge >> freebsd(192.168.10.200) e indo pro router(192.168.10.254). Coloquei as >> seguintes confs: >> >> /etc/rc.conf >> ============ >> cloned_interfaces="bridge0" >> ifconfig_bridge0="inet 192.168.10.200 netmask 255.255.255.0 addm sis0 >> addm >> rl0 up" >> ifconfig_sis0="up" >> ifconfig_rl0="up" >> defaultrouter="192.168.10.254" >> hostname="freeba.localdomain.net" >> keymap="br275.iso.acc" >> sshd_enable="YES" >> squid_enable="YES" >> squid_user="root" >> pf_enable="YES" >> pf_rules="/etc/pf.conf" >> >> /etc/pf.conf >> ============ >> rdr pass on bridge0 inet proto tcp from 192.168.10.0/24 to any port 80 -> >> 192.168.10.200 port 3128 >> rdr pass on bridge0 inet proto tcp from any port 80 to 192.168.10.0/24 -> >> 192.168.10.200 >> >> No squid.conf: >> ============== >> http_port 192.168.10.200:3128 transparent tproxy >> >> No kernel adicionei o seguinte: >> =============================== >> device pf >> device pflog >> device pfsync >> device if_bridge >> options MSGMNB=8192 >> options MSGSSZ=64 >> options MSGTQL=2048 >> options SHMSEG=16 >> options SHMALL=4096 >> options LIBALIAS >> >> A questão acho que é, ele vai funcionar em bridge ou existe essa >> limitação? >> >> Grande abraço e obrigado pela ajuda >> >> >> -----Mensagem original----- >> De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em >> nome >> de Renato Frederick >> Enviada em: quinta-feira, 29 de abril de 2010 21:11 >> Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR) >> Assunto: Re: [FUG-BR] RES: Cacheboy Free 8.0 + Tproxy >> >> Marcelo, >> >> qual é a sua dificuldade? >> >> Vamos lá, sei que dá para usar o lusca-head também, mas como usei >> cacheboy16, vou colocar os passos que fiz hj, OK? >> >> 0 - instalar o freebsd 8, atualizar o sistema/ports/compilar kernel, etc >> etc >> >> :) >> 1 - cd /usr/ports/www/cacheboy16/ >> 2 - make extract >> 3 - vi /usr/ports/www/cacheboy16/work/cacheboy-1.6-r13601/src/main.c >> 4 - apagar tudo isto(senão ele não vai poder rodar como root): >> >> if (geteuid() == 0) { >> debug(0, 0) ("Squid is not safe to run as root! If you must\n"); >> debug(0, 0) ("start Squid as root, then you must configure\n"); >> debug(0, 0) ("it to run as a non-priveledged user with the\n"); >> debug(0, 0) ("'cache_effective_user' option in the config file.\n"); >> fatal("Don't run Squid as root, set 'cache_effective_user'!"); >> } >> >> 5 - alterar a função do TPROXY nome, já que no Free8 ela foi renomeada: >> vi >> >> > /usr/ports/www/cacheboy16/work/cacheboy-1.6-r13601/libiapp/comm_ips_freebsd. >> c >> 6 - alterar a linha: >> if (setsockopt(fd, IPPROTO_IP, IP_NONLOCALOK, (char *)&on, sizeof(on)) != >> 0) >> >> para >> if (setsockopt(fd, IPPROTO_IP, IP_BINDANY, (char *)&on, sizeof(on)) != 0) >> >> 7 - compilar o cacheboy16: make (se não der erro nenhum, tudo OK) >> 8 - instalar: make install >> 9 - editar o /usr/local/etc/squid/squid.conf e colocar/alterar: >> cache_effective_user root >> cache_effective_group wheel >> 10 - editar o /etc/rc.conf e colocar: >> squid_enable="YES" >> squid_user="root" >> 11 - configurar o squid.conf para permitir acesso a sua rede, criar o >> cache, >> >> etc,etc(o básico que vocÊ sempre faz). >> 12 - lembrar que para rodar em modo tproxy, a linha do squid.conf tem que >> ser: http_port 3128 transparent tproxy >> 13 - iniciar o squid: /usr/local/etc/rc.d/squid start >> 14 - confirmar se o squid está rodando como root: ps auxm|grep squid: >> root 35632 0.0 0.0 21572 2196 ?? Is 12:42PM 0:00.00 >> /usr/local/sbin/squid -D >> root 35634 9.8 3.3 288056 277464 ?? S 12:42PM 50:23.61 >> (squid) -D >> >> (squid) >> 15 - agora basta configurar as regras ipfw, por exemplo: >> ipfw fwd 187.X.X.X,3128 tcp from 200.0.0.0/24 to any dst-port 80 in via >> igb1 >> ipfw fwd 187.X.X.X tcp from any 80 to 200.0.0.0/24 in via bce0 >> Estas regras consideram que o firewall que tem squid tem IP 187.X.X.X, >> que >> seus clientes internos tem IP 200.0.0.0/24 e que a placa externa(ligada á >> internet) é bce0 e a placa ligada ás rede dos clientes(200.0.0.0/24) é >> igb1. >> 16 - Acessar da rede interna www.meuip.com.br e ver se o IP que aparece é >> o >> do proxy ou o do cliente. Se for o do cliente, tudo OK. Se for do >> proxy,tem >> algo errado, dai... >> 17 - verificar no log do squid : /usr/local/squid/logs/cache.log >> se aparecer uma linha assim: comm_fdopen6: FD 52: TPROXY comm_ips_bind >> failed? Why? é porque o cacheboy não conseguiu fazer o bind "fake" usando >> o >> IP do cliente como se fosse local address. Isto normalmente ocorre quando >> o >> cacheboy não rodou como root ou quando o freebsd não tem suporte a >> tproxy(versão 7.x). >> 18 - por fim, pode-se também dar um "netstat -na" e ver se na coluna >> "local >> address" aparece IP dos clientes, conectados á porta 80 remota. Isto >> indica >> que o TPROXY está OK: >> >> tcp4 0 651 187.X.X.13.51121 174.120.182.195.80 >> ESTABLISHED >> tcp4 0 0 187.X.X.104.51111 74.125.47.138.80 >> ESTABLISHED >> >> Acho que o email ficou meio confuso, vale a pena postar tutorial no site >> da >> FUG.. :) >> >> >> -------------------------------------------------- >> From: "Marcelo Gondim" <gon...@linuxinfo.com.br> >> Sent: Thursday, April 29, 2010 6:44 PM >> To: "'Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)'" >> <freebsd@fug.com.br> >> Subject: [FUG-BR] RES: Cacheboy Free 8.0 + Tproxy >> >>> Pessoal, >>> >>> Aproveitando o assunto do Lusca. Alguém tem algum tutorial ou link de >>> documentação sobre instalação do Lusca funcionando com o TProxy no >>> FreeBSD >>> 8? Porque já tentei de várias formas e não consegui. Tenho a solução >>> funcionando perfeito em CentOS 5.4 em bridge + squid 3.1.1 + TProxy mas >>> estou querendo fazer algo semelhante com FreeBSD 8.0 e o Lusca. Estou >>> querendo fazer uma solução como esta que fiz: >>> http://www.linuxinfo.com.br/squid_tproxy.htm >>> Se alguém tiver alguma doc pra ajudar ou indicação, agradeço. >>> >>> Grande abraço a todos. >>> >>> -----Mensagem original----- >>> De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em >>> nome >>> de sergio >>> Enviada em: quinta-feira, 29 de abril de 2010 18:16 >>> Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR) >>> Assunto: Re: [FUG-BR] Cacheboy Free 8.0 + Tproxy >>> >>> Estou pra testar o Lusca com 4 HD's SCSI com FreeBSD 8 e ZFS, nós >>> ultimos >>> testes o Lusca com ZFS e HD SAS foi quem se comportou melhor. >>> >>> >>>> -----Original Message----- >>>> From: ren...@frederick.eti.br >>>> Sent: Thu, 29 Apr 2010 14:28:02 -0300 >>>> To: freebsd@fug.com.br >>>> Subject: [FUG-BR] Cacheboy Free 8.0 + Tproxy >>>> >>>> Pessoal, para contar no histórico da lista, fiz o procedimento >>>> abaixo[1] >>>> com o cacheboy(já que o lusca-head não tem diskd) e está funcionando >>>> corretamente com o Free 8.0 AMD64. >>>> >>>> Também adicionei algumas sysctl como já citei no passado[2] >>>> >>>> [1] http://www.fug.com.br/historico/html/freebsd/2010-04/msg00308.html >>>> [2] http://www.mail-archive.com/freebsd@fug.com.br/msg48652.html >>>> >>>> A propósito, falando em sysctl, apesar desta máquina não rodar BGP, >>>> ativei a sysctl >>>> >>>> net.inet.flowtable.enable=0 >>>> >>>> pois com aumento do tráfego os pings estavam variando de 1s até uns >>>> 30s. >>>> >>>> o Servidor tem interfaces bce e igb. >>>> >>>> Abraços >>>> >>>> >>>> ------------------------- >>>> Histórico: http://www.fug.com.br/historico/html/freebsd/ >>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >>> ------------------------- >>> Histórico: http://www.fug.com.br/historico/html/freebsd/ >>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >>> >>> ------------------------- >>> Histórico: http://www.fug.com.br/historico/html/freebsd/ >>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >>> >> ------------------------- >> Histórico: http://www.fug.com.br/historico/html/freebsd/ >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >> >> ------------------------- >> Histórico: http://www.fug.com.br/historico/html/freebsd/ >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >> > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd