DansGuardian Aplicação e Funcionalidades Leonardo Rosa da Cruz Faculdade de Tecnologia Senac Pelotas Curso Superior de Tecnologia em Redes de Computadores Rua Gonçalves Chaves, 602 Centro CEP: 96015-560 Pelotas RS - Brasil. leonardo@soldmac.com.br Resumo. O presente artigo tem como objetivo a implantação de software livre para diminuir os gastos com programas proprietários dentro de uma empresa. O foco do artigo é mostrar a aplicação e as funcionalidades da ferramenta DansGuardian que serve para filtrar o conteúdo acessado na internet, visando uma melhor utilização da internet dentro de uma empresa. Abstract. This paper aims at the implementation of free software to decrease spending on proprietary programs within a company. The focus of this paper is to show the application and the functionalities DansGuardian which serves to filter the content accessed on the Internet, seeking a better use of the Internet within a company. 1. Introdução Nos dias de hoje, sabemos que a internet é uma ferramenta quase que indispensável dentro de uma empresa. Porém deve ser utilizada de forma adequada e com o foco somente em assuntos que se diz respeito à empresa. Por mais que haja dialogo entre os diretores e funcionários para que o uso da internet seja feita da melhor forma, se a internet estiver totalmente disponível aos usuários, isso quer dizer, sem nenhuma restrição, ela vai sempre ser usada de forma indevida. Para isso existem ferramentas que fazem esse tipo de controle. Controlam o conteúdo, que é acessado em cada página que o usuário requisitar. Com esse tipo de ferramenta os administradores da rede conseguem fazer com que assuntos que não forem de interesse da empresa, sejam negados. É pensando nesse tipo de situação que apresento neste artigo uma ferramenta que vai reduzir os abusos na rede de uma empresa. 2. DansGuardian Segundo Augusto (2011), o DansGuardian, é uma opção de filtro de conteúdo desenvolvido para trabalhar em conjunto com o Squid, uma ferramenta originalmente concebida para ser um filtro de conteúdo. Por ser específico na sua função, este software é bem mais elaborado, nos permitindo filtrar de maneiras eficazes o conteúdo que é acessado pelos usuários. De acordo com Morimoto (2008), o Squid é um servidor proxy que permite compartilhar a conexão entre vários micros, servindo como um intermediário entre eles
e a internet. Usar um proxy é diferente de simplesmente compartilhar a conexão diretamente, via NAT. Ao compartilhar via NAT, os micros da rede acessam a internet diretamente, sem restrições. O servidor apenas repassa as requisições recebidas, como um garoto de recados. O proxy é como um burocrata que não se limita a repassar as requisições: ele analisa todo o tráfego de dados, separando o que pode ou não pode passar e guardando informações para uso posterior. A grande diferença entre o DansGuardian e o Squid é que o Squid 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. O DansGuardian inclui um conjunto de regras prontas, que contém palavras, frases e tipos de arquivos frequentemente usados em páginas impróprias, além de uma lista de páginas conhecidas e trabalha cruzando todas essas informações. 3. Benefícios A ferramenta DansGuardian implementada em uma empresa, traz de benefício a ela, um controle rigoroso do que pode ou não pode ser acessado na internet. Assim, direciona o funcionário da empresa a utilizá-la apenas para assuntos relacionados à própria organização. 4. Vantagens Uma das vantagens de se usar o DansGuardian é que ele trabalha com grupos de blacklists. Os filtros padrões já eliminam milhares de acessos conhecidos além de serem bastante flexíveis e configuráveis de acordo com a sua necessidade. Dessa forma um administrador de uma rede de computadores não necessita ficar analisando logs de acesso dos usuários com muita frequência à procura de requisições indevidas. É uma ferramenta muito simples de ser implementada e de grande utilidade. 5. Desvantagens Uma desvantagem na utilização do DansGuardian, é que como ele analisa listas de Domínios, Urls, e palavras-chaves, e cruza essas informações todas, em algum momento por exemplo, um site de bom conteúdo pode ser bloqueado por ele. Devido possuir em suas blacklists milhares de informações à serem restringidas. 6. Características Como toda ferramenta possui suas principais características de utilização, o DansGuardian também possui algumas que devem ser respeitadas para um bom funcionamento da ferramenta. O DansGuardian é uma ferramenta para usuários com algum conhecimento em Redes e Linux. Abaixo é listado algumas características importantes: Licença de Uso: GPL2, Open Source e Livre. Requisitos mínimos de hardware:
150MHz de processamento 32Mb de memória RAM a cada 50 usuários mais150mhz e 64Mb de RAM Esses requisitos de memória RAM são mais para o webproxy do que para o DansGuardian. Sistema Operacional Linux FreeBSD OpenBSD NetBSD Mac OS X Solaris 7. Processo de Instalação Primeiramente, antes de você instalar o DansGuardian, você deve ter o Squid instalado, configurado e ativo. Ele trabalha em conjunto com o Squid implementando suas políticas de acesso, mas deixando que o próprio Squid faça o acesso à web, cache e autenticação. Não necessita de uma configuração de muito alto nível, somente uma configuração mínima para funcionamento. Dependendo da sua distribuição, os comandos para instalação do Squid mudam um pouco, porém neste artigo a instalação foi feita na distribuição DebianSqueeze6, com o comando: [ apt-get install squid ] Depois do processo concluído, será necessário configurar o Squid com uma configuração mínima, como havia falado anteriormente. Para isso você deve acessar o arquivo de configuração do Squid que se encontra em /etc/squid/ e se chama squid.conf. Por padrão no processo de instalação do Squid, o arquivo squid.conf já é criado, e é um arquivo bastante extenso, pois o conteúdo deste arquivo, contém tudo o que se pode configurar no Squid. Mas como apenas precisamos de uma configuração mínima para funcionamento, devemos criar um arquivo novo. Se quiser você pode renomear o arquivo original de configuração para squid.conf.old, assim você pode utilizá-lo para futuras consultas. Com o arquivo novo já criado, você deve configurá-lo com o mínimo necessário para funcionamento do squid. Não necessita ter regras específicas, somente a porta onde o squid irá escutar que por padrão é a 3128, nome do servidor, algumas acl s com as portas conhecidas, identificação do servidor, localhost, e identificação da rede onde será aplicado o proxy. Na figura 1 está o arquivo de configuração do squid.
Figura 1 - squid.conf 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, para instalar o DansGuardian o comando a ser utilizado segue abaixo. [ apt-get install dansguardian ] Há basicamente dois arquivos que devem ser configurados para fazer o Dansguardian funcionar corretamente: dansguardian.conf dansguardianfx.conf Onde X equivale a um número, na instalação já vem com o dansguardianf1.conf mas você pode colocar qualquer nome. No primeiro, você irá configurar o funcionamento geral do DansGuardian como por exemplo, em qual língua será a página que o usuário receberá ao ser negado o acesso, como o log será formado (Estilo DansGuardian, Squid ou CSV), onde será salvo o log, a porta que o DansGuardian irá escutar, a porta em que o proxy irá escutar, definição de filtro por grupo, configurações diversas com relação ao DansGuardian. O segundo arquivo define as regras para bloqueio e acesso de grupo. Por padrão, vem apenas um arquivo chamado dansguardianf1.conf e nele você irá associar o arquivo com a lista de sites ou palavras com a funcionalidade correta do DansGuardian. Por padrão, isso já vem pronto, montado e estruturado. Basta, apenas, melhorar essas listas. Neste mesmo arquivo você irá definir a média do bloqueio (naughtynesslimit). O principal arquivo de configuração do DansGuardian é o dansguardian.conf conforme Figura 2, que fica localizado em /etc/dansguardian/.
Figura 2 - dansguardian.conf Ao configurá-lo pela primeira vez, é importante verificar algumas opções: # UNCONFIGURED Esta linha deve ficar comentada, indicando que o arquivo já foi configurado. language = portuguese Esta opção configura a língua em que as mensagens de acesso bloqueado serão mostradas aos usuários. 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 o 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 Whitelist, contendo uma lista de páginas que sempre são permitidas, mesmo que sejam encontradas palavras proibidas dentro do texto. filterport = 8080 Esta é a porta onde o DansGuardian fica ativo. Ele sempre deve utilizar uma porta diferente do Squid, pois são duas coisa separadas. O padrão do DansGuardian é a porta 8080. proxyip = 192.168.200.1 O endereço IP do servidor proxy que será usado. proxyport = 3128
A porta TCP onde o servidor Squid especificado na opção acima está ativo. O Squid usa a porta 3128 como padrão. Existe hoje uma lista de URL's, Domínios e palavras-chaves que não são permitidas o acesso. Toda vez que uma página é requisitada, essa lista é conferida, seguindo a seguinte ordem: Domínio URL Palavras Chaves 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 acordo com a Figura 3 e o acesso sequer é feito, economizando banda. Figura 3 - Acesso negado 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, frequentemente 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/lists/phraselist.
No final, o site recebe uma nota, apelidada pelos desenvolvedores do DansGuardian de naughtynesslimit ou índice de sem-vergonhice, que nada mais é que o resultado de todas as palavras boas e ruins. Esse índice é o máximo que o DansGuardian irá tolerar para negar ou não o acesso. Se define esse índice em /etc/dansguardian/dansguardianf1.conf, na opção abaixo. naughtynesslimit = 200 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. Conforme Tabela 1, algumas listas em /etc/dansguardian de utilização corriqueira. LISTAS EM /ETC/DANSGUARDIAN NOME bannedextensionlist bannediplist bannedmimetypelist bannedphraselist bannedregexpurllist bannedsitelist bannedurllist filtergroupslist blacklists exceptionphraselist exceptionsitelist exceptionurllist filtergroupslist greysitelist greyurllist languages phraselists weightedphraselist DESCRIÇÃO Extensões proibidas (ex:mp3) Lista de ips proibidos Proibir download por tipo de arquivo Lista de palavras proibidas Urls proibidas baseadas em expressões regulares Lista de domínios proibidos Lista de urls proibidas Arquivo de filtragem de grupos criados Pasta que contém os domínios proibidos Lista de palavras permitidas Lista de domínios permitidos Lista de urls permitidas Filtros criados quando a conexão é voltada a usuários Libera a url do domínio, mas o conteúdo é analisado Libera a url, mas o conteúdo é analisado Pasta com lista de avisos e html de bloqueio Pasta que contém arquivos que diz o peso das palavras Lista onde está os arquivos que trabalham com pesagem de palavras. Tabela 1 Listas de configurações do DansGuardian
Verificando o conteúdo dos arquivos das listas de palavras, o DansGuardian vem configurado com listas em inglês, que deixam passar muitos sites nacionais. Podemos baixar um arquivo com listas em outras línguas, incluindo o português, no site do próprio DansGuardian. Caso queira efetuar as atualizações mais tarde, não tem problema, com os arquivos que o Dansguardian disponibiliza já se tem uma boa ideia do funcionamento da ferramenta. Se for atualizar, devemos configurar o DansGuardian para utilizar as listas incluídas. Além do filtro com base em palavras, o DansGuardian utiliza uma lista de sites proibidos, que sequer chegam a ser acessados, chamado de BlackList. Por padrão, o DansGuardian vem com uma lista muito pequena e desatualizada, apenas como exemplo. Para efetivamente usar este recurso, é preciso baixar uma lista mais elaborada. Estas listas estão disponíveis na internet em diversos sites. Este arquivo possui uma série de sites proibidos separados por categoria. Cada uma das categorias possui pastas com domínios e pastas com Url s, com sites conhecidos que serão bloqueados pelo DansGuardian. De acordo com cada necessidade estas categorias devem ser adicionadas ao DansGuardian. 8. Estudo de Caso Depois de muitos testes com a ferramenta DansGuardian posso dizer que ela é eficiente e cumpre com todas as suas funcionalidades. Com o DansGuardian instalado e configurado mostro algumas de suas funcionalidades. Figura 4 Acessando o portal da UOL Como podemos ver na Figura 4, o usuário fez um acesso ao portal da UOL sem nenhuma restrição. Mas caso haja a necessidade de bloquear este site, apenas precisamos incluí-lo na nossa lista de sites não permitidos do DansGuardian. Para isso basta apenas editar o arquivo: /etc/dansguardian/lists/bannedsitelist
E incluir o site da UOL ao final do arquivo, de acordo com a Figura 5. Figura 5 Arquivo de configuração [ bannedsitelist ] Com isso os usuários não vão ter mais acesso ao portal da UOL, ao tentarem acessar novamente o portal UOL, receberão uma pagina de retorno com a mensagem de acesso negado, onde essa página mostra o endereço do site que está sendo bloqueado e em qual categoria o endereço se encontra, conforme a Figura 6. Figura 6 Página de acesso negado domínio
Figura 7 Endereço IP do Host Na Figura 7 existe a configuração de rede de um Host, onde seu endereço IP é 192.168.200.10. Com o DansGuardian é possível bloquear o Host de ter acesso a Web, através do seu endereço IP. Para isso basta apenas editar o arquivo: /etc/dansguardian/lists/bannediplist E incluir o IP 192.168.200.10 ao final do arquivo, como mostra a figura 8. Figura 8 Arquivo de configuração [ bannediplist ]
Com esta configuração o host de IP 192.168.200.10 não terá mais acesso Web. Caso tente acessar algum site receberá a pagina de retorno do DansGuardian de acesso negado e com a informação de que seu IP não possui permissão de acesso. Conforme Figura9. Figura 9 Página de acesso negado IP Por padrão, quando instalamos o DansGuardian em suas listas de configurações, existe uma que se chama bannedextensionlist, que possui muitas extensões de arquivos sendo bloqueadas. Na Figura 10 o usuário tentou fazer download de um arquivo com extensão (.ISO). Mas não obteve êxito. Figura 10 Página de acesso negado Extensão proibida
Se precisar liberar este tipo de extensão, por exemplo, deve-se editar o arquivo: /etc/dansguardian/lists/bannedextensionlist E comentar com # a extensão (.iso), conforme mostra Figura 11. Figura 11 Arquivo de configuração [ bannedextensionlist ] A partir de agora o download de um arquivo com extensão(.iso) será permitido. Na Figura 12 a seguir mostra o início do download. Figura 12 Extensão de arquivo (.ISO) permitido
9. Conclusão A ferramenta DansGuardian é um serviço muito flexível, e que pode personalizar os acessos e bloqueios de acordo com as necessidades e políticas de uma empresa. Com o uso do DansGuardan na rede é possível focar o funcionário de uma empresa, por exemplo, que possui acesso a internet a pesquisar assuntos relacionados apenas ao que interessa para a organização. E com certeza a internet sendo utilizada desta forma, o rendimento deste funcionário aumentará. Estas são apenas algumas modificações que podem auxiliar na qualidade da internet em uma empresa. Cada um destes serviços, como o DansGuardian, adiciona uma carga de utilização no servidor, por isso, tem que ter cautela em configurar este tipo de ferramenta para não sobrecarregar demais o servidor e tornar este o gargalo da rede. Referências Augusto, Danilo (6 de Abril, 2011) Squid x Dansguardian: Controle de acesso à internet Acessado em Abril de 2012. http://www.iotecnologia.com.br/squid-xdansguardian-controlando-o-acesso-internet Morimoto, Carlos Eduardo (2009). Servidores Linux Guia Prático (Livro) Morimoto, Carlos E. (1 de Agosto, 2008) Servidores Linux, Guia Prático Usando o DansGuardian Acessado em Abril de 2012. http://www.hardware.com.br/livros/ servidores-linux/usando-dansguardian.html, http://www.hardware.com.br/livros/servidores-linux/configurando-servidor-proxycom-squid.html Rodrigues, Washington (26 de Agosto, 2010) DansGuardian Acessado em Abril de 2012. http://pt-br.wiki.brazilfw.com.br/dansguardian/pt-br#dansguardian. Root, (26 de Março, 2010) Instalando e Configurando DansGuardian no Debian 5.0.3 Acessado em Maio de 2012. http://blognu.wordpress.com/2010/03/26/instalando-econfigurando-dansguardian-no-debian-5-0-3/