ct

    Bloqueando por domínios ou palavras


    O Squid permite bloquear sites indesejados de forma relativamente simples, onde você inclui na configuração uma acl contendo os sites não permitidos e cria uma política de acesso que bloqueia o acesso a eles.

    Isso é feito usando o parâmetro "dstdomain" (destination domain). Veja um exemplo:

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

    Aqui eu criei uma acl chamada "bloqueados", que contém os endereços "orkut.com" e "playboy.abril.com.br" e, em seguida, incluí a regra "http_access deny bloqueados", que bloqueia o acesso a eles. Ao aplicar a regra, o Squid faz a resolução do domínio e passa a bloquear todas sub-páginas.

    Existe uma ressalva: muitos sites podem ser acessados tanto com o "www" quanto sem. Para o Squid, "www.orkut.com" e "orkut.com" são duas coisas diferentes. Bloqueando o "orkut.com" os usuários ainda conseguirão acessar o site através do "www.orkut.com" e vice-versa. Para bloquear ambos, é preciso incluir as duas possibilidades dentro da regra, como em:

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

    Você pode incluir quantos domínios quiser dentro da regra, basta separá-los por espaço e deixar tudo na mesma linha. Se a regra começar a ficar muito grande, você tem a opção de transferir as entradas para um arquivo. Neste caso, crie um arquivo de texto simples, com todos os domínios desejados (um por linha) e use a regra abaixo na configuração do Squid. No exemplo, estou usando o arquivo "/etc/squid/bloqueados":

    acl bloqueados url_regex -i "/etc/squid/bloqueados"
    http_access deny bloqueados

    Naturalmente, não seria viável tentar bloquear manualmente todos os sites pornográficos, chats, comunidades online, e todos os outros tipos de sites que não são úteis num ambiente de trabalho. A idéia seria logar os acessos (com a ajuda do Sarg, que veremos mais adiante) e bloquear os sites mais acessados, conforme tomar conhecimento deles. É sempre uma corrida de gato e rato, mas, em se tratando de pessoas adultas, não há nada que uma boa conversa com o chefe não possa resolver ;).

    De qualquer forma, em alguns ambientes, pode ser mais fácil bloquear inicialmente o acesso a todos os sites e ir abrindo o acesso a apenas alguns sites específicos, conforme a necessidade. Neste caso, invertemos a lógica da regra. Criamos um arquivo com sites permitidos, adicionamos a regra que permite o acesso a eles e em seguida bloqueamos o acesso a todos os demais, como neste exemplo:

    acl permitidos url_regex -i "/etc/squid/permitidos"
    http_access allow permitidos
    http_access deny all

    Nas versões recentes do Squid, ao bloquear um domínio, é automaticamente bloqueado também o endereço IP do servidor correspondente. Isso evita que os usuários da rede consigam burlar o proxy, acessando os sites diretamente pelo IP. De qualquer forma, você pode criar diretamente regras que bloqueiem determinados endereços IP, o que é útil em casos de servidores sem domínio registrado, ou que respondam por vários domínios. Neste caso, a regra ficaria:

    acl ips-bloqueados dst 200.234.21.23 200.212.15.45
    http_access deny ips-bloqueados

    Você pode descobrir rapidamente o endereço IP de um determinado domínio usando o comando "host", como em:

    $ host google.com
    google.com A 216.239.57.99
    google.com A 216.239.37.99

    Depois de adicionar as novas regras, nosso arquivo de configuração ficaria assim:

    http_port 3128
    visible_hostname kurumin

    cache_mem 32 MB
    maximum_object_size_in_memory 64 KB
    maximum_object_size 512 MB
    minimum_object_size 0 KB
    cache_swap_low 90
    cache_swap_high 95
    cache_dir ufs /var/spool/squid 2048 16 256
    cache_access_log /var/log/squid/access.log
    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 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

    acl bloqueados url_regex -i "/etc/squid/bloqueados"
    http_access deny bloqueados

    acl redelocal src 192.168.1.0/24
    http_access allow localhost
    http_access allow redelocal

    http_access deny all

    Veja que coloquei as duas regras antes do "http_access allow redelocal", que abre tudo para a rede local. Como o Squid processa as regras seqüencialmente, as páginas que forem bloqueadas pelas duas regras não chegarão a passar pela seguinte.

    Uma segunda possibilidade é usar o parâmetro "dstdom_regex", que permite bloquear sites de uma forma mais geral, com base em palavras incluídas na URL de acesso. Você pode bloquear todas as páginas cujo endereço inclua a palavra "sexo", por exemplo. Ao usar esta regra, o Squid verifica a existência das palavras na URL do site e não no conteúdo da página.

    Crie mais um arquivo de texto, contendo as palavras que devem ser bloqueadas (uma por linha) e adicione a regra abaixo, contendo a localização do arquivo:

    acl nomesproibidos dstdom_regex "/etc/squid/nomesproibidos"
    http_access deny nomesproibidos

    O uso desta regra é um pouco mais problemática, pois bloqueará todas páginas que contenham alguma das palavras listadas na URL. Esta opção sempre levará a alguns falsos positivos e por isso deve ser usada com mais cuidado.

    Não existe problema em combinar o bloqueio de domínios e de palavras dentro da URL, você pode lançar mão de uma combinação das duas coisas, de acordo com a situação. Basta usar as duas regras simultaneamente, como em:

    acl bloqueados url_regex -i "/etc/squid/bloqueados"
    http_access deny bloqueados
    acl nomesproibidos dstdom_regex "/etc/squid/nomesproibidos"
    http_access deny nomesproibidos

    acl redelocal src 192.168.1.0/24
    http_access allow localhost
    http_access allow redelocal
    http_access deny all

    Incluídas as regras, os clientes passam a ver uma mensagem de erro ao tentar acessar páginas que se enquadrem nos bloqueios:

    Você pode personalizar as páginas de erro editando os arquivos dentro da pasta "/usr/share/squid/errors/English" ou "/usr/share/squid/errors/Portuguese" (de acordo com a língua definida na configuração). São várias páginas html, uma para cada tipo de erro indicado.



    » Próximo: Gerenciando o uso da banda





    Você está lendo o livro Redes e Servidores Linux 2ed. (publicado em 2006).

    Se se está em busca de um livro atualizado sobre servidores, leia o Servidores Linux, Guia Prático, que oferece informações atualizadas:

    Autor: Carlos E. Morimoto
    Páginas: 736
    Formato: 23 x 16 cm
    Editora: GDH Press e Sul Editores
    ISBN: 978-85-99593-13-4
    Lançado em: Agosto de 2008

    » R$ 76,00 + frete
    (Preço nas livrarias: R$ 96)

    » Compre o seu

    Descrição:

    O livro Redes e Servidores Linux - Guia Prático foi nosso primeiro best-seller, vendendo um total de 8.000 exemplares em suas duas edições. O processo de atualização do livro acabou dando origem a dois livros separados. O primeiro deles é o livro Redes - Guia Prático, que aborda detalhes sobre a implantação e configuração de redes, abordando detalhes sobre os padrões de rede, configuração no Windows e Linux, configuração de redes wireless e outros temas.

    O livro Servidores Linux, Guia Prático é o segundo livro da série, que complementa o primeiro, oferecendo uma visão aprofundada sobre a configuração de servidores Linux.

    No livro você aprenderá a configurar tanto servidores de rede local quanto servidores dedicados, incluindo a configuração do Squid, Samba, Apache, SSH, LTSP, Postfix, Iptables, Bind, Quota e outros serviços. O livro inclui também capítulos sobre virtualização e sobre hardware para servidores, que complementam as informações abordadas nos demais.

    Veja também nossos livros Hardware, o Guia Definitivo, Redes, Guia Prático, Smartphones, Guia Prático e Linux, Guia Prático, nossos outros lançamentos.





cb
HOME