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.