Controle de conteúdo: Como proteger seus usuários deles mesmos

Este artigo mostra como configurar um proxy com um potente controle de conteúdo. URLs, sites, palavras ou conjunto de palavras e até vírus dentro de um site podem ser filtrados. A melhor maneira de proteger seus usuários é protegê-los deles mesmos, não os deixando trazer vírus e materiais danosos à sua rede.

[ Hits: 74.413 ]

Por: Allan GooD em 15/01/2005


Como tudo irá funcionar



Vamos explicar como tudo vai funcionar:

O cliente se conecta no DansGuardian, que faz uma "pré-filtragem":

1) Cliente pede "http://www.playboy.com" --> DansGuardian;

O DansGuardian compara a URL enviada com sua base de bloqueados, caso encontre, nem faz a requisição ao Squid e o redireciona à página de "acesso negado", poupando sua banda de Internet e processamento da máquina.

2) DansGuardian responde --> "Acesso Negado" para o cliente;

Ou a parte intrusiva do negócio!

O cliente se conecta no DansGuardian que faz a "pré-filtragem":

1) Cliente pede "http://www.estudodeanatomia.hpg.com.br" --> DansGuardian;

O DansGuardian compara a URL enviada com sua base de bloqueados, caso não encontre, envia a requisição para o Squid;

2) DansGuardian "OK" --> Squid busca a página na Internet;

O Squid devolve a página ao DansGuardian:

3) Squid --> DansGuardian;

Agora acontece a mágica! O DansGuardian irá "ler" toda a página procurando por palavras pré-estabelecidas e pontuar sua "leitura".

4) DansGuardian --> Palavra "sexo" soma 80, palavra "lésbicas" soma 60, palavra "Amadoras" soma 90. Pontuação final: 230;

Compara com o arquivo de configuração onde diz que a pontuação máxima é 180 (por exemplo). Então bloqueia a página.

5) DansGuardian responde --> "Acesso Negado" para o cliente;

Nos arquivos de configuração podemos definir diversos tipos de filtragem, entre elas a citada acima.
  • MIME Type -> Bloqueia pelo tipo MIME do arquivo e não pela sua extensão, ou seja, um arquivo foh.zip e foh_zip serão tratados da mesma forma.
  • PICS Labeling -> Vários sites espalhados pela Internet utilizam uma "rotulação" para o seu site, informando o seu conteúdo. O DansGuardian consegue ler e tomar uma ação, bloquear ou permitir.
  • Black List -> O site ou URL é bloqueado.
  • White List -> O site ou URL não será filtrada. Acesso total garantido.
  • Graylist -> O site será "parcialmente" liberado. Apenas o conteúdo poderá ser bloqueado.
  • Weighted Phrase List -> "Peso" das palavras. Se o site possuir certas palavras será liberado ou não.

Se você leu o texto até aqui e eu consegui te convencer, :) vamos para o que interessa!

Página anterior     Próxima página

Páginas do artigo
   1. Esclarecimentos
   2. Pré-requisitos
   3. Por quê DansGuardian?
   4. Como tudo irá funcionar
   5. Compilação e configuração
Outros artigos deste autor

Alta disponibilidade com IP compartilhado - UCARP

Filtragem de vírus com pop3 transparente: pop3vscan

Nagios Falante

Leitura recomendada

Segurança para iniciantes

Servidores Proxy - Segurança da Informação

SELinux na prática

Adicionando baterias automotivas extras em nobreaks

Jails em SSH: Montando sistema de Shell Seguro

  
Comentários
[1] Comentário enviado por fabio em 15/01/2005 - 01:00h

Excelente artigo Allan, meus parabéns.

Agora uma curiosidade, seguindo a linha das cores, whitelist, blacklist, o correto não seria GRAYlist ao invés de greylist? Pior que procurei no Google e realmente todas as referências são de grey com E.

Se tiver algum expert em inglês, grey também é correto ou foi falha do pessoal do DansGuardian ao dar nomenclatura mesmo?

[]'s

[2] Comentário enviado por fernandoamador em 16/01/2005 - 05:29h

Me ajudou bastante.

[3] Comentário enviado por allangood em 17/01/2005 - 10:18h

Obrigado pelo elogio.

Referente ao grey, ele significa cinzento, e está correto sim. O autor original do DG, Daniel Barron, é americano, não acredito que ele tenha escrito errado! rsrsrs. :)

Até mais.

P.S.: Umá dúvida que me foi reportada: Para habilitar a filtragem de vírus é necessário aplicar o patch do AV (DGAV) que se encontra no site do Aecio f. Neto, em: http://www.harvest.com.br/asp/afn/dg.nsf

Obs.: Lá existe o patch e o tar.gz com o patch já aplicado. Para quem gosta de evitar stress, baixe o tar.gz completo.

[4] Comentário enviado por junior_87 em 17/01/2005 - 11:42h

Olá, estou tendo um erro na hora de rodar o make install eu uso uma distribuição pouco conhecida o trustix ver 2.0, vejam o erro que ocorre:
chmod u+wrx /var/log/dansguardian/
if [ -f /sbin/chkconfig ]; then /sbin/chkconfig --add dansguardian; fi
error reading information on service dansguardian: No such file or directory
make: *** [install] Error 1
Alguém pode me ajudar?

[5] Comentário enviado por flipe em 17/01/2005 - 12:20h

você disse que o squid não é 100% eficiente em fazer filtragem pq se o usuario colocar ao invés de '.zip' colocar '%122ip' ele fara o download normalmente....

o dansguardian consegui reconhecer essa diferença?

e outro coisa...

me parece, como tu mesmo disse, isso é para evitar que os própios usuarios destruam a rede :D, mas quantos 'usuarios' sabem que %122 na tabela ASCii é equivalente a letra 'z'.

contando o restante do artigo, excelente!!!

e ficarei no aguardo da outra parte do documento!!

parabéns!! :D

[6] Comentário enviado por allangood em 17/01/2005 - 12:38h

Obrigado pelo elogio flipe.
Respondendo: o DG verifica não só a URL (como o Squid e os redirecionadres, tipo o squidGuard) ele verifica o conteúdo (MIME inclusive). Por exemplo, se você falou que não pode baixar .ZIP e alguem renomear de .ZIP para .XXX ele verificará pela tipo do arquivo (quase como o comando file faz) e não apenas pelo seu nome.

Exatamente, filtros servem para proteger os usuários deles mesmos... O perigo não são os que não conhecem os segredos e artimanhas, o perigo são aqueles que sabem... A pior forma de segurança é a obscuridade (não revelar suas falhas), porque cedo ou tarde elas vão aparecer. Exemplo vivo disso é a própria MicroSoft... :) que joga seu lixo para debaixo do tapete.

Lembre-se que aprender é muito fácil. Um usuário quando quer alguma coisa... ele dá um jeito!

[7] Comentário enviado por ferreira.jorge em 17/01/2005 - 16:09h

Para quem quizer fazer download do dasnguardian, ele encontra-se em: http://dasnguardian.org e não em http://www.dasnguardian.org;

Belíssimo trabalho.

[8] Comentário enviado por pgdn em 18/01/2005 - 04:20h

Na verdade ele se encontra em www.dansguardian.org .... mais isso não é tão relevante em comparação com a ótima qualidade do artigo..

Parabéns

[9] Comentário enviado por thiagoabb em 18/01/2005 - 10:51h

HUIHAahuhAI.. muito legal cara...

parabens

[10] Comentário enviado por rogerjoi em 19/01/2005 - 12:18h

Olá,
Artigo muito bom !!!!
Já instalei na minha maquina de teste e ta funcionando perfeito !

Só tenho uma dúvida:
Instalei o DansG com o ClamAV, dai para fazer o teste fui no site http://www.trendmicro.com/en/security/test/overview.htm ele baixou o arquivo normalmente, mas se tentar baixar do site http://www.eicar.org/anti_virus_test_file.htm dai ele bloqueia o site certinho informando o virus Eicar - Testfile.

Aguem saberia me dizer pq ?

[11] Comentário enviado por johnhenrique em 22/01/2005 - 14:51h

Muito interessante, sou novato na área, mas da forma como foi muito bem explicado entendi legal. Apliquei e agora é só alegria.

[12] Comentário enviado por sk em 28/02/2005 - 21:52h

Para configurarar o dansguardian com o squid em modo transparente substitua a regra similar a esta : iptables -t nat -A PREROUTING -i eth1 -s 192.168.13.0/24 -d any/0 -p tcp --dport 80 -j REDIRECT --to 3128 ( eth1 é a iface da rede interna) por: iptables -t nat -A PREROUTING -i eth1 -s 192.168.13.0/24 -d any/0 -p tcp --dport 80 -j REDIRECT --to 8080

[13] Comentário enviado por reimassupilami em 10/03/2005 - 11:14h

cara, bom o artigo hein... esse dansguardian tem funcionalidade pra caramba... estou implementando aki aquele outro artigo seu sobre o p3scan, e em seguida vou partir pra esse aki...

me diga uma coisa, no artigo você não fala nada sobre a configuração do antivirus... pq?

[14] Comentário enviado por reimassupilami em 10/03/2005 - 11:33h

tive o mesmo problema que o junior_87:

if [ -f /sbin/chkconfig ]; then /sbin/chkconfig --add dansguardian; fi
error reading information on service dansguardian: No such file or directory
make: *** [install] Error 1

q será?

[15] Comentário enviado por allangood em 10/03/2005 - 14:59h

reimassupilami:
O junior_87 teve este problema por ter usado EXATAMENTE as mesmas configurações que eu postei aqui como exemplo. Este erro acontece na hora de instalar os scripts de inicialização (no arqtigo eu apontei para o /tmp) e isso eralmente gera erro, aponta pro /etc/rc.d/ ou /etc/init.d/ (depende da sua distro)

Eu não falei nada sobre o antivírus por não ter muita coisa a dizer. A configuração é super simples e os arquivos de configuração são auto-explicativos. A única diferença (real) é um parâmetro a mais no dansguardian.conf.

Mas está saindo uma nova versão do DG (2.9) com algumas funcionalidades a mais. Prometo que quando ela estiver pronta, faço um artigo mais detalhado Ok? Até mais.

[16] Comentário enviado por aura em 17/03/2005 - 21:59h

Olá
Artigo legal em...
Eu realizei a implementação do dansguardian, mas não estou conseguindo configurar uma maquina para fazer download...
Apenas consigo se coloco o ip da mesma no arquivo exceptioniplist.
mas desta forma estou liberando todo o acesso desta maquina para a internet.
Sabe como posso fazer isso?
Obrigado

[17] Comentário enviado por allangood em 18/03/2005 - 10:06h

O DG não implementa ACLs como o Squid... tratar este tipo de excessão é mais complicado. Você pode configurar grupos com configurações diferentes para resolver o seu problema. Tanto no artigo como nos arquivos de configuração do DG mostra como fazer isso. Procure por grupos ok?

Até mais.

[18] Comentário enviado por kakaroto em 14/06/2006 - 19:43h

Ola allangood,

Muito bom seu artigo, parabéns! instalei usando seu tutorial e funcionou perfeitamente soh estou com uma dúvida, em relação a configuração pelo que percebi o dansguardian para fazer um filtro mais minuscioso precisaria que meu squid fosse autenticado, ai fiz alguns teste no arquivo filtergroup coloquei o ip da minha maquina e o "perfil" filter2

192.168.1.167=filter2

aparentemente funcionou, agora para o dansguardian me atender com completo queria saber se dah para fazer por rede tipo

192.168.1.0/24=filter2

obrigado e parabens pelo artigo :)

[19] Comentário enviado por allangood em 15/06/2006 - 02:08h

Olá kakaroto, a versão "stable" do DG (2.8) não implementa isso, mas se quiser ver um monte de funcionalidades novas (a que procura inclusive) baixe a versão "alpha" mais nova em http://www.dansguardian.org

Até mais.

[20] Comentário enviado por rilen em 07/07/2006 - 15:25h

Qual a melhor solução usando Squid com DG, caso o usuário venha baixar músicas ou programas, que seja mostrada a autenticação para prosseguir download.

Foi aplicados vários filtros (1 = Enxuto sem downloads; 2 = Enxuto com downloads de documentos; 3 = Enxuto com downloads; 4 = liberado), o DG demonstrou sua eficiência e versatilidade, porém penou ao descobrir que tinha que instalar XForward para que os dois (Squid e DG) possa tornar se em "uma carne só"!

Mesmo configurado XForward, o Squid somente trabalha na rede "localhost", dando mais resultados negativo sobre autenticação por downloads e também foi dificultado fazer controle por banda, afinal de contas, como vai limitar vários ip's se o Squid só existe um "localhost"?

Tenho esperança pela luz há bastante tempo, abraços galera!

[21] Comentário enviado por allangood em 07/07/2006 - 15:58h

Hehehe... legal essa de "uma carne só"...

Bem, com patch xff o Squid reconhece o endereço do usuário e não mais "localhost". Para isso, seu DG deve habilitar o envio do x-forwarded-for, verifique dentro do arquivo de configurações ok?

Dentro do dansguardian.conf coloque "forwardedfor = on". Se o patch tiver sido aplicado de forma correta, o Squid irá funcionar exatamente como você espera!

Até mais.

[22] Comentário enviado por freitasrdf em 11/08/2006 - 15:03h

O dansguardian não esta identificando os usuarios como eu resolvo isso??
Obs.: O programa é excelente, só tive que fazer uma alteraçoes para rodar no Mandriva ( '-user-' )

[23] Comentário enviado por allangood em 11/08/2006 - 15:27h

Olá Freitasrdf, bem... com estas informações, o máximo que posso te responder é isso:

1) O squid é responsável pela autenticação, verifique se ele está corretamente configurado.

2) Verifique se o dansguardian está com o plugin de autenticação correto (basic na versão 2.8.x).

Até mais.

[24] Comentário enviado por freitasrdf em 14/08/2006 - 13:58h

A versão do meu DG é 2.8. Meu SQUID está autenticando via PAM_AUTH, o plugin é o basic mesmo??

[25] Comentário enviado por freitasrdf em 16/08/2006 - 16:40h

Ai esquece, foi orelhada minha, meu localhost estava sem autenticação, eu mudei a config... :)
http_access allow localhost auth

[26] Comentário enviado por memaster em 21/08/2006 - 23:42h

Opa seu artigo ficou realmente bom, mais estou com um problema de novato na área q naum consigo destrinxar... olha soh, estou testando o Squid+DG+CLamav no slack 10.2 com kernel 2.4.31, o porem eh que quando vou acessar uma página ele me retorna a página de teste do apache... (putz q mico) bom sei que eh rateio meu, pois quando naum se acha em lugar algum como resolver um erro, tem-se 2 motivos ou o erro eh muito dificil de ser contornado, ou eh taum babaca q ninguem tem corajem de perguntar e acaba resolvendo de cabeça fria.... hehe, mais como ainda naum tive sucesso e eh minha primeira implementação tando de squid quando de DG, decidi dar a cara a tapas e perguntar... alguem sabe o pq disso???

[27] Comentário enviado por freitasrdf em 23/08/2006 - 10:43h

Voce esta direcionando a pagina de erro do dansguardian, para a do apache, esta pagina que normalmente fica em ../dansguardian/languages/Portuguese/template, mexe la no dansguardian.conf procure esta opção ela deve estar apontando para o seu ip ou o localhost

[28] Comentário enviado por jgama em 28/08/2006 - 23:19h

olá galera, realmente o artigo foi muito bem feito, mas como ainda sou inexperiente, e cada dia procuro melhorar o meu aprendizado, regarcei as mangas.

Tenho um problema

Quando starto o squid não aparece nenhuma menssagem de erro no console, mas também não estarta, verificando nos log, tem este erro:

2006/08/28 23:11:55| WARNING: basicauthenticator #2 (FD 13) exited
2006/08/28 23:11:55| Too few basicauthenticator processes are running
2006/08/28 23:11:55| storeDirWriteCleanLogs: Starting...
2006/08/28 23:11:55| Finished. Wrote 0 entries.
2006/08/28 23:11:55| Took 0.0 seconds ( 0.0 entries/sec).
FATAL: The basicauthenticator helpers are crashing too rapidly, need help!

Squid Cache (Version 2.5.STABLE14): Terminated abnormally.
CPU Usage: 0.080 seconds = 0.060 user + 0.020 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 408
Memory usage for squid via mallinfo():
total space in arena: 2125 KB
Ordinary blocks: 2093 KB 5 blks
Small blocks: 0 KB 0 blks
Holding blocks: 200 KB 1 blks
Free Small blocks: 0 KB
Free Ordinary blocks: 32 KB
Total in use: 2293 KB 108%
Total free: 32 KB 2%
unknown helper protocol []

Valid helper protools:

squid-2.4-basic
squid-2.5-basic
squid-2.5-ntlmssp
ntlmssp-client-1
gss-spnego
gss-spnego-client
ntlm-server-1
unknown helper protocol []

Valid helper protools:

squid-2.4-basic
squid-2.5-basic
squid-2.5-ntlmssp
ntlmssp-client-1
gss-spnego
gss-spnego-client
ntlm-server-1

Estou usando auteticação com protocolo ntlm_auth

Bom que puder ajudar a resolver o problema ficarei muito grato.

Uso Slack 10.2

Abraço:


[29] Comentário enviado por freitasrdf em 29/08/2006 - 08:24h

Bem quanto ao /etc/dansguardian voce deveria compilar com isso aqui --sysconfdir=/etc/dansguardian/
E sobre o NTLM_auth, parece estar faltando este modulo no squid, ele devera estar em /etc/squid/ntlm_auth
É o que eu posso dizer sem ver seu squid.conf.

[30] Comentário enviado por leoberbert em 06/09/2006 - 09:14h

Estou com alguns problemas no meu DANSGUARDIAN aqui, vê se pode me ajudar.. segui todos seus passos mais com alguns dados diferentes:

No meu squid.conf
Ao invés de http_port 127.0.0.1:3128 está http_port 192.168.0.254:3128

O parâmetros mais importantes são (dansguardian.conf):

* filterport = 80
* proxyip = 192.168.0.254
* proxyport = 3128

O meu está desta forma, se puder me ajudar fico agradecido, ele está rodando numa boa, sem erros, mais não faz nada hehe.. Se puder ajudar, fico agradecido.

MSN: leoberbert@linuxmail.org

Abraço!

[31] Comentário enviado por jgama em 10/09/2006 - 18:27h

Olá leobertbert
se cv deixa assim:
No meu squid.conf
http_port 127.0.0.1:3128

No dansguardian deixa assim

* filterport = 8080
* proxyip = 127.0.0.1
* proxyport = 3128


nas estações configura o proxy para pegar o IP so seu server. 192.168.0.254 porta 8080

Vai resolver.

Abraço

[32] Comentário enviado por brunosalmito em 15/05/2007 - 14:11h

Tá ai gostei, vai pros meus fav :0

[33] Comentário enviado por kenshisk em 31/05/2007 - 14:27h

Não testei ainda mais achei muito bom seu artigo, muito bem explicado está de parabéns este concerteza vai para os meus favoritos. :-)

[34] Comentário enviado por b2-spirit em 23/07/2007 - 16:56h

Na parte dos filtergroupslist eu poderia usar este recurso para bloquear o acesso ao MSN para um determinado grupo e deixar livre para todo o resto.

Desde já agradeço.

[35] Comentário enviado por allangood em 23/07/2007 - 17:07h

Sim, os grupos podem ser definidos para qualquer fim. Basta criar as categorias e associar as listas.

Até mais.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts