+ Responder ao Tópico



  1. #1

    Padrão regra de proxy transp.

    Olá,
    Quero utilizar essa regra para proxy transparente com o squid:

    /usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

    porém, com apenas essa regra os browsers não navegam como proxy transparente. Coloquei a regra dessa forma, por causa do conectividade social da caixa (a mãe de todos meus problemas). Para testar, tentei também com as regras:

    /usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0/0 --dport 80 -j REDIRECT --to 3128

    e também

    /usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 192.168.0.1/24 --dport 80 -j REDIRECT --to 3128

    mas, apenas com essas regras o proxy não fica transparente. Só consigo isso com a regra:

    iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

    Mas os chamados para 200.201.174.0/24 não podem passar pelo proxy...alguém pode me dar uma luz??....

    []´s

  2. #2
    Visitante

    Padrão regra de proxy transp.

    A sua regra está quase correta(usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128), você deve alterar apenas o lugar onde voêÊ colocou o "!". A regra fica da seguinte forma:usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 ! -d 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128. Tenho aqui um proxy transparente e funciona desta forma.

  3. #3

    Padrão regra de proxy transp.

    Obrigado, vou fazer isso (mudar a "!" de lugar). Porem ele não faz o proxy transp. apenas com a regra:

    /usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to 3128

    Só consigo isso com a regra:

    /usr/sbin/iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

    pq será que isso acontece?

  4. #4
    Visitante

    Padrão regra de proxy transp.

    Sou eu de novo, ele não fazia teu proxy transparente porque o regra estava incorreta, você pode também tentar usar a regra que eu uso aqui que é a seguinte: usr/sbin/iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp ! -d 200.201.174.0/24 --dport 80 -j REDIRECT --to 3128. Onde $LAN_IFACE é a eth da sua rede interna, por exemplo a eth1. E graças a Deus funciona certinho o proxy transparente.

  5. #5

    Padrão regra de proxy transp.

    vou tentar com essa regra que vc me passou agora. Porém no post anterior se vc reparar essa regra não possue a exclusão do domínio da caixa. Mas mesmo assim ela não funfa. Eu vou no cliente agora...acho que agora vai. Mto obrigado. se não rolar eu posto aqui. falows...

  6. #6
    Visitante

    Padrão regra de proxy transp.

    Ok, depois que vc tentar com a regra que te passei vc me fala.

  7. #7

    Padrão regra de proxy transp.

    kra, não sei o que acontece lá...é incrivel.
    Coloquei aquela regra e nada. Mesmo sem a parte da caixa...não funciona como proxy transparente nem a pau. Limpei tudo antes com -F e -F -t nat. e nada. Tambei tentei colocando so a regra no bash, sem usar o script todo. e nada. a net para de funcionar nos clientes. Mas quando uso aquela regra com MASQUERADE eles funcionam. Isso ta me quebrando..mto obrigado pela mão. Do jeito que o firewall ta ai ele funciona, mas o conectividade não. Essa parte está no fim do arquivo...lá tem várias outras formas que eu ja tentei.

    meu firewall:


    iptables -F
    iptables -F -t nat
    iptables -F -t mangle

    ## Instalando modulos
    modprobe ip_tables
    modprobe ip_nat_ftp
    modprobe ip_conntrack_ftp
    modprobe iptable_filter
    modprobe ip_conntrack


    ## Variáveis
    IPTABLES=iptables
    EXTIF="eth1"
    INTIF="eth0"

    ## Política
    /usr/sbin/iptables -P INPUT ACCEPT
    /usr/sbin/iptables -F INPUT
    /usr/sbin/iptables -P OUTPUT ACCEPT
    /usr/sbin/iptables -F OUTPUT
    /usr/sbin/iptables -P FORWARD ACCEPT
    /usr/sbin/iptables -F FORWARD
    /usr/sbin/iptables -t nat -F

    # Melhora latência de ssh pra fora
    #$IPTABLES -A PREROUTING -t mangle -p tcp --dport ssh -j TOS --set-tos Minimize-Delay

    # Não deixa smtp sair com prioridade pra não matar o link
    #$IPTABLES -A PREROUTING -t mangle -p tcp --dport smtp -j TOS --set-tos Normal-Service

    # Melhora Thoughput de http que sai
    #$IPTABLES -A PREROUTING -t mangle -p tcp -s $EXTIF --sport 8081 -j TOS --set-tos Maximize-Throughput

    ## Libera a CAIXA!!! com revolta!
    /usr/sbin/iptables -A INPUT -i $EXTIF -s 200.201.174.0/24 -d 0.0.0.0/0 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i $INTIF -s 200.201.174.0/24 -d 0.0.0.0/0 -j ACCEPT

    ## Localhost
    /usr/sbin/iptables -A INPUT -i lo -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o lo -j ACCEPT

    ## Liberar portas

    # 80 (Caixa)
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 80 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 80 -j ACCEPT
    # 443 (Padrão)
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 443 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 443 -j ACCEPT
    #2631 (Caixa)
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 2631 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 2631 -j ACCEPT
    #8017 (Receita)
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 8017 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 8017 -j ACCEPT
    #1080 (TED)
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 1080 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p TCP --dport 1080 -j ACCEPT
    #8081 (atual http)
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 8081 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p TCP --dport 8081 -j ACCEPT
    #1863(MSN)
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 8081 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p TCP --dport 8081 -j ACCEPT


    #Forward da rede
    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 8081 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 8081 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 8081 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 8081 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 2631 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 2631 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 2631 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 2631 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 8017 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 8017 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 8017 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 8017 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 1080 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 1080 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 1080 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 1080 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 1864 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 1864 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 1864 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 1864 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 80 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 80 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 80 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 80 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 443 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 443 -j ACCEPT


    ## Saida SMTP
    # Libera SMTP
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 25 -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 25 -j ACCEPT

    ## Saida FTP
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
    # ftp ativado
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
    # ftp passivo
    /usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
    /usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT


    ## Nega 19720
    /usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 19720 -j DROP

    ## Abre 19720 Local
    /usr/sbin/iptables -A INPUT -i $INTIF -s 192.168.9.0/24 -p tcp --dport 19720 -j ACCEPT

    ## Nega 19720 Externo
    /usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 19721 -j DROP

    ## Abre ssh
    /usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 1972 -j ACCEPT

    ## Abre SMTP local
    /usr/sbin/iptables -A INPUT -i $INTIF -p tcp --dport 25 -j ACCEPT
    ## Nega SMTP externo
    /usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 25 -j DROP


    ## Libera chamada ao Proxy
    /usr/sbin/iptables -A INPUT -i $INTIF -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
    #/usr/sbin/iptables -A INPUT -i $INTIF -s 0/0 -p tcp --dport 3128 -j ACCEPT
    /usr/sbin/iptables -A INPUT -s 127.0.0.0/8 -p tcp --dport 3128 -j ACCEPT

    # Nega exterior
    #/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 3128 -j DROP

    ## Libera POP3 e IMAP interior
    /usr/sbin/iptables -A INPUT -i $INTIF -s 192.168.0.0/24 -p tcp --dport 110 -j ACCEPT
    /usr/sbin/iptables -A INPUT -i $INTIF -s 192.168.0.0/24 -p tcp --dport 143 -j ACCEPT

    ## MSN
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 1863 -j ACCEPT
    #iptables -A FORWARD -s 192.168.0.0/24 -d loginnet.passport.com -j ACCEPT

    ## Nega POP3 e IMAP exterior
    /usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 110 -j DROP
    /usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 143 -j DROP
    ## Abre 8081 externo
    /usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 8081 -j ACCEPT


    ## FORWARD
    # loga todo forward
    #/usr/sbin/iptables -A FORWARD -j LOG


    ## Proxy transparente (meio porco)
    #iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

    #iptables -t nat -A POSTROUTING -o eth1 -s 192.168.9.11/32 -j MASQUERADE
    #iptables -t nat -A POSTROUTING -o eth1 -s 192.168.9.16 -j MASQUERADE
    #iptables -t nat -A POSTROUTING -o eth1 -s 192.168.9.54/32 -j MASQUERADE
    #iptables -t nat -A POSTROUTING -o eth1 -s 192.168.9.0/24 -j MASQUERADE
    #iptables -t nat -A POSTROUTING -o eth1 -s 192.168.10.0/24 -j MASQUERADE

    ## Proxy transparente (CAIXA NOVAMENTE)
    /usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 ! -d 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
    #/usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0/0 --dport 80 -j REDIRECT --to 3128
    #/usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to 3128
    /usr/sbin/iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE


    # Habilita forward
    echo 1 > /proc/sys/net/ipv4/ip_forward

  8. #8
    whinston
    Visitante

    Padrão squid.conf

    teu squid.conf tá com aquelas 4 linhas pra trabalhar em modo transparente ?

  9. #9

    Padrão regra de proxy transp.

    Olá Whinston,

    sim,estão.
    http_port 3128
    httpd_accel_host virtual
    httpd_accel_port 80
    httpd_accel_with_proxy on
    httpd_accel_uses_host_header on


    quando eu dou o MASQUERADE ele fica transparente...

    Mas com essa regra ($IPT -t nat -A PREROUTING -s $LAN -d ! 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128) não funfa.

  10. #10
    whinston
    Visitante

    Padrão só conectividade

    mas não funciona "apenas" o conectividade né? o resto vai?
    o meu tá igual o seu.. funciona tudo, exceto conectividade
    tb to a procura da regra correta, atualmente tá assim:

    $iptables -t nat -A PREROUTING -p tcp -i eth0 -s $lan -d ! $lan --dport 80 -j REDIRECT --to-port 8085
    $iptables -t nat -A PREROUTING -p udp -i eth0 -s $lan -d ! $lan --dport 80 -j REDIRECT --to-port 8085

    como eu tenho um apache rodando, eu falo que eu quero mandar tudo que vier na 80 para a 8085 (proxy transparente), exceto o que for com destino a própria a LAN, ou seja, o webserver.

    como eu já uso a regra com ! na linha, não sei se posso colocar mais alguma para desviar o tráfego com destino ao conectividade, pra passar por fora

  11. #11

    Padrão regra de proxy transp.

    não fica nem transparente o proxy. Com apenas essa regra só funciona a net se eu configurar no browser...