terça-feira, 28 de outubro de 2008

Configurando SQUIDGUARD + SQUID

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

Um comentário:

Squidblacklist disse...

YOU should be using OUR Blacklists!

We are the worlds leading publisher of Squid 'Native ACL' formatted blacklists, that allow for web filtering directly with Squid proxy. Of course we also offer alternative formats for the most widely used third party plugins, such as DansGuardian and Squidguard. And while our blacklists are subscription based, they are as a result of our efforts, of a much higher degree of quality than the free alternatives.

We hope to serve you,

--
Signed,

Benjamin E. Nichols
http://www.squidblacklist.org