SQUID - Usando o DansGuardian

O DansGuardian é outra opção de filtro de conteúdo desenvolvido para trabalhar em conjunto com o Squid, filtrando conteúdo indesejado. A grande diferença entre ele e o SquidGuard é que o SquidGuard se limita a bloquear páginas contidas nas listas, enquanto o DansGuardian utiliza um filtro adaptativo, que avalia o conteúdo da página e decide se ela é uma página imprópria com base no conteúdo, utilizando um conjunto de regras adaptativas. Ele inclui um conjunto de regras prontas, que contém palavras, frases e tipos de arquivos freqüentemente usados em páginas impróprias, além de uma lista de páginas conhecidas e trabalha cruzando todas essas informações.

Se você quer um filtro de conteúdo que possa implantar rapidamente e manter ativo sem ter muito trabalho, o SquidGuard é a melhor opção, pois ele permite obter bons resultados mesmo com apenas uma configuração rápida. Se, por outro lado, você quer um filtro programável, que você possa adaptar e personalizar de forma a obter melhores resultados, então o DansGuardian pode ser uma boa opção.

No screenshot abaixo, por exemplo, temos uma pesquisa do Google por um termo indecoroso, que foi bloqueada por ter retornado um grande número de páginas impróprias. O domínio "google.com" naturalmente não foi bloqueado no filtro, mas mesmo assim o DansGuardian foi capaz de bloquear a página baseado no conteúdo:

Originalmente, o DansGuardian foi desenvolvido como um filtro de conteúdo para uso em escolas primárias e para quem tem crianças pequenas em casa, mas nada impede que ele seja usado também em outras situações.

Atualmente, o DansGuardian é um produto "semicomercial", que tem o código aberto e é gratuito para uso pessoal ou para qualquer fim não-comercial (pode ser usado em uma escola ou escritório, por exemplo, desde que implementado internamente), mas é pago para uso comercial (quando você cobra pelo serviço de implantação, ou o fornece como parte de uma solução comercial). Você pode ver mais detalhes sobre a licença de uso no:

https://help.ubuntu.com/community/DansGuardian

Ao instalar, comece verificando se já não existe um pacote disponível na distribuição que está usando. O DansGuardian é um pacote de uso muito comum; por isso, a maioria das distribuições o inclui nos CDs de instalação. No Debian, por exemplo, você pode instalá-lo com um:

# apt-get install dansguardian

Você pode também encontrar pacotes para várias distribuições, junto com o tradicional pacote com código fonte no https://sourceforge.net/projects/dansguardian/

Depois de instalar o pacote, inicie-o com o comando:

# /etc/init.d/dansguardian start

ou: 
# dansguardian &

Para que o DansGuardian funcione, é preciso que o Squid esteja instalado e ativo. Ele trabalha sobre o Squid, implementando suas políticas de acesso, mas deixando que o próprio Squid faça o acesso à web, cache e autenticação.

O principal arquivo de configuração é o "/etc/dansguardian/dansguardian.conf". Ao editá-lo pela primeira vez, é importante verificar algumas opções:

# UNCONFIGURED

Esta linha deve ficar comentada, indicando que o arquivo já foi configurado por você.

language = 'portuguese'

Esta opção configura a língua em que as mensagens de acesso bloqueado serão mostradas aos clientes.

loglocation = '/var/log/dansguardian/access.log'

Aqui vai a localização do arquivo de log do dansguardian, onde ficam armazenados os endereços das páginas cujo acesso foi bloqueado. Serve tanto para verificar a eficiência do filtro, quanto para identificar falsos-positivos, ou seja, páginas legítimas que estão sendo bloqueadas por engano. Essas exceções podem ser especificadas individualmente no arquivo "/etc/dansguardian/exceptionsitelist", que funciona como uma white list, contendo uma lista de páginas que sempre são permitidas, mesmo que sejam encontradas palavras proibidas dentro do texto.

filterport = 8080

A porta onde o DansGuardian fica ativo. Ele sempre deve utilizar uma porta diferente do Squid, pois são duas coisas separadas. O padrão é a porta 8080.

proxyip = 127.0.0.1

O endereço IP do servidor proxy que será usado. Por padrão ele vai utilizar uma cópia do Squid ativa na mesma máquina, mas é possível utilizar outro servidor Squid disponível na rede.

proxyport = 3128

A porta TCP onde o servidor Squid especificado na opção acima está ativo. Lembre-se de que, por padrão, o Squid usa a porta 3128.

A filtragem de páginas funciona em dois níveis. Ao receber a requisição do cliente, o DansGuardian verifica se o endereço a ser acessado está em uma das listas de domínios ou IPs proibidos. Caso esteja, o cliente recebe a mensagem de erro e o acesso sequer é feito, economizando banda.

Se não existir nenhum bloqueio relacionado ao domínio, a requisição é enviada ao Squid e o acesso é realizado. Ao receber os arquivos da página, o DansGuardian verifica o conteúdo em busca de expressões e palavras "ruins", freqüentemente encontradas em páginas indesejadas, e também palavras "boas", normalmente encontradas em páginas de bom conteúdo.

Cada palavra ruim soma um certo número de pontos. Por exemplo, a palavra "sexy" soma apenas 5 pontos, enquanto a expressão "sex orgies" soma 80 pontos. Palavras "boas", por outro lado, subtraem pontos, fazendo com que a página tenha uma possibilidade menor de ser bloqueada. A palavra "education" subtrai 20 pontos, enquanto "medical problem" subtrai 50. As listas com palavras boas e ruins, juntamente com o peso positivo ou negativo de cada uma, são armazenadas na pasta "/etc/dansguardian/phraselist".

No final, o site recebe uma nota, apelidada pelos desenvolvedores de "naughtynesslimit", ou "índice de sem-vergonhice", resultado da soma de todas as palavras boas e ruins. Você define um índice máximo a ser tolerado no arquivo "/etc/dansguardian/dansguardianf1.conf", na opção:

naughtynesslimit = 160

Quanto mais baixo o número, mais severa é a censura, porém mais páginas boas acabam sendo bloqueadas por engano (falsos positivos). Os valores recomendados pelos desenvolvedores são "60" para crianças pequenas, "100" para pré-adolescentes e "160" para adolescentes. Para um público adulto, onde a principal preocupação seja não bloquear páginas úteis, mesmo que isso faça com que uma ou outra página inadequada passe pelo filtro de vez em quando, você pode arriscar "200" ou mesmo "240".

Como você pode notar dando uma olhada no conteúdo dos arquivos das listas de palavras, o DansGuardian vem configurado com listas em inglês, que deixam passar muitos sites nacionais. Você pode baixar um arquivo com listas em outras línguas, incluindo português no:
http://dansguardian.org/downloads/grosvenor/languages.tar.gz <link quebrado>

Para instalar, descompacte o arquivo "languages.tar.gz" e copie os arquivos de dentro da pasta "languages", que será criada para a pasta "/etc/dansguardian/phraselist/". Falta agora configurar o DansGuardian para utilizar os novos arquivos. Para isso, abra o arquivo "/etc/dansguardian/weightedphraselist" e adicione as linhas:

.Include</etc/squid/dansguardian/languages/weightedphraselist.pornsites.portuguese>
.Include</etc/squid/dansguardian/languages/weightedphraselist.pornwords.portuguese>

Antes de usar estas listas de palavras, verifique o conteúdo dos arquivos. As listas de palavras em português são excessivamente rigorosas, o que faz com que seja bloqueado o acesso a um número muito grande de sites "bons", mesmo ao usar um naughtynesslimit alto. Use-os com cautela.

Aparentemente, os arquivos disponíveis no site foram escritos por um estrangeiro, por isso, não se adaptam bem à nossa realidade. Se decidir corrigir os arquivos, não deixe de enviá-los para os mantenedores, para que sejam incluídos no pacote.

Note que na configuração são especificados todos os arquivos de palavras que são utilizados. Na pasta existem várias categorias diferentes e, em algumas situações, você pode querer desabilitar algumas delas, a fim de flexibilizar o filtro. Você pode adicionar novas palavras ou editar o peso de cada uma, editando diretamente os arquivos.

Concluindo, abra também o arquivo "/etc/dansguardian/bannedphraselist" e inclua a linha:

.Include</etc/squid/dansguardian/languages/bannedphraselist.portuguese>

Lembre-se de que é necessário reiniciar o DansGuardian para que qualquer uma das alterações tenha efeito:

# /etc/init.d/dansguardian restart

O DansGuardian pode ser usado tanto dentro da rede, quanto localmente. Além de ser utilizado em redes de todos os tamanhos, muita gente com crianças em casa se dá ao trabalho de instalá-lo avulso, no micro de casa.

Nas configurações do proxy (nos clientes), coloque o endereço IP do servidor (como, por exemplo, 192.168.1.1) e a porta do DansGuardian, definida no arquivo de configuração. Lembre-se de que, por padrão, ele usa a porta 8080.

No Firefox, a opção de configurar um proxy está em "Editar > Preferências > Proxy". Ou seja, com exceção da porta diferente, a configuração para usar o DansGuardian é a mesma que seria usada em conjunto com um proxy tradicional. Em casos onde ele é usado num micro doméstico, com o objetivo de servir como um simples filtro de conteúdo, você pode até mesmo rodá-lo localmente. Neste caso, use o endereço "127.0.0.1" como proxy:

Fonte: http://www.hardware.com.br/livros/servidores-linux/usando-dansguardian.html

.