+ Responder ao Tópico



  1. #1

    Padrão Problemas com Squid/Firewall

    Tenho um servidor de Proxy funcionando certinho com o Dansguardian. O proxy está na porta 8080. O problema é que não faço proxy para e-mails portanto tenho que habilitar o roteamento na máquina. Dai surgue outro problema, que se algum usuário "espertinho" resolver tirar as configurações do proxy de seu navegador ele vai navegar sem passar pelo proxy. Bom tentei resolver isso usando o iptables, mas nessas regras (que estão abaixo) ele bloqueia o acesso ao navegação, o e-mail continua funcionando... só que não navega, nem pelo proxy nem sem o proxy... Não sei o que fazer!!!! Agradeço a ajuda de todos.


    ############### F I R E W A L L ##################
    # Definição de variáveis e regras fixas

    IPT='/usr/sbin/iptables'
    IFINT='10.60.0.0/16'
    echo 1 > /proc/sys/net/ipv4/ip_forward
    modprobe iptable_nat
    $IPT -F
    $IPT -t nat -F
    $IPT -t nat -P POSTROUTING DROP
    # Ativando o proxy transparente
    $IPT -t nat -A PREROUTING -i eth1 -s $IFINT -p tcp --dport 80 -j REDIRECT --to-port 8080

    # Ativando mascaramento para determinadas portas

    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p icmp -o eth0 -j MASQUERADE
    #$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 110 -o eth0 -j MASQUERADE
    #$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 110 -o eth0 -j MASQUERADE
    #$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 25 -o eth0 -j MASQUERADE
    #$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 25 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 995 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 995 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 465 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 465 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 80 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 80 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 8080 -o eth0 -j ACCEPT
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 53 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 53 -o eth0 -j ACCEPT
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 53 -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 53 -o eth0 -j ACCEPT
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport https -o eth0 -j MASQUERADE
    $IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport https -o eth0 -j MASQUERADE

  2. #2
    wrochal
    Visitante

    Wink

    Caro,

    Basta usar a seguinte regra:

    iptables -A FORWARD -s 192.168.0.0/24 -d 0/0 -p tcp --dport 80 -j REJECT
    iptables -A FORWARD -s 192.168.0.0/24 -d 0/0 -p udp --dport 80 -j REJECT

    Assim você força o usuário usar o proxy.

    Abraços,

  3. #3

    Padrão

    É isso aí mano, é como nosso amigo wrochal falou, com estas regras vc irá obrigar a pessoa a passar pelo proxy, vc tb precisa conferir se o squid esta configurado para trabalhar em proxy transparente:

    Squid 2.5
    # Proxy transparente
    httpd_accel_host virtual
    httpd_accel_port 80
    #httpd_accel_single_host off
    httpd_accel_with_proxy on
    httpd_accel_uses_host_header on
    #logfile_rotate 7
    coredump_dir /var/cache/squid

    Squid 2.6
    # TAG: http_port
    http_port 192.168.0.254:3128 transparent

    Valews

  4. #4

    Padrão

    Cara meu proxy já está em modo transparente. Uso o Squid 2.6
    http_port 8080 transparent
    Mas mesmo com essas regras o problema persiste. Se eu uso as regras do iptables, o e-mail continua funcionando porém a navegação para mesmo usando o proxy. Putz não sei mais o que fazer!
    Agradeço pela ajuda!

  5. #5

    Padrão

    Calma aí.
    Vc disse que seu proxy é transparente, com isso ele não tem configuração no Browser a se fazer.

    Para um proxy autenticado, ai sim você teria que colocar no browser. Sendo assim, basta você seguir a regra do Wrochal e está ok.

    Assim você nega a porta 80 e ele vai ser obrigado a sair pela 8080.

    $IPTABLES -t nat -A POSTROUTING -o $EXTERNA_INTERFACE -m multiport -p tcp --dports 20,21,22,25,53,110,443,465,995,1479,2083,2631,3007,3456 -j MASQUERADE

    $IPTABLES -t nat -A POSTROUTING -o $EXTERNA_INTERFACE -m multiport -p udp --dports 20,21,53,443 -j MASQUERADE


    ### REDIRECIONANDO P/ PROXY
    $IPTABLES -t nat -A PREROUTING -s $LAN_RANGE -p tcp --dport 80 -j REDIRECT --to-port 8080

  6. #6

    Question Problemas Squid/Firewall

    Ok. com essas dicas deu certo! Meu proxy está em modo transparente e com autenticação.
    O problema agora é que se o usuário remover as configurações do browser, ele continua navegando, mas saindo pelo proxy, porém sem se autenticar!
    Agradeço a ajuda de todos

  7. #7

    Padrão

    Citação Postado originalmente por ticesar7 Ver Post
    Ok. com essas dicas deu certo! Meu proxy está em modo transparente e com autenticação.
    O problema agora é que se o usuário remover as configurações do browser, ele continua navegando, mas saindo pelo proxy, porém sem se autenticar!
    Agradeço a ajuda de todos
    Olha só.

    Ja vi diversos tópicos e um que até hoje eu vejo são confusões quanto o transparente e autenticado.

    Não tem como ter os 2 juntos.

    Ajuste sua regra do firewall que acredito que você obterá sucesso.

    Ou você tem Squid Auth ou Squid Transparente

    Falow

  8. #8

    Question NatACL

    Obrigado pela ajuda!
    Mas já ouviram falar desse projeto: NatACL (NatACL) ???
    É bom ? ou é furada ?
    Agradeço ajuda!
    [ ]´s