DansGuardian: Filtrando o acesso a Web

Introdução

Fala Linuxers, tudo em ordem?

Em um primeiro artigo sobre o gênero:

Vimos apenas o bloqueio de sites indesejados, neste artigo veremos como filtrar este conteúdo. Mas como assim? Faremos realmente uma filtragem, ou seja, pelo conteúdo do site, seja por palavras, expressões ou frases.

Sendo assim bloqueamos praticamente tudo que não queremos, quase sem falhas.

Requerimentos:

  • Um computador com Linux ou Unix instalado;
  • E este computador deve assumir ou já ser responsável pelo serviço web.

Conteúdo programado:

  • Apresentação do DansGuardian;
  • Instalação;
  • Limpando configurações pré-definidas e alterando a linguagem;
  • Integração com Squid;
  • Configurando o DansGuardian, método por frases proibidas;
  • Método por frases pontuadas;
  • Aprofundando-se em seus arquivos de configuração;
  • Considerações finais.

Espero que gostem, uma boa leitura a todos.

Apresentação do DansGuardian

Analisando meus logs, percebi que um bloqueio geral já não era tão “excelente”, não pelo software implementado, e sim porque a cada minuto brotam novos sites, e um bloqueio geral fica quase impossível de capturar tal façanha, então concluí que precisava de um software que me permitisse filtrar este conteúdo.

Então analisando alguns softwares, encontrei o DansGuardian, que me permitiu perfeitamente tal implementação.

O DansGuardian é um software com o poder de filtrar o conteúdo web com uma tamanha eficiência, pois não possui apenas um filtro ou uma maneira de configurar, ele é flexível e possui alguns arquivos de configuração, que podem ser usado para vários fins.

Site do projeto:

Um pouquinho de sua história:

É isso aí, vamos lá?

Instalação

A instalação do DansGuardian não chega a ser complicada como dizem, apenas requer atenção da parte de que vai implementá-la. Vamos lá!

Navegue até a pasta /tmp:

# cd /tmp

Efetue o download do DansGuardian:

# wget http://dansguardian.org/downloads/2/Stable/dansguardian-2.8.0.6.source.tar.gz

Agora iremos descompactá-lo:

# tar -xvzf dansguardian-2.8.0.6.source.tar.gz

Acessamos o diretório recém criado:

# cd dansguardian-2.8.0.6

Agora partiremos para sua instalação.

OBS: O comando ./configure receberá inúmeros parâmetros, então aconselho vocês a emitirem o comando “./configure | more” para se familiarizar com os parâmetros que serão passados.

Seguindo os parâmetros que devo informar à instalação para que ela seja efetuada com sucesso, segue meu ./configure:

# ./configure \
-logratedir=/etc/lograte.d/ \
-piddir=/var/run/ \
-runas_usr=squid \
-runas_grp=squid \
-logdir=/usr/local/squid/var/logs \
-cgidir=/usr/lib/cgi-bin/ \
-sysconfdir=/etc/dansguardian / \
-bindir=/usr/local/squid/bin/ \
-sysvdir=/etc/init.d/

Isto não é complicado, apenas requer atenção, pois passamos alguns parâmetros referentes ao Squid e sua instalação.

Aqui não posso comentar muito pois não sei como foi feita sua instalação, e varia de caso em caso.

Existem dois parâmetros que posso comentar que variam de distribuição pra distribuição.

Debian e derivados:

-cgidir = valor
-sysvdir = valor

-cgidir=/usr/lib/cgi-bin/
-sysvdir=/etc/init.d/

CentOS e derivados:

-cgidir = valor
-sysvdir = valor

-cgidir=/var/www/cgi-bin/
-sysvdir=/etc/init.d/

Pronto, definidas algumas informações prosseguimos:

# make
# make install

Pronto, DansGuardian instalado!

Limpando configurações pré-definidas e alterando a linguagem

Se tudo ocorreu bem no passo anterior, seu DansGuardian foi instalado com sucesso, e se isso ocorreu ótimo, a instalação deste software já traz com ela uma configuração pré-definida, ou seja, já vem com uma configuração para exemplo (então vamos zerar tudo).

Vamos lá! Entre no diretório onde se encontra o DansGuardian:

# cd /etc/dansguardian

Agora limparemos :

# for ARQUIVO in ‘ls -color=never banned*’ ; do echo> $ARQUIVO; done
# echo > contentregexplist
# echo > weightedphraselist

Pronto, configuração dos arquivos de controle zeradas.

Antes de começar a configuração em si alteraremos a linguagem para pt_BR. Então editaremos o arquivo de configuração do Dansguardian, que encontra-se em /etc/dansguardian/dansguardian.conf. Com seu editor preferido:

# vi /etc/dansguardian/dansguardian.conf

Procure este bloco e deixe como o exemplo abaixo:

language = ‘portuguese’
logfileformat = 3
loglocation =’/usr/local/squid/var/logs/dsaccess.log’
accessdeniedadrress = ‘http://192.168.1.100/cgi-bin/dansguardian.pl’

Explicação do que foi feito:

language = valor
Determinamos em que idioma será apresentada a mensagem de bloqueio pelo DansGuardian.

logfileformat = valor
Este é interessante pois definimos que o arquivo de log do Dansguardian seja gravado no mesmo formato do que o Squid. E isto nos ajuda muito, pois podemos usar softwares de relatórios de acesso do Squid para o DansGuardian.

loglocation = valor
Define onde quer que sejam salvos os arquivos de log.

AccessDeniedAdrress = valor
Definimos o caminho web para o cgi do DansGuardian.

Alterações feitas!

Integração com Squid

Depois de zerarmos as configurações e alterarmos sua linguagem, que tal já deixar ele integrado ao Squid? É uma tarefa bem simples, editaremos o arquivo de configuração do Squid, aqui localizado em /usr/local/squid/etc/squid.conf.

Pode ser que o seu esteja em: /etc/squid/squid.conf

É como eu disse, tem que prestar atenção, pois cada instalação é diferente da outra.

Então é só saber onde se encontra seu Squid e seus arquivos que você não terá problema algum.

Com seu editor preferido:

# vi /usr/local/squid/etc/squid.conf

Alteraremos a diretiva http_port 3128. Deixe a mesma da seguinte maneira:

http_port 127.0.0.1:3128
Reinicie seu Squid, aqui eu reinicio com:

# /usr/local/squid/sbin/squid -k interrupt
# /usr/local/squid/sbin/squid

Caso seu Squid se encontre em /etc/squid, use os seguintes comandos:

# squid -k reconfigure
ou
# service squid reload

Ferramenta integrada!

Configurando o DansGuardian, método por frases proibidas

Agora chegou a parte mais simples do artigo, configurar o DansGuardian. Decidi implementar duas funções de filtro, dobrando assim seu poder final.

Uma função foi por frases proibidas e a outra por frases pontuadas. São dois mecanismos de simples configuração, começaremos então por frases proibidas.

Frases proibidas

Este filtro nos permite o bloqueio por palavras ou combinações de palavras que conseqüentemente possa conter no site (ou nos sites alvo). Algo simples e eficiente. Este arquivo de configuração encontra-se em /etc/dansguardian/bannedphraselist.

O que precisaremos fazer?
Editar este arquivo e simplesmente, inserir as palavras/combinações de palavras que desejamos que seja bloqueada.

Nota: Analisando sites pornográficos concluí que este exemplo deve bloquear cerca de 85% dos sites, mas claro, aqui você coloca o que quiser. Deixarei apenas o começo do meu arquivo, o resto é com vocês! Frases ou palavras a serem bloqueadas devem ser especificadas entre <> , combinações de frases ou palavras separam-se usando a vírgula.

Sério oO”?

Sério, vejam:

Com seu editor preferido:

# vi /etc/dansguardian/bannedphraselist

Baixe o arquivo bannedphraselist.gz aqui.

Este é meu arquivo, vocês podem inserir o conteúdo que desejar, eu disse que deve bloquear até 85%, mas vale lembrar que este será apenas o primeiro filtro, se bloqueasse até 65% já estaria bom, pois o outro iria complementar o resto.

Terminada sua edição, não esqueça de salvar.

Agora reiniciamos nosso DansGuardian:

Debian e derivados:

# /etc/init.d/dansguardian restart

CentOS e derivados:

# /etc/init.d/dansguardian restart

Método por frases pontuadas

Este recurso também usa combinações de palavras ou palavras avulsas, mas tem uma grande diferença em relação ao primeiro método.

Definiremos uma pontuação para tais combinações de palavras ou para as palavras avulsas. Como assim?

Você definirá um pontuação, veja:

<palavra1>,<palavra2><90>
<palavra3><40>
<palavra4>,<palavra5><20>

Aí o que acontecerá, o DansGuardian lerá o site e verificará em seus arquivos as combinações de palavras ou palavras, então irá primeiro bloquear ou verificar sua pontuação, verificando seu arquivo o DansGuardian percebe que o site em questão atingiu 100 pontos, ele imediatamente faz o bloqueio do mesmo.

Todo site será assim atingiu 100 pontos é bloqueado!

Para utilizarmos este recurso devemos editar o arquivo weightedphraselist, que encontra-se em /etc/dansguardian/weightedphraselist. Com seu editor preferido:

# vi /etc/dansguardian/weightedphraselist

Baixe o exemplo de weightedphraselist aqui.

Feita a edição, salve o arquivo e reinicie o DansGuardian.

Debian e derivados:

# /etc/init.d/dansguardian restart

CentOS e derivados:

# /etc/init.d/dansguardian restart

Agora o resto é com vocês.

Lembre-se, você bloqueia o que quer, então é só começar a imaginar.

Creio que com estes dois filtros nossos problemas quase acabam, pode ser que não consigamos bloquear todos os sites, pois são muitos, mas por outro lado dificilmente sites pornográficos não terão conteúdo, ou seja, palavras ou frases que podemos buscar. Então acho quase que impossível burlar esta barreira.

Aprofundando-se em seus arquivos de configuração

Nesta parte do artigo lhes apresentarei outras funções do DansGuardian junto com os arquivos responsáveis por tais funções.

Uma parte que creio ser de fundamental importância, pois apresentei para vocês apenas dois filtros, só que o DansGuardian vai muito além.

Antes de começar vou deixar mais uma dica para vocês, o DansGuardian, também nos proporciona listas prontas. Como assim?

Lembram-se de nosso filtro implementado, então ele foi apenas para pornografia, mas você pode fazer do que quiser. E se quiser um exemplo disto, o DansGuardian nos proporciona listas prontas para mais de 20 perfis.

Se quiser conferir acesse o site:

Bom, vamos ao que interessa, nesta parte apenas apresentarei os arquivos a vocês, pois são alguns, então ficaria muito longo para este arquivo, esta parte será vista num próximo artigo. Mas para não deixar vocês sem opções, que tal dar um:

# ls -1 /etc/dansguardian

Vamos comentar alguns destes arquivos:

exceptioniplist
Aqui especificamos a lista de endereços IPs que não devem passar pelo filtro.

exceptionphrasealist
Aqui podemos especificar uma lista de frases que não devem ser bloqueadas.

exceptionsitelist
Aqui especificamos uma lista de domínios que ao aparecerem na url do site, não devem passar pelo filtro.

exceptionurllist
Aqui especificamos uma lista de urls totais ou parciais que ao aparecerem na url do site não devem passar pelo filtro.

exceptionuserlist
Aqui especificamos uma lista de usuários que não devem passar pelo filtro.

bannedextensionlist
Este é bacana, especificamos uma lista de extensões de arquivos que devem ser bloqueadas pelo filtro.

bannediplist
Aqui especificamos uma lista de IPs onde os quais devem ser bloqueados de todo e qualquer acesso a internet.

banneduserlist
Lista de sites a serem bloqueados.

bannedurllist
Lista de urls bloqueadas.

bannedregexurllist
Aqui especificamos filtros regex, que serão aplicados sobre a URL dos sites acessados, bloqueando todo e qualquer acesso a internet.

Bom, estes são alguns arquivos de configuração do DansGuardian.

Considerações finais

Chegamos ao final do artigo!

Neste artigo passei apenas um bloqueio por filtro, não abordei com detalhes os outros artigos de configuração, pois os mesmos já vem com exemplos pré-definidos, então já da para ter uma noção básica. Claro que num próximo artigo estarei abordando a fundo estes arquivos.

Com este artigo creio que podemos implementar uma filtragem legal, e se você seguiu o artigo sobre o SquidGuard e o implementou, terá mais sucesso ainda, pois teremos um bloqueio geral SquidGuard + 2 filtros com o DansGuardian, além de que você ainda pode pôr regras no Squid. Então fizemos um ótimo serviço.

Para testar o acesso é simples. Vá em um micro de sua estação de trabalho, configure o navegador para usar o DansGuardian como proxy. Normalmente encontra-se na porta 8080.

Uma resposta em “DansGuardian: Filtrando o acesso a Web

Deixe um comentário