+ Responder ao Tópico



  1. #1

    Padrão Squid Autenticado x Clientes em Configurações Automáticas

    Pessoal,

    Como posso barrar a internet num cliente que está configurado para detectar as configurações automaticamente ?

    No servidor, tenho o squid autenticando usuários (com nome e senha).

    Os clientes estão configurados para usar um servidor proxy no endereço 192.168.0.1 e porta 3128. Mas qualquer um que coloque as configurações para detectar automaticamente, tem acesso livre SEM USO DE SENHA.

    Uso esses comandos para direcionar da porta 80 para a 3128:
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (eth0 é a internet)
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 (eth1 é a rede interna)

    Grato...


  2. #2

    Padrão Squid Autenticado x Clientes em Configurações Automáticas

    Citação Postado originalmente por eandersen Ver Post
    Pessoal,

    Como posso barrar a internet num cliente que está configurado para detectar as configurações automaticamente ?

    No servidor, tenho o squid autenticando usuários (com nome e senha).

    Os clientes estão configurados para usar um servidor proxy no endereço 192.168.0.1 e porta 3128. Mas qualquer um que coloque as configurações para detectar automaticamente, tem acesso livre SEM USO DE SENHA.

    Uso esses comandos para direcionar da porta 80 para a 3128:
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (eth0 é a internet)
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 (eth1 é a rede interna)

    Grato...


    Use servidor de dhcp determinando o endereço de cada cliente usando o endereço mac da placa do cliente, como esse exemplo:

    ddns-update-style none;

    option domain-name "example.org";
    option domain-name-servers ns1.example.org, ns2.example.org;

    log-facility local7;

    default-lease-time 600;
    max-lease-time 7200;

    subnet 10.56.52.0 netmask 255.255.255.0 {
    range 10.56.52.11 10.56.52.65; #aqui vc determina a quantide do ranger ou quantidade de ips liberado.
    option domain-name-servers 10.56.84.54;
    option domain-name-servers 10.56.52.1;
    option routers 10.56.52.254;
    option broadcast-address 10.56.52.255;
    }
    host pnr_cmt { # nome do cliente
    hardware ethernet 00:40:F4:3C:C3:0F; # aqui vai o endeço mac do cliente.
    fixed-address 10.56.52.11;
    option subnet-mask 255.255.255.0;
    option routers 10.56.52.254;
    }
    Última edição por papaalves; 22-05-2008 às 19:55.

  3. #3

    Padrão

    Parece que tem algum problema nas configurações do squid, você tem que rejeitar tudo que não é autenticado, envie o conteúdo do squid.conf pra gente ok?

    Abraços;

  4. #4

    Padrão

    Aí vai o meu squid.conf:

    Até...



    ------------------------------------------------------------------
    http_port 3128 transparent
    visible_hostname servidor1
    error_directory /usr/share/squid/errors/Portuguese/

    cache_mem 250 MB
    maximum_object_size_in_memory 100 KB
    maximum_object_size 512 MB
    minimum_object_size 0 KB
    cache_swap_low 90
    cache_swap_high 95
    cache_dir ufs /mnt/hda5 20000 64 1024
    cache_access_log /var/log/squid/access.log

    ie_refresh on

    #AUTENTICAÇÃO DE USUÁRIOS
    auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/senhas
    auth_param basic credentialsttl 2 hour
    auth_param basic realm Digite seu login e senha

    refresh_pattern ^ftp: 15 2% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280

    acl all src 0.0.0.0/0.0.0.0
    acl autenticados proxy_auth REQUIRED

    acl localhost src 127.0.0.1/255.255.255.255

    acl SSL_ports port 443 # https
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 22 # ssh
    acl Safe_ports port 80 # http
    acl Safe_ports port 443 # https

    #ACESSO AO UPDATE DO NOD ANTIVIRUS
    acl ip_nod32 dst 213.215.116.226 89.202.157.135 89.202.157.136 89.202.157.137 89.202.157.138 89.202.157.139

    #ACESSO LIBERADO AOS SITES TERMINADOS EM
    acl GOVERNO url_regex \.gov.br \.org.br

    #PROIBIDOS PARA DOWNLOAD
    acl DOWNLOAD urlpath_regex -i \.mp3($|\?) \.avi($|\?) \.mpeg($|\?) \.mpg($|\?) \.mpe($|\?) \.ram($|\?) \.wmv($|\?) \.wma($|\?) \.ace($|\?) \.qt($|\?) \.rm($|\?) \.wav($|\?) \.mov($|\?) \.src($|\?) \.asf($|\?) \.asx($|\?)
    acl EXE urlpath_regex -i \.exe($|\?)

    #LIBERA ACESSO AO SIAFI
    acl ip_serpro dst 161.148.40.200
    http_access allow ip_serpro

    #PROIBE ACESSO A SITES BATE PAPO
    acl chat url_regex chat batepapo bate-papo
    http_access deny chat

    #ACESSO LIVRE À INTRANET POR TODOS
    acl intranet url_regex -i "/etc/squid/intranet"
    http_access allow intranet

    #BLOQUEIO DO MSN
    acl msn url_regex -i /gateway/gateway.dll
    http_access deny msn

    #SQUID_GUARD
    redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
    redirect_children 10

    acl redelocal src 192.168.0.0/255.255.255.0

    http_access allow autenticados

    http_access allow localhost
    delay_pools 1
    delay_class 1 2
    delay_access 1 allow redelocal

    http_access allow ip_nod32
    http_access allow GOVERNO
    http_access allow DOWNLOAD
    http_access allow redelocal
    http_access deny all
    http_access allow all

  5. #5

    Padrão

    Apague a última linha: "http_access allow all", mas não sei se o navegador vai conseguir detectar as configurações de proxy automaticamente.

    Nessa última linha "http_access allow all" você esta falando que "permitindo o acesso geral" à tudo que não foi bloqueado nas linhas anteriores, por isso não está bloqueando.

    Abraços.

  6. #6

    Padrão

    Acho que essa útima linha http_access allow all não está causando o problema porque ela é precedida por uma http_access deny all. Então antes dele permitir ela já havia negado. Se não me engano, a linha allow all nem será executada pois a deny all diz respeito a todo o tráfego.

    Uma vez me disseram que se o squid está autenticando usuários ele não funciona como transparent proxy. Acho que a melhor opção pra você é manter a configuração de proxy no browser e bloquear os tráfegos que utilizam a porta 80 no iptables. Dessa forma quem retirar o proxy do browser não navegará.

    Até mais...

  7. #7

    Padrão

    Realmente, retirar a última linha não fez diferença...
    Vc tem como mostrar a regra para bloquear a porta 80 com iptables ?

    Grato...

  8. #8

    Padrão

    iptables -A FORWARD -i eth0 -s 192.168.0.0 -p tcp --dport 80 -j DROP

    acho que isso já é o suficiente

  9. #9

    Padrão

    Ainda não consequi bloquear os clientes em configuração automática...
    É um mistério...

    Os clientes estão configurados para usar um servidor proxy no endereço 192.168.0.1 e porta 3128. Mas qualquer um que coloque as configurações para detectar automaticamente, tem acesso livre SEM USO DE SENHA. E ao mesmo tempo o filtro SQUIDGUARD está atuando.

    Comandos que utilizei:
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (eth0 é a internet)
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
    (eth1 é a rede interna)
    iptables -A FORWARD -i eth1 -s 192.168.0.0 -p tcp --dport 80 -j DROP (eth1 é a rede interna)


    Envio novamente o squid.conf:
    ------------------------------------------------------------------
    http_port 3128 transparent
    visible_hostname servidor1
    error_directory /usr/share/squid/errors/Portuguese/

    cache_mem 250 MB
    maximum_object_size_in_memory 100 KB
    maximum_object_size 512 MB
    minimum_object_size 0 KB
    cache_swap_low 90
    cache_swap_high 95
    cache_dir ufs /mnt/hda5 20000 64 1024
    cache_access_log /var/log/squid/access.log

    ie_refresh on

    #AUTENTICAÇÃO DE USUÁRIOS
    auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/senhas
    auth_param basic credentialsttl 2 hour
    auth_param basic realm Digite seu login e senha

    refresh_pattern ^ftp: 15 2% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280

    acl all src 0.0.0.0/0.0.0.0
    acl autenticados proxy_auth REQUIRED

    acl localhost src 127.0.0.1/255.255.255.255

    acl SSL_ports port 443 # https
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 22 # ssh
    acl Safe_ports port 80 # http
    acl Safe_ports port 443 # https

    #ACESSO AO UPDATE DO NOD ANTIVIRUS
    acl ip_nod32 dst 213.215.116.226 89.202.157.135 89.202.157.136 89.202.157.137 89.202.157.138 89.202.157.139

    #ACESSO LIBERADO AOS SITES TERMINADOS EM
    acl GOVERNO url_regex \.gov.br \.org.br

    #PROIBIDOS PARA DOWNLOAD
    acl DOWNLOAD urlpath_regex -i \.mp3($|\?) \.avi($|\?) \.mpeg($|\?) \.mpg($|\?) \.mpe($|\?) \.ram($|\?) \.wmv($|\?) \.wma($|\?) \.ace($|\?) \.qt($|\?) \.rm($|\?) \.wav($|\?) \.mov($|\?) \.src($|\?) \.asf($|\?) \.asx($|\?)
    acl EXE urlpath_regex -i \.exe($|\?)

    #LIBERA ACESSO AO SIAFI
    acl ip_serpro dst 161.148.40.200
    http_access allow ip_serpro

    #PROIBE ACESSO A SITES BATE PAPO
    acl chat url_regex chat batepapo bate-papo
    http_access deny chat

    #ACESSO LIVRE À INTRANET POR TODOS
    acl intranet url_regex -i "/etc/squid/intranet"
    http_access allow intranet

    #BLOQUEIO DO MSN
    acl msn url_regex -i /gateway/gateway.dll
    http_access deny msn

    #SQUID_GUARD
    redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
    redirect_children 10

    acl redelocal src 192.168.0.0/255.255.255.0

    http_access allow autenticados

    http_access allow localhost
    delay_pools 1
    delay_class 1 2
    delay_access 1 allow redelocal

    http_access allow ip_nod32
    http_access allow GOVERNO
    http_access allow DOWNLOAD
    http_access allow redelocal
    http_access deny all

  10. #10

    Padrão

    retira a linha de redirect do iptables e testa denovo.
    Não ta funcionando porque o redirect é em prerouting, ou seja, antes do roteamento e o drop da porta 80 é em forwarding ou seja em no roteamento. Então de certa forma uma regra estava "sobrepondo" a outra.
    Última edição por Magnun; 27-05-2008 às 10:17.

  11. #11

    Padrão

    Muito obrigado pelas dicas... É isso mesmo... Funcionou...
    Bastou zerar as regras do iptables e não redirecionar da 80 para 3128.
    Caso encerrado...

    Com essa até uma conexão com VPN deixou de funcionar (só que essa precisa funcionar). Preciso abrir as portas 1723 e 47 (ip 200.199.248.60).
    Já tentei com algumas regras mas ainda não consegui.

    Grato por tudo!

  12. #12

    Padrão

    Consegui liberar o VPN:

    iptables -A FORWARD -d 200.199.248.60 -j ACCEPT
    iptables -A FORWARD -p TCP --sport 1723 -j ACCEPT

    É isso...

  13. #13

    Padrão

    É isso ai cara, parabéns!
    Agora, não era pra tá bloqueando a VPN não...
    Mas beleza! Já que você conseguiu...
    Até mais...