A intenção é mostrar a configuração do SquidGuard, então entende-se que seu squid já esta funcionando só iremos alterar algumas configurações para ele funcionar junto com o SQUIDGUARD.
Os testes foram feitos em um CentOS 4.5 e Fedora 5, mas funciona em qualquer sistema baseado em Red Hat, somente baixe os pacotes respectivos para sua distribuição.
Introdução
SquidGuard é um plugin para Squid que facilita ao administrador a manutenção e aplicação de regras de controle sobre o acesso dos usuários, além de implementar alguns controle não existentes no próprio squid. Possui um arquivo de configuração à parte do squid. Uma das vantagens de se usar o squidguard é pelo fato dele usar um banco de dados para acessar as blacklists, o que o torna muito mais rápido que o bloqueio usando as blacklists do squid que acessam diretamente um arquivo.
Configurando Squid para trabalhar junto com o SquidGuard
Para que o squid trabalhe junto com o SquidGuard temos que dizer a ele qual o arquivo de configuração do squidguard.
Insira a linha abaixo no seu squid.conf:
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
EXPLICAÇÃO: Essa linha fará com que o squidguard inicie junto com o squid e a opção “-c” seta o arquivo de configuração /etc/squid/squidGuard.conf
Baixando Blacklists com mais de 2.000.000 sites
Baixe o arquivo compactado em : http://urlblacklist.com/cgi-bin/commercialdownload.pl?type=download&file=bigblacklist
Extraindo o arquivo :
tar -zxvf bigblacklist.tar.gz
Agora mova o as blacklists para a pasta que costuma utilizar para deixar suas blacklists e whitelists. Eu costumo usar a pasta /var para isso mas sinta-se a vontade para usar a de sua preferência.
Uma observação importante, é a de você dar uma filtrada nas blacklists, pois são mais de 2.000.000 sites e algumas das blacklists baixadas você nunca irá usar, e porque quanto maior o número de blacklists maior será o tempo que o squidguard levará para atualizar suas blacklists quando for inserido novo site em uma delas. Então apague as blacklists não necessárias. No meu caso deixei apenas as blacklists abaixo:
drugs, hacking, onlinegames, proxy, spyware, warez
gambling, instantmessaging, phishing, ringtones, violence, weapons
games, mixed_adult, porn, sexuality, virusinfected
Setando Permissões nas BlackLists
Para que o squid possa manipular as blacklists é necessário que o usuário e o grupo das blacklists seja o squid:
# chown -R squid.squid /var/squidguard/blacklists
EXPLICAÇÃO:
chown :é um dos comandos usado para mudar dono, grupo de arquivos no linux
-R (Recursivo): é a opção que indica ao comando para aplicar o comando chown nos arquivos e Sub pastas da pasta PAI
squid.squid :é o dono.grupo
/var/squidguard/blacklists :é a pasta onde estão minhas blacklists
Configurando o squidGuard.conf
Exemplo de um squidGuard.conf:
########################## PATH LOGS E BLCKLISTS ################
dbhome /var/squidGuard/blacklists
logdir /var/log/squidGuard
######################### INICIO BLACKLISTS #####################
dest instantmessaging {
log instantmessaging
domainlist instantmessaging/domains
urllist instantmessaging/urls
}
dest onlinegames {
log onlinegames
domainlist onlinegames/domains
urllist onlinegames/urls
}
dest spyware {
log spyware
domainlist spyware/domains
# urllist spyware/urls
}
dest phishing {
log phishing
domainlist phishing/domains
urllist phishing/urls
}
dest drugs {
log drugs
domainlist drugs/domains
urllist drugs/urls
}
dest gambling{
log gambling
domainlist gambling/domains
urllist gambling/urls
}
##################### DECLARÇÃO DAS REDES #################
src localhost {
ip 127.0.0.1
}
src rede_adm {
ip 192.168.4.0/24
}
src laboratorio {
ip 192.168.0.0/16
}
src hospedagem {
ip 192.168.10.0/24
}
######################## INICIO ACL'S ############################
acl {
localhost {
pass all
}
}
acl {
rede_adm {
pass all
}
}
acl {
laboratorio {
pass !porn !drugs !hacking instantmessaging !onlinegames !spyware !phishing !violence !warez !gambling all
}
}
acl {
hospedagem {
pass !drugs !hacking instantmessaging proxy onlinegames !spyware !phishing !violence !warez !gambling all
}
}
################# ACL REDIRECIONAMENTO #################
acl { default {
pass none
redirect http://sv-07.ipaimec.net/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetgroup=%t&url=%u
}
}
EXPLICAÇÃO ARQUIVO SquidGuard.conf:
No incio no arquivo são inseridos os caminhos onde estão as blacklists e onde ficaram os arquivos de log. Ex:
dbhome /var/squidGuard/blacklists
logdir /var/log/squidGuard
dbhome - Diretório do banco de dados do squidGuard
logdir - Diretório de log do squid e squidGuard
Depois vem a declaração das blacklists que serão usadas. Ex:
dest instantmessaging {
log instantmessaging
domainlist instantmessaging/domains
urllist instantmessaging/urls
}
dest é oonde é definido nome da blacklist, no caso instantmessaging.
log é o nome dos arquivos de log
domainlist é o local onde está o arquivo com o os domínios da blacklists em questão
urlist é o local onde estão as url´s de sua blacklist
O próximo passo é a declaração das redes:
src localhost {
ip 127.0.0.1
}
src rede_adm {
ip 192.168.4.0/24
}
src: é o nome da rede a ser declarada, nos casos localhost e rede_adm
ip: É o ip da rede ou maquina que queira configurar.
Agora é a declaração das ACL´S:
acl {
rede_adm {
pass all
}
}
acl {
laboratorio {
pass !porn !drugs !hacking instantmessaging !onlinegames !spyware !phishing !violence !warez !gambling all
}
}
Toda acl inicia com: acl { seguida do nome da rede que foi declarada e você queira manipular no caso : rede_adm { depois vem a definições:
pass all : indica que tudo que vier da rede_adm será liberado. Ou seja, a rede_adm terá acesso liberado.
pass !porn !drugs !hacking: indica que tudo que vier da laboratorio e for diferente porn, diferente de drugs e diferente de hacking será liberado. Ou seja, quem estiver na rede do laboratorio não poderá acessar sites que estejam nas blacklists sitadas.
E toda acl termina com } #:O)
Para Finalizar temos a acl de redirecionamento...
acl { default {
pass none
redirect http://sv-07.ipaimec.net
}
Onde é criada a acl default, com o parâmetro pass none, seguido do redirect
Que indica que tudo que for negado ou seja sites que tenha sido bloqueado é redirecionado para uma url. Pode ela estar dentro do seu server ou uma url externa.
Alem das opções sitadas os squidguard possui outras opções, como:
time workhours - Controle de horário de acesso
rew dmz - Rede dmz
PESQUISE MAIS : www.squidguard.org
Criado o arquivo squidguard.conf agora precisamos reiniciar o squid para que o mesmo inicie junto o SquidGuard.
# /etc/init.d/squid restart
Verifique se o SquidGuard iniciou corretamente:
#ps -aux | grep squidGuard
squid 25326 0.2 0.3 7640 3148 ? Ss 04:15 2:11 (squidGuard) -c /etc/squid/squidGuard.conf
squid 25327 0.0 0.3 7504 3116 ? Ss 04:15 0:04 (squidGuard) -c /etc/squid/squidGuard.conf
squid 25328 0.0 0.2 7508 3080 ? Ss 04:15 0:00 (squidGuard) -c /etc/squid/squidGuard.conf
squid 25329 0.0 0.2 7512 3020 ? Ss 04:15 0:00 (squidGuard) -c /etc/squid/squidGuard.conf
squid 25330 0.0 0.2 6976 2532 ? Ss 04:15 0:00 (squidGuard) -c /etc/squid/squidGuard.conf
Se obter a resposta acima, seu squidguard está OK :O)
Agora quando você precisar inserir uma nova url um dominio na suas black lists o processo é o seguinte:
Com editor de sua preferência edite o arquivo da blacklist que queira inserir essa nova url.
EX:
# vim /var/squidguard/porn/domain/domains
Insira a pagina que queira bloquear, salve e saia.
Agora atualize o banco de dados do SquidGuard com o comando:
# squidguard -C all
Dependendo da quantidade de sites e de blacklists esse procedimento pode demorar.
Pronto seu squid está rodando junto com o squidguard...
Abraços... e USE LINUX !!!