Post on 18-Dec-2014
description
Filtros Inteligentes, Otimizando sua Internet
$ whoami
● Thiago Finardi (@tfinardi)
● Administrador de Sistemas GNU/Linux
● Analista e Desenvolvedor de Sistemas
● Docente no Curso Técnico em Informática
$ whoami
● Linux Professional Institute Certification;
● Novell Data Center Technical Specialist;
● Novell Certified Linux Administrator;
● Experiência com linux desde 2003;
● Membro do TchêLinux;
● Membro do Debian Brasil;
Proxy/Cache
● O Squid serve para aumentar o desempenho de acesso a internet utilizando seu cache de páginas, atualizações do SO, etc.
● Também é utilizado para restringir/permitir o acesso a sites especificados em seus arquivos de configuração.
Proxy/Cache
● Cenário básico
Proxy Permissivo
● Tudo é bloqueado, o acesso somente é permitido para os sites especificados na sua “whitelist”.
● acl permitidos url_regex -i "/etc/squid/permitidos"● http_access allow permitidos● http_access deny all
Proxy Restritivo
● Tudo é liberado, o acesso somente é negado para os sites/palavras especificados na sua “Blacklist”.
● acl bloqueados url_regex -i "/etc/squid/bloqueados"● http_access deny bloqueados● acl palavras dstdom_regex "/etc/squid/palavras"● http_access deny palavras● http_access allow all
BlackList
● Não devemos utilizar uma blacklist muito grande.
● O squid lê o arquivo de blacklist a cada acesso.
● Quanto maior o arquivo, mais lento fica o squid.
SquidGuard
● Bloquear páginas impróprias é um grande problema;
● Se soubermos todas as URLs a bloquear fica fácil, mas e se quiséssemos bloquear todas as páginas de um determinado tipo?
● O SquidGuard permite usar longas listas de URLs, com milhões de links sem uma grande perda de desempenho.
SquidGuard: Listas
● MESD blacklists (Livre)● http://goo.gl/De1Sq
● Shalla's Blacklists (Livre/Não Comercial)● http://goo.gl/Fln9h
● URLBlacklist.com (Comercial)
SquidGuard: Listas
● As listas são divididas por categorias● chat, adv, drugs, sex, proxy, socialnet,
warez, audio-video, etc.
● É possível mesclar as listas.
● Controle por horário, dias, ip, etc.
SquidGuard: ACLs
dest porn {
domainlist porn/domains
urllist porn/urls
}
dest proxy {
domainlist proxy/domains
urllist proxy/urls
}
acl {
default {
pass !porn !proxy all
redirect http://www.senacrs.com.br
}
}
Let's Work Together
Instalando o Squid
No Debian, para instalar o squid devemos utilizar o seguinte comando como root:
● # apt-get install squid
Toda a configuração do Squid é feita em um único arquivo, o "/etc/squid/squid.conf".
Configurando o Squid
Iremos criar uma configuração básica para facilitar o entendimento da utilização dos filtros.
Execute os passos abaixo para ajustarmos as configurações. Após veremos os detalhes:
# cd /etc/squid/
# mv squid.conf bkp.conf
# cp squid1.conf squid.conf
# nano squid.conf
Testando o Squid
Verifique o ip da máquina virtual:
# ifconfig eth0
Vamos reiniciar o serviço:
# /etc/init.d/squid restart
Altere as configurações do proxy no navegador:
Ip do passo 1 + porta 3128
Restringindo acesso
Novamente iremos copiar novas configurações:
# cp squid2.conf squid.conf
Edite os seguintes arquivos e veja seu conteúdo:
# nano bloqueados
# nano palavras
Edite o arquivo squid.conf
# nano squid.conf
Testando acesso
Precisamos reiniciar o serviço
# /etc/init.d/squid restart
Vamos tentar acessar os sites que estão bloqueados por domínio ou palavra.
www.orkut.com
www.twitter.com
www.youtube.com
Baixando Listas
Vamos instalar o squidGuard:
# apt-get install squidguard
Como já sabemos, o squidGuard trabalha com listas, devemos baixar as mesmas:
# cd /var/lib/squidguard/db/
# wget -c http://squidguard.mesd.k12.or.us/blacklists.tgz
# wget -c http://www.shallalist.de/Downloads/shallalist.tar.gz
Baixando Listas
Vamos descompactar as listas
# tar -xzvf blacklists.tgz
# tar -xzvf shallalist.tar.gz
Configurando squidGuard
Vamos novamente copiar o modelo de configuração:
# cd /etc/squid
# mv squidGuard.conf bkp.guard
# cp guard1.conf squidGuard.conf
# nano squidGuard.conf
Gerando DB
O squidGuard utiliza um banco de dados (Berkeley DB) para realizar as consultas:
# squidGuard -C all
Este comando iremos executar sempre que o arquivo de configuração do squidGuard for modificado
Ajustando Permissões
Após gerarmos o DB devemos ajustar as permissões. Se não fizermos isso, o squid não consegue acessar os db das listas.
# chown -R proxy:proxy /var/lib/squidguard/db/*
# find /var/lib/squidguard/db -type d | xargs chmod 755
# find /var/lib/squidguard/db -type f | xargs chmod 644
* Recomendo a criação de um script.
Ativando squidGuard
Devemos incluir o squidGuard na configuração do squid. Novamente, usaremos modelo:
# cd /etc/squid
# cp squid3.conf squid.conf
# nano squid.conf
Vamos carregar as novas configurações:
# squid -k reconfigure
Dicas
Log: /var/log/squid/squidguard.log
Exemplo de script no arquivo proxy_perm:
# nano proxy_perm
Podemos remover nossas antigas restrições
# cp squid4.conf squid.conf
Podemos liberar máquinas no squidGuard
# cp guard2.conf squidGuard.conf
Possíveis Problemas
● Alguns sites não estarão na lista;
● Sites não muito conhecidos e com nomes que não tem relação com o conteúdo passam despercebidos;
● Mesmo assim tem muito mais prós do que contras.
Filtrando conteúdos
● O DansGuardian é um filtro de conteúdo;
● É semi-comercial;
● Utiliza filtros adaptativos para analisar o conteúdo das páginas e definir se a mesma é imprópria;
● Necessita de uma manutenção mais ativa;
● Recomendável utilizar a lista URLBlacklist.com
Thiago FinardiTwitter: @tfinardi
Blog: www.botecodigital.infoe-mail: tfinardi@gmail.com
Slides: www.slideshare.net/tfinardiArquivos: ubuntuone.com/p/1AIu/
Obrigado!