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.931 ]

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

Compilando Apache 2 com PHP, MySQL, mod_perl e mod_ssl

Gaim + Gaim Encryption - Bate-papo com segurança

Compilação distribuída usando o distcc

Tornando o OpenBSD stable

CentOS e LVM

Leitura recomendada

PhpDansAdmin, protótipo de ferramenta web para administração do DansGuardian

Analisando log Squid do Mikrotik no SARG

Compilando o Squid3

Problemas com o Squid

Gerando relatórios no Sarg com nome da máquina/usuário ao invés do IP

  
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