+ Responder ao Tópico



  1. #1

    Padrão bloqueio de sites com squid

    Ola Pessoal,
    Tem um proxy que esta funcionando, porem minha duvida é a seguinte:
    Só consigo fazer o bloqueio de sites se marcar as configurações de proxy no navegador do cliente. Já pesquisei e encontrei duvidas parecidas, porem quando aplico as configurações, não consigo chegar ao objetivo desejado, que é o bloqueio de sites sem ter que configurar o browser do clientes:
    segue os scripts:

    squid.conf

    http_port 3128
    cache_mem 8 MB
    hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY
    cache_dir diskd /var/spool/squid 300 16 256
    cache_access_log /var/log/squid/access.log
    cache_log /var/log/squid/cache.log
    cache_store_log none
    auth_param basic children 5
    auth_param basic realm Squid proxy-caching web server
    auth_param basic credentialsttl 2 hours
    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    refresh_pattern . 0 20% 4320
    half_closed_clients off
    acl all src 0.0.0.0/0.0.0.0
    acl blocked url_regex -i "/etc/squid/bloqueados/block.txt"
    acl unblocked url_regex -i "/etc/squid/bloqueados/unblock.txt"
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl to_localhost dst 127.0.0.0/8
    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 CONNECT method CONNECT
    http_access deny blocked !unblocked
    http_access allow manager localhost
    http_access deny manager
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow to_localhost
    acl mynetwork src 192.168.0.0/255.255.255.0
    http_access allow mynetwork
    http_access allow localhost
    http_reply_access allow all
    httpd_accel_host virtual
    httpd_accel_with_proxy on
    icp_access allow all
    deny_info ERR_ACCESS_DENIED all
    memory_pools off
    coredump_dir /var/spool/squid
    ie_refresh on

    NAT

    modprobe iptables
    modprobe iptable_nat
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp

    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

    iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j DNAT -–to 192.168.0.0/24:3128
    iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth1 -p tcp –dport 80 -j REDIRECT -–to-port 3128

    Agradeço quaquer ajuda

  2. #2

    Padrão ok joia

    beleza cabra!
    seguinte percebi que no seu squid.conf ta faltando umas linhas pra deixar seu proxy transparente, entao coloque essas 4 linhas no final de seu squid.conf:
    Código :
    httpd_accel_port 80
    httpd_accel_host virtual
    httpd_accel_with_proxy on
    httpd_accel_uses_host_header on

    nas suas regras de iptables faca o seguinte:
    $IPT -t nat -A PREROUTING ! -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
    $IPT -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j REDIRECT --to-port 3128
    onde a linha ! eth0 ta dizendo que vai pegar todas as solicitacoes na porta 80 e na porta 8080 e vai jogar pra porta 3128 do proxy squid ou seja ele vai fazer isso em todas as eth menos na eth onde o meu link entra essa regra so sera aplicada no caso nas eth's de saida ou seja na eth de entrada do cliente.
    espero ter ajudado!!!

  3. #3

    Padrão

    As regras de proxy transparente que o tianguapontocom passou é para a versão 2.5. A partir da 2.6, basta colocar na frente da linha que informa a porta do squid o transparent como abaixo.
    http_port 3128 transparent
    As regras no firewall tem de continuar, para o proxy ficar transparente.

  4. #4

    Padrão isso mesmo

    Isso mesmo pra melhor o negocio se vc tiver usando o squid 2.6 ate o stable 3 você pode fazer assim tambem:
    Código :
    http_port 3128 transparent vhost vport=80

  5. #5

    Padrão

    igorallan, valeu pelo alerta, mas vou ter que usar as regras para squid 2.5 que tianguapontocom. Estou usando o Fedora Core 1, tentei atualizar com o yum, mas atualizou todo o sistema e alguma funções pararam de funcionar, estou adquirido a versão mas recente do Fedora. Mas por enquanto vou ter que me virar com essa mesmo.
    vou testar e volto para agradecer ou postar se der errado.

    Obrigado

  6. #6

    Padrão

    http_port 3128 transparent vhost vport=80

    esta errado

    ou o squid trabalha em modo transparente/proxy ou ele eh um vhost (proxu reverso)

    o correto para um proxy transparente é:

    http_port 3128 transparent

    isto para versoes 2.6 do squid..

    se o seu nao for 2.6 .. mude para 2.6 .. muita coisa mudou, performance, bugs etc etc esta bem melhor

  7. #7

    Padrão

    Alexandre Correa,
    Valeu, vou atualizar o squid 2.5 para o squid 2.6 no fedora 1 e volto para dizer se consegui.
    Estou a dias tentando fazer o bloqueio sem que tenha que marcar as configurações de proxy no browser. Tentei de diversas formas mudando as regras de iptable. O lado bom é que estou apredendo muito sobre squid e iptable.
    Mas não quero deixar de fazer isso com o squid 2.5, afinal é um apredizado.

  8. #8

    Padrão

    outra coisa.. para bloquear sites.. recomendo usar o SquidGuard .. squid perde performance se colocar ele para fazer filtros (isso eh comprovado, inclusive no wiki do squid tem algumas infos sobre..)

  9. #9

    Padrão

    Pessoal,
    Depois de varias noites e muitos tutoriais lidos conseguir fazer o squid 2.5 no fedora 1 funcionar sem ter que configurar os navegadores dos terminais.
    Segue a regra de iptable para quem quiser:

    modprobe ip_tables
    modprobe ip_conntrack
    modprobe iptable_filter
    modprobe iptable_nat
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp

    iptables -F
    iptables -t nat -F

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.0.0/255.255.255.0 --dport 80 -i eth0 -j REDIRECT --to-ports 3128
    iptables -t nat -A PREROUTING -p tcp -m multiport -s 192.168.0.0/255.255.255.0 --dport 8080 -i eth0 -j REDIRECT --to-ports 3128
    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE

    Agora vou adquirir o Fedora Core mas recente e trabalhar assim com uma versão mais nova do squid. Agradeço a todos.