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
Obrigado!

          Thiago Finardi
         Twitter: @tfinardi
   Blog: www.botecodigital.info
    e-mail: tfinardi@gmail.com
Slides: www.slideshare.net/tfinardi
 Arquivos: ubuntuone.com/p/1AIu/

Oficina de Squid: Filtros Inteligentes

  • 1.
  • 2.
    $ whoami ● Thiago Finardi (@tfinardi) ● Administrador de Sistemas GNU/Linux ● Analista e Desenvolvedor de Sistemas ● Docente no Curso Técnico em Informática
  • 3.
    $ 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;
  • 4.
    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.
  • 5.
    Proxy/Cache ● Cenário básico
  • 6.
    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
  • 7.
    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
  • 8.
    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.
  • 9.
    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.
  • 10.
    SquidGuard: Listas ● MESD blacklists (Livre) ● http://goo.gl/De1Sq ● Shalla's Blacklists (Livre/Não Comercial) ● http://goo.gl/Fln9h ● URLBlacklist.com (Comercial)
  • 11.
    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.
  • 12.
    SquidGuard: ACLs destporn { 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 } }
  • 13.
  • 14.
    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".
  • 15.
    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
  • 16.
    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
  • 17.
    Restringindo acesso Novamenteiremos 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
  • 18.
    Testando acesso Precisamosreiniciar 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
  • 19.
    Baixando Listas Vamosinstalar 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
  • 20.
    Baixando Listas Vamosdescompactar as listas # tar -xzvf blacklists.tgz # tar -xzvf shallalist.tar.gz
  • 21.
    Configurando squidGuard Vamosnovamente copiar o modelo de configuração: # cd /etc/squid # mv squidGuard.conf bkp.guard # cp guard1.conf squidGuard.conf # nano squidGuard.conf
  • 22.
    Gerando DB OsquidGuard 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
  • 23.
    Ajustando Permissões Apósgerarmos 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.
  • 24.
    Ativando squidGuard Devemosincluir 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
  • 25.
    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
  • 26.
    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.
  • 27.
    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
  • 28.
    Obrigado! Thiago Finardi Twitter: @tfinardi Blog: www.botecodigital.info e-mail: tfinardi@gmail.com Slides: www.slideshare.net/tfinardi Arquivos: ubuntuone.com/p/1AIu/