+ Responder ao Tópico



  1. #1

    Thumbs down Dubida sobre proxy transparente

    Olá pessoal

    Estou com problema chato de resolver, tenho uma rede 192.168.0.0/24 e quero que todo requisição de Internet seja re-enviada para Squid-cache que esta dentro da rede usando o ip 192.168.0.2, endereço do gateway é 192.168.0.1, penso que para fazer essa operação seja muito simples, colocar no gateway

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80

    O squid-cache está configurado como Proxy-transparente.

    Ok ?

    Não sei o que está acontecendo os pacote chegam até o Proxy e vão até o site mas não volta para usuário, porque isso acontece ?

    Alguém pode me ajudar ?

    Obrigado
    Bruno Steven

  2. #2

    Padrão

    O Squid está na porta 80 realmente ??? pois sua regra no iptables está criando um loop o.O. Experimente específicar a interface de entrada.

  3. #3

    Padrão

    Olá

    O squid está rodando na porta 80

    netstat -an -p |grep squid
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3510/(squid)
    udp 0 0 0.0.0.0:32914 0.0.0.0:* 3510/(squid)
    udp 0 0 127.0.0.1:32916 127.0.0.1:32915 ESTABLISHED3510/(squid)
    udp 0 0 0.0.0.0:3130 0.0.0.0:* 3510/(squid)
    udp 0 0 0.0.0.0:3401 0.0.0.0:* 3510/(squid)
    udp 0 0 0.0.0.0:4827 0.0.0.0:* 3510/(squid)
    unix 2 [ ] DGRAM 20799 3508/squid

    A configuracao do Squid está assim ?

    # Intrucao para versao 2.4 e 2.
    httpd_accel_port 80
    httpd_accel_host virtual
    httpd_accel_with_proxy on
    httpd_accel_uses_host_header on


    Compilção do Squid é essa

    ./sbin/./squid -v
    Squid Cache: Version 2.5.STABLE14
    configure options: --prefix=/opt/Programas_tmp/squid25/ --enable-wccp --with-maxfd=8192 --enable-gnuregex --enable-carp --enable-sorteio=aufs,diskd,ufs,null --enable-head-replacement --enable-removal-polices=heap,lru --enable-icmp --enable-epoll --enable-useragent-log --enable-referer-log --enable-snmp --enable-arp-acl --enable-htcp --enable-ssl --with-openssl=/usr/include/openssl/ --enable-cache-digests --enable-err-laguage=Portuguese --enable-ident-lookup --enable-truncate --enable-underscore --enable-linux-netfilter

    É isso que tenho configurado.

  4. #4

    Padrão

    Coloque o squid em outra porta, e altere a regre de redirecionamento:

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --REDIRECT PORTA

  5. #5

    Padrão

    Ola Amigo
    Cara a regra que você indicou no post acredito que seja caso o Squid estivesse rodando dentro do Gateway, mas está rodando fora em outro computador .

    # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

    Essa regra do iptables não funciona !

    Obrigado pela força !!

  6. #6

    Padrão

    Saudações amigos,
    Aspen, se vc colocar apenas essa regra
    Código :
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
    os próprios pacotes que vierem do proxy vão ser direcionados para o proxy novamente, tente esta regra
    Código :
    iptables -t nat -A PREROUTING -s ! 192.168.0.2 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80

  7. #7

    Angry

    Olá Amigo

    Fiz essa regra como você tinha indicado mas não alterou nada, abaixo coloque o log da regra.

    Oct 10 14:51:29 linuxteste kernel: redirect_hostIN=eth0 OUT= MAC=00:50:56:94:00:42:00:c0:9f:e5:67:a4:08:00 SRC=192.168.0.201 DST=64.233.169.104 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=41500 DF PROTO=TCP SPT=1697 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0

    Oct 10 14:51:32 linuxteste kernel: redirect_hostIN=eth0 OUT= MAC=00:50:56:94:00:42:00:0f:b0:cf:55:47:08:00 SRC=192.168.0.41 DST=66.249.83.83 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=5594 DF PROTO=TCP SPT=39427 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0

    Legenda
    O IP 192.168.0.41 é IP do proxy , o IP 192.168.0.201 é IP do cliente do Proxy e o IP 192.168.0.188 é Gateway


    Carakas !!! nao sabia q esse negocio era tão dificil !!!

  8. #8

    Padrão

    Tenta assim
    iptables -t nat -A PREROUTING -s ! 192.168.0.41 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.41:80
    iptables -t nat -A POSTROUTING -d 192.168.0.41 -p tcp --dport 80 -j SNAT --to 192.168.0.188

  9. #9

    Padrão

    A regra de redirecionamento é aquela bem simples mesmo, da porta 80 para 3128, só que ela tem que ficar na maquina que roda o squid. o Ideal seria a maquina do squid ser nat, da outra maquina aonde os users estao penedurados, no caso a 192.168.0.1
    eu faço assim no provedor aonde trabalho
    =]

  10. #10

    Padrão

    Olá Amigos

    Cara já fez esse tipo de configuração antes de proxy transparente mas sempre de uma porta para outra porta, nunca de uma porta para outro host ainda mas na mesma rede, é de assustar de ver que o negocio não roda!!!

    Não sei o mas o que fazer já fiz diversas regras e nenhuma funciona !!!

    Caro joseguilherme, as regras que você está me passando são regras que forçam o pacote ir até o proxy.. (otimo) mas mesmo assim não funciona !!!

    Ja compile esse squid diversas vezes e nada !!! será porque está tudo na mesma interface e usando a mesma rede 192.168.0. não funciona ?

    Obrigado

  11. #11

    Padrão

    aqui no meu squid.conf eu tenho uma linha no inicio dele

    a primeira linha é
    http_port 3128 transparent

    aproveitando quem ler aqui tá funcionaod blz o proxy transparente o problema é no acesso a sites https 443
    no firewaal tá assim

    /sbin/iptables -t nat -A PREROUTING -i $INT_IF -p tcp --dport 80 -j REDIRECT --to-port 3128
    /sbin/iptables -t nat -A PREROUTING -i $INT_IF -p tcp --dport 443 -j REDIRECT --to-port 3128

    a navegação normal funciona com o proxy transparente mas em sites https não fiunciona o que pode ser???

  12. #12

    Padrão

    Olá ..
    Cara o seu problema pode ser que o firewall que está bloqueado a porta 443. Você liberou essa porta no chain Forward ? Ou pode ser que squid esteja bloqueando a porta nesse caso quando você acessar qualquer porta 443 o Squid avisa no Browser.

  13. #13

    Padrão

    Olá pessoal

    Consegui resolver o problema do Proxy-transparente, mas usando outro host em uma rede diferente, algo do tipo Proxy na rede 192.168.1.0, rede interna 192.168.0.0, dessa forma funcionou, o porque disso não sei. Acredito que regra do iptables para mandar pacote http para porta especial funcina somente se o proxy estiver dentro do Gateway, a regra redirecionar requisição http para outro host funciona apenas em host que tenha IP de outra rede, agora o pq disso não sei !!!

    Valeu pessoal.
    Obrigado.