+ Responder ao Tópico



  1. #1

    Question Proxy Transparent não funciona

    Boa tarde galera fiz a estou criando um proxy na empresa onde trabalho para controlar os 80 pcs que tenho conectado a internet. Estou utilizando o Squid3.0 Configurei o squid.conf perfeitamente, quando vou no navegador e configuro as opções de proxy. O proxy funciona perfeitamente, mais não funciona transparent por nada nesse mundo. O que faço para resolver o problema?
    Utilizo um modem Dlink 500B(router) e um 2 Switchs 48 portas todos interligados.
    No servidor proxy tenho duas placas de rede eth0 e eth1. Não consigo fazer funcionar o proxy transparente por nada, vaja abaixo meu squid.conf

    Código :
    #Porta:
    http_port 10.1.1.100:3128 transparent
    visible_hostname Proxy
     
    error_directory /usr/share/errors/Portuguese
     
    hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY
     
    # >> Quantidade de memória RAM dedicada ao cache <<
    cache_mem 8 MB
    maximum_object_size_in_memory 256 KB
    maximum_object_size 8 MB
    minimum_object_size 0 KB
    cache_swap_low 90
    cache_swap_high 95
     
    # >> Cache em disco <<
    cache_dir ufs /usr/local/squid/cache/ 100 16 256
     
    # Arquivo onde são guardados os logs de acesso do Squid.
    cache_access_log /var/log/squid/access.log
     
    # >> Padrão de atualização do cache <<
    refresh_pattern ^ftp: 15 20% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280
     
    # >> Controle de acesso <<
    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 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
     
    http_access allow manager localhost
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow localhost
     
    # A acl "proibidos" é usada para fazer bloqueio baseado em palavras
    acl proibidos url_regex -i "/etc/squid/proibidos"
    http_access deny proibidos
     
    ## Esta acl bloqueia todos malewares contidos em /etc/squid/malware
    acl malware url_regex -i "/etc/squid/malware"
    http_access deny malware
     
    ## Esta acl bloqueia todos arquivos com extensões contidas em
    acl ext_arquivos url_regex -i "/etc/squid/ext_arquivos"
    http_access deny ext_arquivos
     
    ## Esta acl determina que somente usuários da acl "redelocal" tem acesso
    acl redelocal src 10.1.1.0
    http_access allow redelocal
     
    ## Esta acl libera msn por mac address
    ## acl mac arp "/etc/squid/mac"
    ## http_access allow redelocal mac
     
    ## Esta acl libera os domínios contidos no arquivo
    acl sites_liberados url_regex -i "/etc/squid/sites_liberados"
    http_access allow sites_liberados
     
    ## Esta acl libera os endereços ip contidos no arquivo
    acl ip_liberados url_regex -i "/etc/squid/ip_liberados"
    http_access allow ip_liberados
     
    # >> Bloqueio com base no horário <<
    acl madrugada time 00:00-06:00
    http_access deny madrugada
     
    # >> Proxy com autenticação <<
    # auth_param basic realm Digite seu Login e Senha:
    # auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/usuarios
    # acl usuarios proxy_auth "/etc/squid/usuarios"
    # http_access allow usuarios
     
    # >> Controle de acesso <<
    ##http_access allow redelocal
    ##http_access deny all
    http_access allow all

    Setando as configurações do squid no navegador ele funciona perfeitamente, mais preciso dele transparente, pois existem engraçadinhos aqui q sabem remover o proxy!

  2. #2

    Padrão

    Você colocou a regra no iptables?
    iptables -i ethX -t nat -A POSTROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    troque o ethX pela sua interface de entrada...
    Outra coisa, esse Linux ta fazendo NAT??



  3. #3
    Analista de Sistemas Avatar de MDdantas
    Ingresso
    Apr 2007
    Localização
    Caruaru - Pernambuco
    Posts
    422

    Padrão

    maumaus,

    Boa noite. Você direcionou a porta 80 para a porta 3128, como informou o nosso amigo magnun??? Também ativou o redirecionamento de pacotes ipv4 e também ativou o ip masquerade ("NAT")???

    http_port 3128 transparent -> Utiliza assim apenas para ativar o proxy transparente.

    Atenciosamente,

  4. #4

    Padrão

    Opa ja fiz isso sim
    iptables -i eth0 -t nat -A POSTROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    e ja ativei tambem o ipv4!

    Não sei o que esta acontecendo!

  5. #5

    Padrão

    Citação Postado originalmente por maumauns Ver Post
    Opa ja fiz isso sim
    iptables -i eth0 -t nat -A POSTROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    e ja ativei tambem o ipv4!

    Não sei o que esta acontecendo!
    Olá amigo... como você disse seu proxy esta configurado perfeitamente...
    Porém não sei, derrepente faltou você permitir o trafego na chain FORWARD, se ela estiver em DROP!
    A diferença de quando você seta o proxy no navegador é que o destino é o proxy, mas quando esta transparente o destino é o ip que o DNS retorna para você!

    Código :
    iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A FORWARD -s <sua rede>/<sua mascara> -o <interface wan> -j ACCEPT
    Verifica aeee!!
    Última edição por zenun; 20-08-2008 às 18:38. Razão: mais info...

  6. #6
    Analista de Sistemas Avatar de MDdantas
    Ingresso
    Apr 2007
    Localização
    Caruaru - Pernambuco
    Posts
    422

    Padrão

    Citação Postado originalmente por maumauns Ver Post
    Opa ja fiz isso sim
    iptables -i eth0 -t nat -A POSTROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    e ja ativei tambem o ipv4!

    Não sei o que esta acontecendo!
    ô Maumauns o teu erro está ne regra de direcionamento da porta 80. Não é POSTROUTING E SIM PREROUTING CARA.

    COLOCA ASSIM -->>> iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

    onde eth1 ->> interface ligada na sua rede interna

    DEPOIS FAZ --->>> iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    onde eth0 ->> interface ligada na internet.

    ativa o redirecionamento de pacotes -------->>> echo 1 > /proc/sys/net/ipv4/ip_forward

    Verifique também se está criando as regras certas no iptables, como tornar as interfaces confiavéis eth1, eth0, como também permitir a entrada [FTP, SMTP, HTTP, HTTPS, SAMBA]...


    Isso resolve o seu problema,

    Atenciosamente,
    Última edição por MDdantas; 20-08-2008 às 23:22.

  7. #7

    Padrão verifica este

    #regras no fire:
    modprobe iptable_nat
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o $placainternet -j MASQUERADE
    iptables -t nat -A PREROUTING -i $placalocal -p tcp --dport 80 -j REDIRECT --to-port 3128
    # squid:
    http_port 3128 transparent
    # quamdo vc coloca proxy e porta no seu navegar funciona? para sabermos se apenas nao esta transparent ou nao
    esta realmente fazendo nada.
    eu tive problemas assim qndo deixe faltando conf. de DHP ou configurei as eth de maneira errada.
    abracos