Filtragem de conteúdo web (parte 1): protegendo usuários de computadores domésticos

É possível filtrar conteúdo de páginas da internet usando software livre e proteger usuários de conteúdo danoso, aviltante, agressivo, pornográfico, ou mesmo de desperdício de tempo. Nesta primeira parte abordaremos a proteção de usuários inocentes de computadores domésticos.

Por que filtrar conteúdo web e internet em um computador doméstico?
Você que navega pela internet já sabe que ela disponibiliza uma grande quantidade de informações úteis.
E também disponibiliza uma gigantesca quantidade de barbaridades, atrocidades, vírus, cavalos de tróia, pornografia e golpes abertamente.
Não esquecendo que em sites de comunidades e chats podem existir os mais diversos tipos de indivíduos.
Se você tem filhos menores de idade, como protegê-los melhor deste material aviltante?

Conceitos da solução em software livre
Usaremos um programa "intermediário" para conexão com a internet, o chamado "proxy".
E operando em conjunto com ele, um programa de filtragem de conteúdo mais elaborado, que primeiro verifica se a página ou site não está em uma lista negra e depois "lê" o conteúdo e atribui pontuação ponderada para determinadas palavras e imagens.
Usaremos o Squid [0] como proxy server e o DansGuardian [1] como filtro de conteúdo.
O Squid foi escolhido pelos recursos e pode ser usado até em grandes redes corporativas e servir como um "cache compartilhado" para toda máquina. Portanto, este artigo é um aprendizado para futuras configurações mais complexas. Soluções mais simples como o Polipo [2] podem ser usadas também. Mas o pacote Squid no Debian possui configurações default bem ajustadas e com um mínimo de tempo já se pode ter um sistema operando.
O filtro de conteúdo DansGuardian foi escolhido em vez do SquidGuard [3] por ser capaz de "ler" as páginas web e conseguir bloquear páginas mesmo que ainda não estejam listadas em alguma lista negra. Se estiver em uma lista negra, o processamento é naturalmente mais rápido.
Usaremos configurações muito simples, capazes de proteger usuários inocentes menos sofisticados, ainda inaptos a alterar configurações de navegadores e rede. A proteção para usuários mais avançados será assunto de outro artigo.
Será feita proteção e filtragem de conteúdo em um computador doméstico individual, disponível para todos os usuários da máquina, porém ainda não em uma pequena rede doméstica.
Essa instalação e configuração servirá bem ao propósito de aprendizado dos conceitos de filtragem de conteúdo web e viabilizará as configurações mais complexas.

Instalando o servidor "proxy" Squid no Debian GNU / Linux:
Em um sistema Debian, a instalação é fácil. Primeiro atualize a lista de pacotes disponíveis e depois instale os programas, usando a interface gráfica Synaptic ou a linha de comando loggado como root (simbolizado pelo prompt # no terminal):
#aptitude update
#aptitude install squid
Isso instalará também os pacotes de dependências. Durante a execução do comando, observe as mensagens na tela e certifique-se de que o servidor squid foi corretamente iniciado.
Caso não consiga observar, execute como root:
#invoke-rc.d squid restart
e observe as mensagens.
Tudo estando correto, na próxima vez que reiniciar a máquina, o servidor squid também irá iniciar o serviço
A configuração default do Squid no Debian GNU / Linux permite apenas que programas na máquina local onde está instalado possam se conectar e utilizá-lo. Suficiente para nosso objetivo atual, seguro e bem simples.
Abra uma sessão de navegador web e acesse o endereço http://localhost:3128 e veja se aparece algo similar ao seguinte erro para confirmar que o Squid está operando:

ERROR

The requested URL could not be retrieved
While trying to process the request:
GET / HTTP/1.1
Host: localhost:3128
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.13pre) Gecko/20070505 (Debian-1.8.0.15~pre080131b-0etch1) Epiphany/2.14
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: pt-br,pt;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1252,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
The following error was encountered:
  • Invalid Request
Some aspect of the HTTP Request is invalid. Possible problems:
  • Missing or unknown request method
  • Missing URL
  • Missing HTTP Identifier (HTTP/1.0)
  • Request is too large
  • Content-Length missing for POST or PUT requests
  • Illegal character in hostname; underscores are not allowed
Your cache administrator is webmaster.
Generated Tue, 19 Feb 2008 23:04:56 GMT by localhost (squid/2.6.STABLE5)

Instalando o filtro de conteúdo DansGuardian
O programa DansGuardian também é capaz de filtrar conteúdo em busca de vírus e outros malwares.
Para isso, precisa do programa ClamAV, sendo indicado instalar também o atualizador automático de novas assinaturas clamav-freshclam e usar a versão que estiver disponível no repositório oficial Volatile. ou a nova seção Debian Updates.
Use a inteface gráfica Synaptic para selecionar e instalar os programas ou faça pela linha de comando, loggado como root:
#aptitude update
#aptitude install dansguardian clamav clamav-freshclam
Isso irá instalar os programas e as necessárias dependências.
ATENÇÃO: a inicialização do serviço DansGuardian IRÁ falhar nesta hora, indicando que não está configurado.
O mantenedor do programa optou por deixar o programa inativo enquanto ele não for correta e explicitamente configurado, como medida de segurança.
Você precisará habilitar via linha no arquivo de configuração e reiniciar o serviço. Loggado como root:
#nano /etc/dansguardian/dansguardian.conf
Edite a terceira linha do arquivo, tornado comentário ou apagando a linha da diretiva de não configurado:
#UNCONFIGURED - Please remove this line after configuration
Em seguida, reinicie a máquina ou o serviço dansguardian num terminal loggado como root:
#invoke-rc.d dansguardian restart
Observe se o serviço inicia corretamente, sem mensagens de erro em alguns segundos.

Configure os navegadores web para utilizar o DansGuardian:
No ambiente gráfico Gnome, acesse o menu Desktop > Preferências > Proxy de rede
Selecione Configuração manual de Proxy
Na caixa proxy HTTP digite
127.0.0.1
Na caixa Porta, digite
8080
Para o Firefox / IceWeasel acesse o menu Editar > Preferências > Avançado > Rede > Conexão > Configurações
selecione Configuração manual de proxy e digite os dados como no exemplo acima para o Gnome.
O DansGuardian, além de filtrar conteúdo analisando o texto das páginas, vêm com uma lista negra inicial, com alguns sites internacionais bastante conhecidos.
Agora teste a configuração básica, acessando algum site erótico internacional bastante conhecido, como por exemplo www.playboy.com
Configure os navegadores para cada usuário
Nesta configuração simplificada você terá de configurar os navegadores web para cada usuário que tiver acesso à internet na máquina.
[0] http://www.squid-cache.org
[1] http://dansguardian.org/
[2] http://www.pps.jussieu.fr/~jch/software/polipo/
[3] http://www.squidguard.org

Comentários

Postagens mais visitadas deste blog

Tutorial Cyrus IMAP aggregator (murder) 2.3.16 sobre Debian GNU Linux 5.x Lenny

How to configure multipath for high availability and performance on Debian and CentOS for storage at IBM DS8300 SAN

Instalar Squid forward proxy com SSL cache (SSL bump) em Rocky Linux 8.9 para cache de pacotes na infrestrutura