+ Responder ao Tópico



  1. #1

    Padrão Proxy Transparente não funciona de jeito nenhum!!

    Primeiramente vou explicar como está minha configuração:

    Minha conexão é ADSL em modo bridge, cujo IP do modem é 10.1.1.1
    IPs das placas de rede:
    eth0: 10.1.1.3
    eth1: 192.168.1.1

    A conexão já está compartilhada, ou seja, consigo navegar normalmente nas maquinas clientes. O problema está só no proxy transparente, pois não funciona de jeito nenhummm.. Já tentei várias maneiras. Vou postar maior quantidade de informações que talves possa ser util.

    # squid -v
    Squid Cache: Version 2.6.STABLE5
    configure options: '--prefix=/usr' '--exec_prefix=/usr' '--bindir=/usr/sbin' '--sbindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--sysconfdir=/etc/squid' '--localstatedir=/var/spool/squid' '--datadir=/usr/share/squid' '--enable-async-io' '--with-pthreads' '--enable-storeio=ufs,aufs,coss,diskd,null' '--enable-linux-netfilter' '--enable-arp-acl' '--enable-epoll' '--enable-removal-policies=lru,heap' '--enable-snmp' '--enable-delay-pools' '--enable-htcp' '--enable-cache-digests' '--enable-underscores' '--enable-referer-log' '--enable-useragent-log' '--enable-auth=basic,digest,ntlm' '--enable-carp' '--with-large-files' 'i386-debian-linux' 'build_alias=i386-debian-linux' 'host_alias=i386-debian-linux' 'target_alias=i386-debian-linux'
    ________________________________________________

    squid.conf

    http_port 3128 transparent
    cache_mem 8 MB
    cache_dir ufs /var/spool/squid 500 16 256
    cache_access_log /var/log/squid/access.log
    cache_log /var/log/squid/cache.log
    cache_store_log /var/log/squid/store.log
    pid_filename /var/log/squid/squid.pid
    visible_hostname debian
    cache_effective_user proxy
    cache_effective_group proxy
    acl localhost src 127.0.0.1/255.255.255.255
    http_access allow localhost
    acl REDE_LOCAL src 192.168.1.0/255.255.255.0
    acl all src 0.0.0.0/0.0.0.0
    http_access allow REDE_LOCAL
    http_access deny all
    __________________________________________________

    Já adicionei a regra no iptables:
    # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

    E de nada adianta. Não funciona!
    A maquina cliente continua a navegar numa boa, mas não passa pelo proxy. Pois não gera nada no Log.

    Acredito que seja algum problema com o firewall, pois quando especifico o endereço do proxy no browser, tudo funciona como deve..

    Me ajudemmmm..

    Obrigado!

  2. #2

    Padrão

    Vc não está fazendo restrição de nada no seu squid.conf, criou uma acl REDE_LOCAL e liberou o trânsito sem nenhuma restrição (http_access allow REDE_LOCAL), dessa maneira, toda máquina vai navegar qualquer site.

    Para testar cria alguma regra negando acesso...

  3. #3

    Padrão

    Sim.. Mas minha idéia a principio não é restringir o acesso a nenhuma página. Mesmo que esteja liberado o acesso a qualquer site, quando um cliente acessa qualquer pagina ela tem que aparecer no Log.
    E esse é o problema! Pois quando especifico o endereço do proxy no browser, toda pagina que é visitada é registrada no log.

    Consegui esclarecer melhor o problema RicardoPerin??
    E obrigado pela resposta..
    Se tiver mais alguma dica, por favor, me ajudee!

  4. #4

    Padrão

    Bom, se vc parar o serviço do squid e os usuários continuarem navegando, é pq sua regra de firewall não está funcionando por algum motivo, talves alguma regra anterior já esteja tomando alguma ação.

    Dá uma verificada nisso....

  5. #5

    Padrão

    Não teria como você postar seu script de firewall aqui para que possamos analisá-lo e assim tentarmos ajudá-lo?

  6. #6

    Padrão

    Adiciona o seguinte ...

    no final do teu squid.conf

    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563 acl Safe_ports port 80 # http
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 563 # https, snews
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl Safe_ports port 901 # SWAT
    acl purge method PURGE
    acl CONNECT method CONNECT


    # Proxy Transparente
    httpd_accel_host virtual
    httpd_accel_port 80
    httpd_accel_with_proxy on
    httpd_accel_uses_host_header on


    Flw ...

  7. #7

    Padrão

    Pessoal, obrigado pelas respostas..

    Consegui resolver..

    Apenas adicionei a regra de redirecionamento antes da regra de compartilhamento da conexão. Ficando assim:

    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


    Não sei dizer o porque disso, ou o que uma influencia na outra.. Só sei q funcionou! Heheh.

    Abraços..