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