Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1

    Padrão proxy tranparente não autentica

    Ola pessoal.

    Estou tendo um problema em configurar proxy transparente no squid 2.6. Estou testando ele em meu computador aqui de minha casa. Não tem nenhum firewall bloqueando. O meu computador esta ligado diretamente no modem pela eth0. O caso é o seguinte: eu configuro no squid a linha http_port 3128 transparent e rodo a linha

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

    porém, quando eu abro o firefox, ele navega perfeitamente, mas os bloqueios com sites de putaria nao funcionam. Acredito que não seja problema na minha acl de bloqueio, pq quando eu deixo ele configurado como proxy autenticado, ele bloqueia os sites de putaria, apenas como transparente que ele não bloqueia. Alguem pode me ajudar ?....abaixo segue meu squid.conf


    http_port 3128
    hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY
    cache_mem 256 MB
    maximum_object_size_in_memory 256 KB
    maximum_object_size 256 MB
    minimum_object_size 0 KB
    cache_swap_low 90
    cache_swap_high 95
    cache_dir ufs /var/spool/squid 4096 16 256
    cache_access_log /var/log/squid/access.log

    visible_hostname kurumin
    refresh_pattern ^ftp: 15 20% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280

    acl all src 0.0.0.0/0.0.0.0
    acl proibidos dstdom_regex "/etc/squid/proibidos"
    acl malware dstdom_regex "/etc/squid/malware"
    acl redelocal src 10.1.1.0
    acl sites_liberados dstdomain -i "/etc/squid/sites_liberados"
    acl ip_liberados dst "/etc/squid/ip_liberados"
    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
    http_access deny proibidos

    ## Esta acl bloqueia todos malewares contidos em /etc/squid/malware
    http_access deny malware

    ## Esta acl determina que somente usuá¡rios da acl "redelocal" tem acesso #liberado as acl's abaixo
    http_access allow redelocal

    ## Esta acl libera os domí*nios contidos no arquivo /etc/squid/sites_liberados/
    http_access allow redelocal sites_liberados

    ## Esta acl libera os endereços ip contidos no arquivo /etc/squid/ip_liberados
    http_access allow redelocal ip_liberados

    acl bloqueados dstdomain orkut.com www.orkut.com playboy.abril.com.br
    http_access deny bloqueados

    http_access allow all

  2. #2

    Padrão

    Eu quase entendi o seu problema, mas o q vc quis dizer qdo falou proxy autenticado? pelo que voce explicou ele nao esta autenticando nada... e quando ao seu problema nao deveria ocorrer, TALVEZ o seu proxy nao esteja funcionando transparente, é o que me parece, pod ser a sua regra de firewall, ela só parece correta mas nao tem como analisar.

    Voce precisa abalisar quanto a estrutura de sua rede e tudo mais para que possamos entender e analisar melhor!



  3. #3

    Padrão

    mystmst, quando eu me referi a respeito de proxy autenticado, eu quis dizer, que se eu configuro o script acima para trabalhar como proxy autenticado, os bloqueios funcionam, mas quando eu passo o script acima para trabalhar como proxy transparente, eu consigo navegar na net, mas os bloqueios a sites de putaria e tal nao funcionam no modo tranparente.
    Estou testando esse proxy no computador da minha casa, como localhost, e ele não passa por nenhum firewall, apenas usei a regra iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 que seria para fazer o proxy transparente funcionar.



    você tem alguma ideia de pq o minhas acl's de bloquei nao estão funcionando em modo transparente ?

    PS: na linha do script acima, a linha http_port 3128 foi postada errada. Ela esta como http_port 3128 transparent e a versão do meu squid é 2.6.

    []'s

  4. #4

    Padrão

    Pelo que entendi você está testando a navegação no próprio Linux que roda o squid certo??
    Se for é por isso que não está funcionando! A regra é pra chain PREROUTING, e não sou caso "não há roteamento".



  5. #5

    Padrão

    Sim, isso que o amigo Magnun falou é verdade, entretanto volto a frisar, seu proxy nao é autenticado, somente é quando ele pede usuario/senha.

    O que voce esta testando ai pelo que eu percebi é a modalidade normal de proxy (ou regular proxy) e o proxy transparente.

  6. #6

    Padrão

    Das duas uma:
    Quando ele disse "Autenticado" ele estava se referindo a configurar manualemente no navegador, nas opções de proxy, o IP e a porta do squid. Ou ele usava realmente autenticado e essa é a config que ele ta usando pra transparente.

    Mas mesmo que ele usasse outra config não funcionaria a não ser que ele configurasse manualmente o navegador pra usar proxy, certo?!



  7. #7

    Padrão

    Citação Postado originalmente por Magnun Ver Post
    Das duas uma:
    Quando ele disse "Autenticado" ele estava se referindo a configurar manualemente no navegador, nas opções de proxy, o IP e a porta do squid. Ou ele usava realmente autenticado e essa é a config que ele ta usando pra transparente.

    Mas mesmo que ele usasse outra config não funcionaria a não ser que ele configurasse manualmente o navegador pra usar proxy, certo?!
    Indeed.

    Por isso que tem que saber o que ele estava realmente perguntando!

  8. #8

    Padrão

    proxy transparente nao faz autenticação de usuários !!!

    ou voce autentica.. ou voce faz "transparencia" .. os 2 no mesmo processo nao funciona.

    o que pode ser feito é rodar 2 instancias.. uma sendo transparente e outra utenticando.. e uma sendo peer da outra..



  9. #9

    Padrão

    Isso quer dizer que sempre que for configurar um squid autenticado tenho que configurar manualmente meu proxy no browser??

    Não sabia disso... Valeu por esclarecer alexandre!!

  10. #10

    Padrão

    para esse proxy ser transparente está faltando o "transparent" na configuração.



  11. #11

    Padrão

    Nossa, não imaginava que esse meu tópico ia gerar tanta confusão...ehhehe....peço desculpas se não fui claro o bastante. E também agradeço pelas respostas rápidas. Tambem agradeço por ja terem me "respondido" por que meu proxy transparente não está funfiando.....(no caso, por ele estar rodando como localhost, é isso ?)


    Bom, ja que eu consigui + - entender o erro, vou apenas postar alguns detalhes do post inicial para tirar as dúvidas de vcs.

    1 - O proxy que estou configurando, é apenas um teste, sendo configurado no pc da minha casa, com 1 placa de rede ligada direto no mode adsl, ou seja, localhost.

    2 - Sobre proxy autenticado. Sim, eu configurei ele no browser, como manda o figurino, e ele funcionou perfeitamente, pedindo usuario, senha, fazendo bloqueios de putaria, etc...

    3 - Quando fui testar essa mesma configuração como proxy transparente (ativando a opção http_port 3128 transparent e desativando a autenticação e tirando as configurações do browser) ele deixou continuou navegando pela internet, mas sem bloquear sites de putaria. Não sabia que proxy transparente não funcionava em localhost.

    Bom pessoal, era isso, agradeço pelas respostas e desculpem o transtorno.

    []'s,
    Renato

  12. #12

    Padrão

    Que transtorno que nada cara!
    Seguinte, acho que o proxy transparente funciona sim em localhost. Só que ao invés de você usar a chain PREROUTING do itables acho você tem que usar a chain OUTPUT.
    Luciano e Alexandre, me corrigam se eu estiver errado!
    Até mais...



  13. #13

    Padrão

    Citação Postado originalmente por Magnun Ver Post
    Que transtorno que nada cara!
    Seguinte, acho que o proxy transparente funciona sim em localhost. Só que ao invés de você usar a chain PREROUTING do itables acho você tem que usar a chain OUTPUT.
    Luciano e Alexandre, me corrigam se eu estiver errado!
    Até mais...

    Discordo de ser na OUTPUT, porque na output jah saiu, mas nao sei em qual chain seria, acredito que não teria como, pois ele nao faz PREROUTING nesse caso, a unica chain que tem valida do firewall para são as OUTPUT/POSTROUTING.

    Do help do iptables:

    -t, --table table
    This option specifies the packet matching table which the com-
    mand should operate on. If the kernel is configured with auto-
    matic module loading, an attempt will be made to load the appro-
    priate module for that table if it is not already there.

    The tables are as follows:

    filter:
    This is the default table (if no -t option is passed). It
    contains the built-in chains INPUT (for packets destined to
    local sockets), FORWARD (for packets being routed through
    the box), and OUTPUT (for locally-generated packets).

    nat:
    This table is consulted when a packet that creates a new
    connection is encountered. It consists of three built-ins:
    PREROUTING (for altering packets as soon as they come in),
    OUTPUT (for altering locally-generated packets before rout-
    ing), and POSTROUTING (for altering packets as they are
    about to go out).

    mangle:
    This table is used for specialized packet alteration. Until
    kernel 2.4.17 it had two built-in chains: PREROUTING (for
    altering incoming packets before routing) and OUTPUT (for
    altering locally-generated packets before routing). Since
    kernel 2.4.18, three other built-in chains are also sup-
    ported: INPUT (for packets coming into the box itself), FOR-
    WARD (for altering packets being routed through the box),
    and POSTROUTING (for altering packets as they are about to
    go out).

    raw:
    This table is used mainly for configuring exemptions from
    connection tracking in combination with the NOTRACK target.
    It registers at the netfilter hooks with higher priority and
    is thus called before ip_conntrack, or any other IP tables.
    It provides the following built-in chains: PREROUTING (for
    packets arriving via any network interface) OUTPUT (for
    packets generated by local processes)


  14. #14

    Padrão

    Ah, apesar da descrição de dizer que filtra os pacotes localmente gerados, nao sei se funcionaria de fato por isso discordei, mas nada que um teste nao resolvesse....



  15. #15

    Padrão

    Realmente, depois deu ter postado pensei nisso... A output ele não trata mais os pacotes. Acho que não tem como fazer transparente em localhost mesmo não... O único jeito é configurando manualmente o proxy no browser...
    Valeu mistymst...

  16. #16

    Padrão

    mesmo em localhost é em PREROUTING mesmo que fará o redirecionamento..

    não esquecendo que "lo" é uma interface



  17. #17

    Padrão

    Sim, realmente. Pena que eu não tenho como testar... Dedao, testa ai e diz se funciona!
    Valeu pessoal!

  18. #18

    Padrão

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

    a regra acima não funciona para proxy tranparente em localhost ( a não ser que vocês estejam se referindo a uma regra um pouco diferente). O que acontece, eh que mesmo eu usando esta regra, configurando o proxy para tranparent (e tirando a autenticação) e configurando o navegador para detectar automaticamente, eu consigo navegar na net, mas sem passar pelo proxy, ja que quando eu faço dessa maneira que eu descrevi pra vcs, eu os bloqueios a conteúdo pornográfico e outras coisas não funcionam.

    Resumindo: Pelo que testamos e conversamos nesse tópico, squid soh funciona em localhost se for autenticado. Se você configurá-lo como transparente, você terá internet, mas sem bloqueio algum, ou seja, sua internet não passara pelo proxy.

    Apesar de tudo, acho que todos aprendemos um pouco nesse tópico de hj .

    Agradeço pela ajuda de vcs todos.

    Um grande abraço.

    Renato



  19. #19

    Padrão

    Citação Postado originalmente por Dedao Ver Post
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
    vamos pensar um pouquinho.

    Temos um micro rodando squid e queremos usar o squid desse micro como proxy transparente e redirecionamento pelo iptables.

    que comando vamos usar? iptables
    em qual tabela? nat
    qual chain? PREROUTING
    qual protocolo? tcp
    qual porta? 80
    o que faremos com essa porta? REDIRECT
    pra qual porta? 3128
    "qual interface?????????????" eth0 que não será!!!!


    experimenta tirar o "-i eth0" da regra.

  20. #20

    Padrão

    Bom, discordo seguindo a descrição do man pages do iptables.

    nat:
    This table is consulted when a packet that creates a new
    connection is encountered. It consists of three built-ins:
    PREROUTING (for altering packets as soon as they come in),
    OUTPUT (for altering locally-generated packets before routâ
    ing), and POSTROUTING (for altering packets as they are
    about to go out).

    seria iptables -t nat -A OUTPUT, pois eles são gerados localmente, enquanto que na PREROUTING é assim que eles "chegam" na maquina (ambas podem estar corretas massssss nunca se sabe né? a documentação é uma coisa, precisa testar para ter 100% de certeza)

    PREROUTING -> antes de fazer o roteamento assim que os pacotes chegam na interface (presuponho que seja para pacotes recebidos sem ser localhost)
    OUTPUT -> antes de fazer o roteamento para pacotes gerados LOCAL.
    POSTROUTING -> depois de fazer o roteamento (acho que tanto para pacotes gerados localmente como nao).

    Eu entendi isso vindo do man pages.