Configurando um Servidor Proxy Squid com SquidGuard e Atualização de Blacklist no Ubuntu 14

Configurando um Servidor Proxy Squid com SquidGuard e Atualização de Blacklist no...

(Parte 1 de 2)

Configurando um Servidor Proxy Squid com SquidGuard e Atualização de Blacklist no Ubuntu 14.10

Escrito por Francies Silva de Lima. 

Olá a todos.

Hoje quero trazer mais um tema que foi um dos tópicos do meu trabalho de conclusão do curso técnico em redes de computadores, Servidor Proxy.

A abordagem deste assunto aqui vai ser mais simples. Pois o foco deste tutorial é para pequenos escritórios, servidores domésticos com fins acadêmicos. Mas nada impede de você melhorar as configurações e torná-lo mais robusto e adequá-lo as suas necessidades. Afinal, estamos tratando de um software livre.

O objetivo principal deste tutorial é:

  • Criar um servidor de cache para “acelerar” a navegação;

  • Filtragem de conteúdo indesejado;

  • Atualização da blacklist em poucos passos.

Vou utilizar o Ubuntu Server 14.10 rodando no VirtualBox e utilizando apenas 512 MB de RAM e 9 GB de HD para o laboratório.

Após a instalação do sistema, faço uma atualização geral como é de praxe.

# apt-get update && apt-get dist-upgrade -y

Após reiniciar o sistema, vamos ao que interessa. Como estamos falando de um servidor, é recomendando, pra não dizer obrigatório, fixar um endereço IP para o mesmo. Se você já sabe como fazê-lo, então faça-o antes de instalar os pacotes. Caso não saiba, veja o meu tutorial sobre oSamba4 que possui as instruções de como fixar o endereço IP e os endereços de DNS.

Instalando os pacotes

Vamos precisar dos pacotes para ativar o serviço de proxy com filtro de conteúdo no servidor. Então vamos instalá-los.

# apt-get install squid3 squidguard

Configurando o Servidor Proxy

Nesta etapa, vou mostrar uma configuração básica com ativação do cache de páginas e filtro de conteúdo.

Primeiro, vamos renomear o arquivo de configuração do Squid e vamos criar outro do zero.

# mv /etc/squid3/squid.conf /etc/squid3/squid.conf.original

Agora vamos criar um arquivo de acordo com a base abaixo.

# vim /etc/squid3/squid.conf

###Configuração básica do squid

http_port 3128

visible_hostname fcfsl #Nome do servidor

redirect_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf

redirect_children 10

###Configuração do Cache

#Tamanho total do cache na RAM

cache_mem 64 MB 

#Tamanho do maior arquivo em cache na memória

maximum_object_size_in_memory 64 KB 

#Tamanho do maior e do menor arquivo em cache no HD

maximum_object_size 128 MB

minimum_object_size 0 KB

#Quando o cache atinge o limite, estas duas opções excluem os arquivos mais antigos. 

#Evitando que o serviço pare.

cache_swap_low 90

cache_swap_high 95

#Tamanho total do cache em disco. No meu caso, 1 GB

cache_dir aufs /var/spool/squid3 1024 16 256 

cache_access_log /var/log/squid3/access.log

refresh_pattern ^ftp: 15 20% 2280

refresh_pattern ^gopher: 15 0% 2280

refresh_pattern . 15 20% 2280

#Configuração das regras de acesso

acl all src 0.0.0.0/0.0.0.0

acl localhost src 127.0.0.1/255.255.255.255

acl SSL_ports port 443 563

acl Safe_ports port 80 #http

acl Safe_ports port 21 #ftp

acl Safe_ports port 443 563 #https, snews

acl Safe_ports port 70 #gopher

acl Safe_ports port 210 #wais

acl Safe_ports port 280 #http-mgmt

acl Safe_ports port 488 #gss-http

acl Safe_ports port 591 #filemaker

acl Safe_ports port 777 #multiling http

acl Safe_ports port 901 #swat

acl Safe_ports port 1025-65535 # portas altas

acl purge method PURGE

acl CONNECT method CONNECT

acl redelocal src 192.168.1.0/24

#Validação das regras

http_access allow manager localhost

http_access deny manager

http_access allow purge localhost

http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access allow redelocal

http_access deny all

Ativando o Filtro de Conteúdo

Conforme a configuração acima, o tráfego de rede passa antes pelo SquidGuard. Mas para que ele funcione, é necessário incluir uma blacklist (lista negra). Mas antes disso, vamos desativar o serviço do Squid antes de começar a configurar o SquidGuard.

# service squid3 stop

A Blacklist funciona como uma base dados contendo vários sites que são classificados em categorias. E é baseado nestas categorias que o filtro trabalha. Pode-se filtrar uma grande variedade de conteúdos.

Exemplos: Jogos, redes sociais, pornografia, audio e vídeo, proxys anônimos, sites contendo conteúdos sobre violência e drogas.

Quanto maior a base da blacklist, maior é a quantidade de sites contidas nele. O Squidguard sugere 4 opções de blacklist de acordo com o link → http://www.squidguard.org/blacklists.html

A melhor de todas é a URLBlacklist.com, mas optei pela Shalla's Blacklist. A URLBlacklist tem limite de downloads por IP, o que pode ser um problema caso haja queda no download. Como eu tive esse problema, resolvi trocar. Mas nada impede de você tentar usá-la, assim como as outras opções disponíveis.

Link para download da blacklist → http://www.shallalist.de/Downloads/shallalist.tar.gz

Após descompactar o arquivo, será criada uma pasta BL. Dentro dela haverá subpastas, cada uma delas representando uma categoria de sites. Estas subpastas devem ser copiadas para o diretório db do SquidGuard.

# cp -R BL/* /var/lib/squidguar/db

Aplique as permissões na pasta para que o Squid e o SquidGuard possam acessar o seu conteúdo.

# chown -R proxy.proxy /var/lib/squidguard/db/*

Configurando o filtro de conteúdos

Agora vamos personalizar o filtro de conteúdo. Mas antes, renomeie o arquivo de configuração do SquidGuard para criarmos um novo.

# mv /etc/squidguard/squidGuard.conf /etc/squidguard/squidGuard.conf.original

Montei um arquivo de exemplo.

# vim /etc/squidguard/squidGuard.conf

dbhome /var/lib/squidguard/db

logdir /var/log/squidguard

src redelocal {

ip 192.168.1.0/24

}

src redewifi {

ip 192.168.0.0/24

}

dest internet {

}

dest pornografia {

domainlist porn/domains

urllist porn/urls

log squidGuard_blocks.log

}

dest spyware {

domainlist spyware/domains

urllist spyware/urls

log squidGuard_blocks.log

}

dest warez {

domainlist warez/domains

urllist warez/urls

log squidGuard_blocks.log

}

dest anonvpn {

domainlist anonvpn/domains

urllist anonvpn/urls

log squidGuard_blocks.log

}

acl {

default {

pass !pornografia !spyware !warez !anonvpn internet

redirect http://www.google.com.br

}

}

Traduzindo a linha pass, quero dizer o acesso à internet pode ser feito mas que sites pornográficos, com spyware, warez e vpns anônimas sejam bloqueadas e o acesso seja redirecionado para o site do Google.

Após salvar o arquivo, vamos ativar a base de dados da blacklist. Com este comando abaixo, o squidguard lê a lista de domínos e urls cadastradas e gera os arquivos domains.db e urls.db de cada categoria que setamos no arquivo de configuração.

# squidGuard -d -b -P -C all

Em caso de erros, ele mostra a linha onde está o erro e desativa o SquidGuard e trava o terminal, precisando usar CTRL+C para sair. Verifique a saída do log de erro para efetuar as devidas correções.

Você pode cadastrar mais categorias, basta visualizar o conteúdo do diretório/var/lib/squidguard/db/

Concluindo com sucesso o comando anterior, basta ativar novamente o Squid e testar as funções ativadas.

# service squid3 start

Configure as opções de proxy do navegador com o endereço IP e a porta escolhida. No meu caso seria:

Endereço: 192.168.1.190

Porta: 3128

Informações adicionais

Submetendo sites ao serviço de Blacklist

Sabemos que por maior que seja uma blacklist, também devemos levar em conta que milhares de sites são criados diariamente, principalmente pornográficos. E com isso, a blacklist que escolhemos pode não ter na lista o site que queremos bloquear.

Mas existe uma maneira de ajudar o provedor da blacklist que é sugerindo o cadastro de sites em sua base de dados. Eu escolhi a Shalla's Blacklist como base para este laboratório, e no site da mesma há o recurso de submissão de sites pelo seguinte link:http://www.shallalist.de/submissions.html

Nesta página você pode sugerir a adição, remoção e realocação de sites para as categorias disponíveis. É possível até sugerir uma nova categoria. Mas é claro que o site se reserva ao direito de avaliar as propostas, aceitando-as ou não. Então, escreva o link do site corretamente, sem o http:// ou https://, selecionar a categoria a qual ele se encaixa e submetê-lo.

(Parte 1 de 2)

Comentários