Proxy com Squid3 + SquidGuard no Ubuntu – Controle a sua internet com Linux

Proxy com Squid3 + SquidGuard é uma ótima solução para controlar acesso a internet. Seja em uma grande rede com mais de 500 usuários ou uma pequena rede.

PROXY-COM-SQUID3-SQUIDGUARD

Na minha opinião, quem tem uma empresa onde o acesso a internet é liberado sem a utilização de proxy está sem duvida nenhuma perdendo dinheiro.

APRENDA A DOMINAR O LINUX

Aprenda a dominar o LINUX de uma vez por todos, pegue sua cópia

  • Ferramentas para instalar softwares adicionais
  • Shell do LINUX passo a passo, e muito mais...

Experiencia própria, quando o usuário tem a opção de acessar a internet ele vai acessar, não pense que ele terá consciência que o acesso a alguns sites pode danificar o seu computador com vírus ou coisas do tipo. Se o cara pode acessar, ele vai acessar!

 

Então a solução é sempre colocar um proxy para controlar esses acessos. Quando falamos de proxy rodando em Linux, estamos falando do Squid.

Abaixo está um passo a passo para instalar o squid3 + squidGuard no Ubuntu, lembrando que essa mesma configuração pode ser utilizada para o Debian.

Se você tiver alguma duvida nos comandos de instalação que iremos utilizar hoje, você pode baixar o Ebook Grátis do Curso Linux Ubuntu, nele eu demonstrei um bom conteúdo sobre como fazer gerenciamento de pacotes no Ubuntu.

Antes de iniciar eu gostaria de deixar registrado o seguinte:

Essa configuração de Proxy com Squid3 + SquidGuard é a configuração padrão que eu utilizo para gerênciar mais de 200 usuários, ou seja, essa configuração funciona muito bem para o meu caso de uso, e claro poderá funcionar para o seu também.

Existem muitas maneiras de configurar um Proxy Squid, esse passo a passo mostra apenas uma forma, mas que pode resolver o seu problema.

Maiores problemas do acesso a internet sem proxy

Lembra que eu falei no inicio do artigo: Empresa que não utiliza proxy para controlar a internet está perdendo dinheiro.

É isso mesmo, a maior reclamação das empresas onde eu já configurei um proxy é que seus funcionários não estão mais trabalhando pois só ficam na internet.

É isso mesmo o que acontece, infelizmente a grande maioria não sabe utilizar a internet da maneira correta, e isso só é resolvido com a instalação de um proxy rodando em Linux.

Leia também ...   Debian: Entenda a Importância da Distribuição Para o Mundo GNU/LINUX

Outro problema grande é o consumo da banda de internet, sem proxy em uma rede com 200 funcionários um link de 10 Mb seria facilmente consumido, com acesso ao youtube ou sites de rádio on-line por exemplo.

Acesso a sites maliciosos também é um grande problema, mas isso não preciso nem dar exemplos, todos nós sabemos.

Como será o nosso ambiente para configurar esse proxy em Linux?

Eu estou utilizando o Ubuntu 12.04, mas você pode utilizar o Debian também tranqüilamente.

O Squid é o nosso servidor proxy;

O squidGuard é o software que irá controlar nossas Blacklists, ou seja nele vamos dizer quais sites não podem ser acessados.

Se você tiver alguma duvida nos comandos de instalação que iremos utilizar hoje, você pode baixar o Ebook Grátis do Curso Linux Ubuntu.

1) Instalação do squid

apt-get install squid3

2) Instalação do squidGuard

apt-get install squidguard

3) Configuração do squid

vim /etc/squid3/squid.conf

3.1) Configuração de autenticação no LDAP

Adicione a linha abaixo para chamar o script:

auth_param basic program /usr/lib/squid3/ldap_auth.sh

3.1.2) Criar ao script para passar os parâmetros do servidor ldap

vim /usr/lib/squid3/ldap_auth.sh

—-inicio do conteudo do script—-
#!/bin/sh
exec /usr/lib/squid3/squid_ldap_auth -b “ou=People,dc=dominio,dc=com,dc=br” 10.1.1.1
—-fim do conteudo do script—-

chmod 755 /usr/lib/squid3/ldap_auth.sh

Estou usando LDAP para autenticar no squid, mas nada impede de utilizar o ncsa_auth, no arquivo de configuração do squid temos esse exemplo:

#       auth_param basic program /usr/lib/squid3/ncsa_auth /usr/etc/passwd

3.1.3) Configuração da regra no squid para fazer autenticação ( ACL )

vim /etc/squid3/squid.conf

Adiciona um nova linha depois de http_access allow localhost

# ------ inicio da configuração -------
acl USUARIOS proxy_auth REQUIRED
# ------ fim da configuração -------

3.2) Fazendo a liberação da uma rede para navegar pelo proxy

vim /etc/squid3/squid.conf

# ------ inicio da configuração -------
acl rede_1 src 192.168.1.0/24
http_access allow rede_1 USUARIOS
# ------ fim da configuração -------

3.3) Regra para bloquear sites, direto no squid

# ------ inicio da configuração -------
acl SITE_PROIBIDO dstdomain .facebook.com .facebook.com.br
# ------ fim da configuração -------

Nossa http_access deve chamar essa acl “SITE_PROIBIDO” com a opção de !

# ------ inicio da configuração -------
acl rede_12 src 192.168.12.0/24
http_access allow rede_12 USUARIOS !SITE_PROIBIDO
# ------ fim da configuração -------

3.4) Configuração do controle de banda de internet

#------------- INICIO DO CONTROLE DE BANDA ----------------------
 acl DOMINIO_LIVRE dstdomain .algum-site.com.br
# Significa que teremos dois controles de banda
 delay_pools 2
# PRIMEIRO CONTROLE DE BANDA - sem limite de banda para acesso normal
 delay_class 1 2
 delay_parameters 1 -1/-1 -1/-1
 delay_access 1 allow DOMINIO_LIVRE
# SEGUNDO CONTROLE DE BANDA - Limita a sua banda para +- 4MB
 delay_class 2 2
 delay_parameters 2 4000000/4000000 400000/400000
 delay_access 2 allow all
 #-------------------------------------------------------------

3.5) Trocando a porta e servidor DNS do squid

Eu gosto sempre de rodar o proxy na porta 8080, então editamos o arquivo:

vim /etc/squid3/squid.conf
# ------ inicio da configuração -------
http_port 8080
# ------ fim da configuração -------

Também gosto de usar o DNS do google, por isso adiciona a linha abaixo:

# ------ inicio da configuração -------
dns_nameservers 8.8.8.8 8.8.8.4
# ------ fim da configuração -------

Essas duas configurações são opicionais.

Leia também ...   7zip - Como instalar e usar no Linux e ter arquivos de 30-50% mais compactos que o formato zip

3.6) Ativar as novas configurações

squid3 -k reconfigure

Pronto, com isso o seu proxy já está configurado, mas o acesso a internet está liberado. Somente o controle de banda está ativo.

3.7) Restringir o tamanho do Download

Editar o arquivo /etc/squid3/squid.conf

Descomentar a linha abaixo, e ajustar para sua necessidade.

# ------ inicio da configuração -------
reply_body_max_size 5 MB
# ------ fim da configuração -------

4) Configurando o squidGuard

Bom agora é simples, temos apenas que dizer para o Squid3 que ele precisar repassar as solicitações para o squidGuard. Assim podemos fazer todos os filtros necessários para restringir sites.

Vamos utilizar um Blacklist para facilitar nosso trabalho.

4.1) Baixar / Instalar as Blacklists para o SquidGuard

Nesse site: http://urlblacklist.com/?sec=download
Obs: Link direto: http://urlblacklist.com/cgi-bin/commercialdownload.pl?type=download&file=bigblacklist

Veja mais BlackLists em http://www.squidguard.org/blacklists.html

Com o arquivo em mãos vamos fazer a configuração do SquidGuard.

 tar -xzvf bigblacklist.tar.gz
 cd blacklist
 mv * /var/lib/squidguard/db

Depois disso basta configurar o arquivo do /etc/squidguard/squidGuard.conf e indicar a blackList a ser utilizada

4.2) Configuração do arquivo do /etc/squidguard/squidGuard.conf

#--- INICO DO ARQUIVO
 dbhome /var/lib/squidguard/db
 logdir /var/log/squidguard
#
 # ACL RULES:
 #
 dest audio-video {
 domainlist audio-video/domains
 urllist audio-video/urls
 }
 # ... mais configurações aqui
 acl {
default {
 pass !ads !socialnetworking !mail !adult !antispyware !audio-video !chat !filehosting !filesharing !games !hacking !instantmessaging !malware !onlinegames !phishing !porn !proxy !radio !remote-control !sexuality !updatesites !virusinfected !news all
 redirect http://www.seu-site.com.br/proibido.html
 }
}
#--- FIM DO ARQUIVO

OBS.: Verifique se o arquivo de configuração do squidGuard está com a permissão correta, se não tiver teremos que executar o comando abaixo.

chown proxy:proxy -R /etc/squidguard/squidGuard.conf

4.3) Configurar o Squid para trabalhar com o SquidGuard

Precisamos editar o arquivo de configuração do squid /etc/squid3/squid.conf

Adicionar a linha abaixo:

url_rewrite_program /usr/bin/squidGuard –c /etc/squidguard/squidGuard.conf

4.3) Gerar o banco de dados do SquidGuard

Para refazer o banco de dados do squidGuard

Leia também ...   Vamos usar o Shell do Ubuntu Linux ?

cd /var/lib/squidguard/db/; squidGuard -C all ; chown proxy:proxy -R /var/lib/squidguard/db/ ; squid3 -k reconfigure

Obs.: Cada vez que for atualizado o BlackList, teremos que rodar o comando acima, para refazer o banco de dados do SquidGuard, trocar a permissão dos arquivos para o usuário do proxy e reiniciar o squid.

Essa parte é muito importante para o funcionamento do proxy, qualquer erro de permissão pode sim dar erro no SquidGuard.

4.4) Como fazer teste do seu proxy Squid3 + SquidGuard

Para testar sua configuração, analise o diretório /var/lib/squidguard/db/.

Veja que nesse diretório, temos vários sub diretório, exemplo:

Diretório:

audio-video

Dentro desse diretório temos geralmente dois arquivos:

domains
urls

Nesses arquivos estão os domínios e urls que o squidGuard irá bloquear, você pode editar esse arquivo normalmente, e depois mandar gerar o novo banco de dados com o comando abaixo:

cd /var/lib/squidguard/db/; squidGuard -C all ; chown proxy:proxy -R /var/lib/squidguard/db/ ; squid3 -k reconfigure

Para testar: Pegue um domínio qualquer que esteja sendo utilizado no arquivo /var/lib/squidguard/db/audio-video/domains e tente acessar.

Você deve ser redirecionado para o site que foi indicado no arquivo /etc/squidguard/squidGuard.conf, veja o parametro  “redirect http://www.seu-site.com.br/proibido.html”

Conclusão:

Solução perfeita para controlar acesso a internet não existe, essa é a minha opinião, mesmo com todos esses Blacklists alguém sempre vai acessar algum site que não é para uso do trabalho.

Eu também uso uma outra prática de configuração de proxy que é: Bloquear tudo, e libera conforme demanda, usando Whitelists, da muito mais trabalho com toda certeza, mas também é muito mais confiável, depende muito do perfil da empresa onde será implantado.

Então é isso, eu espero ter ajudado você a configurar o seu proxy.

Até a próxima

Pedro Delfino

Sobre pedrodelfino

Trabalha a mais de 14 anos com administração de sistemas LINUX, dedicado em ensinar novos profissionais a atuar com servidores. Saiba mais aqui. "Caso queira participar de uma aula online comigo utilize o formulário Acima"