OpenBSD Proxy - Squid, SquidGuard, SquidClamAV e AdZapper

cvs

Nesse artigo abordaremos a instalação de um servidor proxy utilizando como base o robusto OpenBSD e o grande Squid. Também vamos utilizar alguns softwares/plugins para melhorar a filtragem do conteúdo e aumentar a segurança da rede. Dentre eles, além do Squid, vamos utilizar o SquidGuard, SquidClamAV e AdZapper.

[ Hits: 57.389 ]

Por: Thiago Alves em 31/08/2009 | Blog: http://www.seeufosseopresidente.com.br


SquidGuard: Instalação e configuração



Agora vamos instalar o SquidGuard:

# cd /usr/ports/www/squidguard/
# make install clean


Após a instalação poderemos encontrar um arquivo com a blacklist da seguinte forma:

# cd /usr/local/share/examples/squidguard/dest/
# tar zxvf blacklists.tar.gz -C /var/squidguard/db


Assim teremos a blacklist descompactada no caminho onde o SquidGuard verifica.

Temos que fazer pequenas configurações no SquidGuard, como determinar o IP do administrador, a faixa de rede e coisas do tipo. Para isso basta dar uma olhada no arquivo de configuração dele: /etc/squidguard/squidguard.conf

Como no exemplo abaixo:

src admin {
    ip      10.62.102.122 # The administrator's PC
    domain  minhaempresa.com.br # The LAN domain
    user    root administrator # The administrator's login names
}

src lan {
    ip      10.62.102.0/24 # The internal network
    domain  minhaempresa.com.br # The LAN domain
}

Nesse exemplo eu coloquei o IP da minha máquina e meu domínio como sendo do administrador e a faixa de lá, o endereço /24.

Para colocar o SquidGuard para verificar os domínios e URLs, insira no arquivo de configuração dele (/etc/squidguard/squidguard.conf) as seguintes linhas:

dest porn {
    domainlist     blacklists/porn/domains
    urllist        blacklists/porn/urls
    expressionlist blacklists/porn/expressions
    # Logged info is anonymized to protect users' privacy
    log anonymous  dest/porn.log
}

dest drugs {
    domainlist     blacklists/drugs/domains
    urllist        blacklists/drugs/urls
    # Logged info is anonymized to protect users' privacy
    log anonymous  dest/drugs.log
}

dest gambling {
    domainlist     blacklists/gambling/domains
    urllist        blacklists/gambling/urls
    # Logged info is anonymized to protect users' privacy
    log anonymous  dest/gambling.log
}

Nesse caso ele bloqueará drogas, jogos e pornografia. Caso queira mais bloqueios, dê uma olhada nos diretórios dentro de /var/squidguard/db/blacklists e faça a inserção seguindo os modelos acima.

Agora vamos definir uma ACL para o SquidGuard trabalhar filtrando por ela. Vai ficar mais ou menos assim:

acl {
   admin within workhours {
      pass !porn !drugs !gambling all
   } else {
      pass !drugs !gambling all
   }
   lan {
      pass !in-addr !porn !drugs !gambling all
   }
   default {
      pass none
      redirect  http://www.minhaempresa.com.br/acessonegado.php
   }
}

Funcionando mais ou menos assim: na hora de serviço ele vai passar tudo diferente de pornografia, drogas e jogo. Se for horário fora do expediente ele passa tudo menos drogas e jogo. Isso para o admin. Para a lan ele vai passar tudo, menos pornografia, drogas e jogos. Caso algum desses conteúdos sejam acessados, ele vai redirecionar para o site da minha empresa com uma página de erro padrão.

Agora vamos criar os arquivos para que o SquidGuard possa interpretá-los. Lembrando que os arquivos de configuração estão em /etc/squidguard/, qualquer coisa é só dar uma olhada lá dentro.

Obs.: Antes de rodar o update dos arquivos, crie o diretório "dest" dentro do SquidGuard, da seguinte maneira:

# mkdir /var/squidguard/log/dest

Com isso os logs ficarão dentro deste dest. Ou então altere o arquivo .conf do SquidGuard. Fica a seu critério.

# squidGuard -u -C all -d
(o -d vai ser o debug)

Isso funciona mais ou menos como o postmap do Postfix para gerar o arquivo .db, mas aqui ele vai criar arquivos no padrão Berkeley DB. Ele deve lhe informar algo mais ou menos assim:

# squidGuard -u -C all -d
2009-08-26 13:59:29 [18723] New setting: dbhome: /var/squidguard/db
2009-08-26 13:59:29 [18723] New setting: logdir: /var/squidguard/log
2009-08-26 13:59:29 [18723] Added User: root
2009-08-26 13:59:29 [18723] Added User: foo
2009-08-26 13:59:29 [18723] Added User: bar
2009-08-26 13:59:29 [18723] destblock good missing active content, set inactive
2009-08-26 13:59:29 [18723] destblock local missing active content, set inactive
2009-08-26 13:59:29 [18723] init domainlist /var/squidguard/db/blacklists/porn/domains
2009-08-26 13:59:37 [18723] create new dbfile /var/squidguard/db/blacklists/porn/domains.db
2009-08-26 13:59:37 [18723] init urllist /var/squidguard/db/blacklists/porn/urls
2009-08-26 13:59:37 [18723] create new dbfile /var/squidguard/db/blacklists/porn/urls.db
2009-08-26 13:59:37 [18723] init expressionlist /var/squidguard/db/blacklists/porn/expressions
2009-08-26 13:59:37 [18723] init domainlist /var/squidguard/db/blacklists/drugs/domains
2009-08-26 13:59:37 [18723] create new dbfile /var/squidguard/db/blacklists/drugs/domains.db
2009-08-26 13:59:37 [18723] init urllist /var/squidguard/db/blacklists/drugs/urls
2009-08-26 13:59:37 [18723] create new dbfile /var/squidguard/db/blacklists/drugs/urls.db
2009-08-26 13:59:37 [18723] init domainlist /var/squidguard/db/blacklists/gambling/domains
2009-08-26 13:59:37 [18723] create new dbfile /var/squidguard/db/blacklists/gambling/domains.db
2009-08-26 13:59:37 [18723] init urllist /var/squidguard/db/blacklists/gambling/urls
2009-08-26 13:59:38 [18723] create new dbfile /var/squidguard/db/blacklists/gambling/urls.db
2009-08-26 13:59:38 [18723] squidGuard 1.2.1 started (1251305969.006)
2009-08-26 13:59:38 [18723] db update done
2009-08-26 13:59:38 [18723] squidGuard stopped (1251305978.051)

E agora vamos dar permissão para o Squid ler lá dentro.

# chown -R _squid /var/squidguard/

Agora edite o arquivo /etc/squid/squid.conf e adicione essas 3 linhas nele:

url_rewrite_program   /usr/local/bin/squidGuard
url_rewrite_children  5
url_rewrite_access    deny  localhost

Então reinicie o Squid ou apenas inicie ele caso esteja parado. E pronto, o SquidGuard estará funcionando.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Squid: Instalação de configuração
   3. SquidGuard: Instalação e configuração
   4. SquidClamAV: Instalação e configuração
   5. AdZapper - Instalação e configuração
   6. Conclusão
Outros artigos deste autor

MPlayer - The Movie Player

Slackpkg, uma ótima ferramenta para Slackware

Tornando o OpenBSD stable

CentOS + RAID1 via software

Criando uma ISO bootável do OpenBSD

Leitura recomendada

Gerando e gerenciando relatórios mensais com o SARG

Instalação do Squid 3.2.0.14 no Slackware com execução em ambiente chroot

Configurando Squid para liberação de messenger em horário específico, dentre outros

Proxy transparente com Squid, com controle de banda e bloqueio por horários

Como fazer o Squid funcionar da maneira mais simples possível no Xubuntu e derivados

  
Comentários
[1] Comentário enviado por roberto_espreto em 31/08/2009 - 02:23h

Se tem OpenBSD no meio, com certeza é excelente!
Ótimo artigo.
Abraços.

[2] Comentário enviado por pitombera em 31/08/2009 - 11:28h

São artigos como esse que fazem minha conta na VOl valerem a pena.

Como sempre, Parabéns :D

[]'s

[3] Comentário enviado por y2h4ck em 31/08/2009 - 12:53h

E ae CVS :) muito tempo que eu não comento um artigo seu hein.
Vamos ver se eu me inspiro com seu artigo e resolvo postar alguma coisa tambem :S

forte abraço e parabéns.

y2h4ck


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts