terça-feira, 10 de julho de 2012

Instalação e Configuração do SquidGuard no Centos

Bem pessoal hoje vou ensinar como instalar e configurar o SquidGuard para trabalhar junto com o Squid.
A utilização do SquidGuard junto ao Squid, seria para uma empresa onde é preciso acessar muitos sites, e se você usar da lógica de bloquear tudo e ir liberando o necessário  você Analista de Suporte/Administrador de Redes vai acabar tendo muito mais trabalho, então com o squid Guard, você pode utilizar Blacklist´s e bloquear diversas categoria de sites diferentes. 

Vantagens de utilizar o SquidGuard: é  free (Livre) e rápido, não deixando sua rede mais lenta.

Comando para instalação do SquidGuard no Centos e derivados:

# yum install squidguard

Caso seu sistema seja Ubuntu server ou Debian, o comando deve ser similar, caso não seja use do 
# apt-cache search squidguard  -> para encontrar o pacote de instalação.



Bem, dentro do diretório /etc/squid visto que voê já tenha seu squid instalado e configurado, haverá um arquivo chamado squidguard.conf que é o arquivo de configuração do SquidGuard.

Agora precisamos baixar as ou a blacklist´s para usarmos no SquidGuard.

Para baixar podemos usar o comando:

# wget http://squidguard.mesd.k12.or.us/blacklists.tgz

Dentro do diretório que foi feito o download descompacte com o comando:

# tar -zxvf blacklists.tgz

A pasta que foi descompactada, você vai precisar mover para o diretório criado pelo SquidGuard na instalação, em /var/lib/squidguard

# mv blacklists /var/lib/squidguard

Agora entre dentro do diretório squidguard.

# cd /var/lib/squidguard

Liste o que há dentro deste diretório.

# ls

Como você pode ver existem várias pastas, divididas em assuntos diferentes, dentro de cada pasta contém dois arquivos um denominado "domains" e "urls".

Dentro de domains contém os dominios de sites, e urls contem url´s isoladas para bloqueio.


Funciona da seguinte forma, você pode querer deixar o site da www.globo.com liberado, porém o link de noticias referente a novela por exemplo você querer bloquear, então dentro de "urls" você vai colocar a Urls (link) completo que leva até as notícias da novela, basicamente é isso.

Agora vamos para o arquivo de configuração, com seu editor de costume edite o arquivo squidguard.conf

# vim /etc/squid/squidguard.conf 

Dentro do arquivo você vai ver algumas linhas comentadas e outras descomentadas, algumas configurações pré ajustadas, eu costumo comentar tudo ou criar um arquivo em branco e trabalhar a partir dali.

Inicio do arquivo:


# /etc/squid/squidGuard.conf
dbhome /var/lib/squidguard
logdir /var/log/squid
A linha "dbhome" mostra onde vão ficar as blacklists, e a segunda linha "logdir" onde serão armazenados 
on logs.


Criando a acls:


dest warez{
domainlist blacklists/warez/domains
urllist blacklists/warez/urls
}


A primeira linha dest da um nome a "acl", a segunda linha "domainlist" indica onde está o arquivo domains, e a terceira linha indica a "urls"

Como podemos perceber não é preciso colocar o caminho completo, somente é preciso colocar apartir de blacklists.


Definindo as pemissões para as acls:


acl  {
default {
        pass  !warez all
redirect http://www.linuxstudylpi.blogspot.com.br
}


Aqui na definifição "pass" indica como a ACL será usada. No exemplo, usei a linha "pass !warez all", que indica que os acessos a páginas citadas nas listas dentro do diretório wares devem ser bloqueados, mas o acesso a outras páginas é aceito (all).

A frente do redirect voê pode colocar um site que você queira que os usuários vão ao serem bloqueados.

Para utilizarmos todos o conteúdo extraido da blacklist, é só criar várias regras (ACLs) e depois ir bloqueando, mais ou menos assim.


#################################################################################
# SISTEMA OPERACIONAL GNU/LINUX 6.0.5



# Cléio Sousa 
# ANALISTA DE SUPOORTE
# BLOG: linuxstudylpi.blogspot.com.br
# DATA: 10/07/2012
# CONFIGURANDO SQUIDGUARD 



# /etc/squid/squidGuard.conf
dbhome /var/lib/squidguard
logdir /var/log/squid

##Sites que nao passaram pelos bloqueios do squidGuard.
dest liberados {
domainlist blacklists/sitesliberados/domains
urllist blacklists/sitesliberados/urls
}


# ads - Sites que hospedam banners e anuncios em geral, exibidos em outras paginas
# (bloqueando estes dominios, voce bloqueia boa parte dos banners de anuncioss).
dest ads {
domainlist blacklists/ads/domains
urllist blacklists/ads/urls
}


dest aggressive {
domainlist blacklists/aggressive/domains
urllist blacklists/aggressive/urls
}

# Paginas (nao necessariamente ilegais) que hospedam videos e musicas, como o youtube.
dest audio-video {
domainlist blacklists/audio-video/domains
urllist blacklists/audio-video/urls
}

#  sites que vendem remedios e pginass com conteudo relacionado ao uso de drogas ou apologia as drogas.
dest drugs {
domainlist blacklists/drugs/domains
urllist blacklists/drugs/urls
}

# Sites de Cassinos e outras paginas relacionadas a jogos de aposta.
dest gambling {
domainlist blacklists/gambling/domains
urllist blacklists/gambling/urls
}

# Sites pornograficos
dest porn {
domainlist blacklists/porn/domains
urllist blacklists/porn/urls
}

#  reune URLs e enderecos de proxys externos, que podem ser usados pelos usuarios para furar o bloqueio, como o http://proxy.org.
dest proxy {
domainlist blacklists/proxy/domains
urllist blacklists/proxy/urls
}




# tambem serve para burlar, furar o proxy
dest redirector {
domainlist blacklists/redirector/domains
urllist blacklists/redirector/urls
}

# Paginas contendo virus e spywares diversos
dest spyware {
domainlist blacklists/spyware/domains
urllist blacklists/spyware/urls
}

# Paginas contendo conteudo de violencia, videos e fotos.
dest violence {
domainlist blacklists/violence/domains
urllist blacklists/violence/urls
}


# Paginas que contem programas piratas, cracks,  etc.
dest warez{
domainlist blacklists/warez/domains
urllist blacklists/warez/urls
}


acl  {
default {
        pass liberados !ads !aggressive !audio-video !drugs !gambling !porn !proxy
        !redirector !spyware !violence !warez all
redirect http://www.andreluiz.org.br
}
}


##################################   FIM  ########################################

Como podemos ver é só preciso repetir as ACLs e depois incluí-las dentro da regra de bloqueio.

A primeira regra "sitesliberados" foi criada fazendo com que os sites que estiverem dentro de /var/lib/squidguard/blabklists/sitesliberados sejam liberados, precisa ter os dois arquivos como dos outros diretórios, os arquivos domains e urls, e dentro dos dois arquivos precisa haver algum conteúdo, caso contrário não funciona corretamente as regras.

A ACL sitesliberados precisar ficar sem a exclamação a frente, e também precisa estar em primeiro lugar na regra de bloqueio (pass).

"A exclamação que determina o bloqueio da ACL"

É preciso também verificar as permissões dentro de  /var/lib/squidguard/ apartir daqui os diretório e subdiretórios precisam pertencer ao grupo do squid, e a permissão precisa ser 750 ou 755 como preferir.

De o seguinte comando para deixar ok.

# chown squid:squid  /var/lib/squidguard/blabklists -R
# chmod 750  /var/lib/squidguard/blabklists -R

Agora  precisamos rodar o comando squidGuard -C all que vai converter o conteúdo dentro de /var/lib/squidguard/blabklists para Berkeley DB, que permite um acesso muito mais rápido do que seria possível ao manipular diretamente os arquivos em texto.

# squidGuard -C all

Sim ele demora um pouco, caso tenha algo errado, ela vai travar seu terminal, para parar a conversão de um Control + c , e verifique seu arquivo squidguard.conf

Depois  de convertermos os arquivos da blacklist, se verificarmos dentro dos diretórios da blacklists você verá que foi criado arquivos .db que é onde o squidGuard vai buscar as informações dos domains e urls.

Agora vamos para o arquivo squid.conf em /etc/squid/squid.conf

Dentro do aquivo você vai colocar a linha que vai acionar o squidGuard.A linha é a seguinte:

redirect_program /usr/bin/squidGuard

Você precisa colocar essa regra após as regras de restrição do seu squid, porém precisa ser colocada antes das regras de finais.

Ficando mais ou menos assim:

http_access allow autenticacao sites_bloqueados
http_access deny usuarios_basicos
http_access allow usuarios_liberados

#### Acl de redirecionamento para Squid Guard #####
redirect_program /usr/bin/squidGuard

http_access deny all

Aqui eu peguei somente o final do arquivo de configura~çao só mesmo para você poder visualizar onde vai ficar o "redirect". Ficando depois das regra de bloqueio e antes da regra de bloqueio total da rede.

Depois reinicie o squid.

# /etc/init.d/squid restart

Para verificar se o SquidGuard está funcionando você pode utilizar o comando abaixo:


# tail /var/log/squid/squidGuard.log


Para testar você pode pegar uma url bloqueada dentro do squidGuard (/var/lib/squidguard/blacklists/gambling/) por exemplo e testar o acesso, caso não consiga acessar então  está funcionando  ;)

É bom lembrar que estas blacklist sempre são atualizadas, então é sempre bom estar atualizando os arquivos , e sempre que for alteradas é preciso rodar o comando # squidGuard -C all para a conversão e atualização do BD.

Bem pessoal é isso, espero que sirva de ajuda à alguém, abraço!



2 comentários:

  1. bom dia... ja a dias estou com dificuldades de fazer essa implementacao no centos 6.4 aparentemente ocorre tudo certinho inclusive na criacao dos dbs. porem nao bloqueia e nos logs diz que o squidguard esta parado. segue abaixo os logs.

    2013-06-24 15:38:39 [31168] New setting: dbhome: /var/squidGuard/db
    2013-06-24 15:38:39 [31168] New setting: logdir: /var/log/squidGuard
    2013-06-24 15:38:39 [31168] init domainlist /var/squidGuard/db/blacklists/ads/do mains
    2013-06-24 15:38:39 [31168] create new dbfile /var/squidGuard/db/blacklists/ads/ domains.db
    2013-06-24 15:38:39 [31168] init urllist /var/squidGuard/db/blacklists/ads/urls
    2013-06-24 15:38:39 [31168] create new dbfile /var/squidGuard/db/blacklists/ads/ urls.db
    2013-06-24 15:38:39 [31168] init domainlist /var/squidGuard/db/blacklists/porn/d omains
    2013-06-24 15:38:48 [31168] create new dbfile /var/squidGuard/db/blacklists/porn /domains.db
    2013-06-24 15:38:48 [31168] init urllist /var/squidGuard/db/blacklists/porn/urls
    2013-06-24 15:38:48 [31168] create new dbfile /var/squidGuard/db/blacklists/porn /urls.db
    2013-06-24 15:38:48 [31168] init domainlist /var/squidGuard/db/BL/porn/domains
    2013-06-24 15:39:00 [31168] create new dbfile /var/squidGuard/db/BL/porn/domains .db
    2013-06-24 15:39:00 [31168] init urllist /var/squidGuard/db/BL/porn/urls
    2013-06-24 15:39:00 [31168] create new dbfile /var/squidGuard/db/BL/porn/urls.db
    2013-06-24 15:39:00 [31168] init domainlist /var/squidGuard/db/BL/socialnet/doma ins
    2013-06-24 15:39:00 [31168] create new dbfile /var/squidGuard/db/BL/socialnet/do mains.db
    2013-06-24 15:39:00 [31168] init urllist /var/squidGuard/db/BL/socialnet/urls
    2013-06-24 15:39:00 [31168] create new dbfile /var/squidGuard/db/BL/socialnet/ur ls.db
    2013-06-24 15:39:00 [31168] squidGuard 1.4 started (1372102719.194)
    2013-06-24 15:39:00 [31168] db update done
    2013-06-24 15:39:00 [31168] squidGuard stopped (1372102740.368)

    alguma dica? ja disabilitei o firewall e o SeLinux tbm.

    ResponderExcluir