LINUX, TI E MUITO MAIS!
Cadastre-se agora e receba gratuitamente o ebook do Curso Linux Ubuntu, dicas imperdíveis para ter sucesso com Linux
Insira seu email no campo ao lado para receber AGORA o Ebook!

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.

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!

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

 

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.

Leia também ...   Entenda o que é e como instalar um servidor Samba no Linux

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 ...   4 Passos Simples para Criar um Servidor Web Poderoso com LINUX Utilizando NGINX e HHVM

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 ...   11 aplicações Linux que sua empresa precisa, tudo grátis

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 com tecnologia da informação, usando Linux a mais de 13 anos. Autor do Ebook Curso Linux Ubuntu.

  • Fabiocs

    Muito bom!
    Obrigado por compartilhar conhecimento!

    • pedrodelfino

      Valeu Fabio …

      Obrigado pelo comentário.

    • Reinaldo

      Boa tarde Pedro, parabéns pelo seus ensinamentos. Trabalho com Squid3, minha dificuldade é de bloquear paginas https, pois quando o usuário acessa o browser via HTTPS o squid3 não consegue barrar, tem alguma solução para isso. Já pesquisei em vários fóruns e não obtive resultado.

  • Ricardo K.

    Muito bom o tutorial!
    Mas ainda tenho uma dúvida sobre Delay Pools. Delay pools usam bits ou kbits como forma de definir quanto de banda vai ser utilizado em cada pool?

    • pedrodelfino

      Olá Ricardo

      É utilizado bits.

      Obrigado pelo comentário.

  • MárioCG

    Pedro !
    Valeu pela dica. vou testar.
    Desculpando a indiscrição quanto normalmente se cobra (em média) por esse tipo de serviço.
    Att

    • pedrodelfino

      Olá Mário.

      Em média R$ 90,00 a hora.

      Se o serviço estiver bem definido pode ser feito preço fechado.

  • Erick Barros Nascimento

    Caro Pedro,

    Estou configurando um servidor proxy aqui no trabalho para fazer justamente o que você com muita sabedoria explicou no post. Acessei os dados do dominio via ferramenta do pacote ldap-utils, até ai OK. Minha duvida é: com essa configuração a caixa de autenticação vai aparecer para o usuário? Não preciso colocar auth_param basic /usr/lib/squid3/squid_ldap_auth de deposi o realm, etc,etc?

    Sou novo em servidores, mas já vou a mais de 3 anos usando e estudando muito linux.

    []s e Sucesso

    • pedrodelfino

      Olá Erik Barros

      Com essa configuração será mostrado uma tela solicitando usuário e senha para o usuário.

      Até a próxima.

      • Erick Barros Nascimento

        Vlw Pedro. Obrigado!

        • pedrodelfino

          Blz Erick … Muito obrigado pelo comentário …

          Até …

  • Nativa

    Só tenho que agradecer sua boa vontade para com os outros.
    Só não aprende quem não quer.

    • pedrodelfino

      Obrigado pelo comentário Nativa …

      Se quiser conhecer meu novo projeto: http://www.profissionaislinux.com.br … tem muitas dicas lá também e um curso completo ….

  • Gabriel

    olá sou iniciante em linux e gostaria de saber e aprender a configurar restrições para usuários e adicionar e remover usuário do squid alguém pode me ajudar?

  • Muito Obrigado, resolveu o meu problema, grato

  • ivan

    Estou tendo problemas com htts ou seja os usuários estão burlando somente acrescentando “s” no link. No caso proxy transparente pode me ajudar neste caso.

  • Gostei de passa a passo. Uma pergunta, como posso fazer para bloquear tudo e librar por demanda?

    Nesse seu caso eu uso duas placas, uma para entrar a internet e outra pra sair?

    Obrigado!

  • bruno

    Parabéns muito bem configurado.

  • Carlos Alberto

    Boa noite
    estive dando uma lida no seu post de squid + squidguard e na linha abaixo voce deixa o seu proxy
    aberto
    http_port 8080
    Nao seria assim
    http_port 192.168.2.10:8080

  • Alair Neto

    Eu instalei a bastante tempo o squid na empresa, e a produtividade aumentou muito.
    Sem contar a segurança e evitando dor de cabeça com adwares e spywares.
    Muito bom!!!

  • Fabiano

    Com essa configuração consigo bloquear o https atraves do squid transparente no ubuntu 12.04 ?

  • Muito bom esse post !
    Estou tentando criar usando WhiteList, poderia me ajudar ?

    Att
    Herik

  • miguel

    boa tarde peço ajuda
    tou a tentar fazer o cache de video no squid3.1 n tou consiguindo alguem me ajuda

  • Pedro, qual é o objetico do Squid Guard sendo que o Squid em sí ja executa essas tarefas?

  • Alexandre Xavier

    Caro Pedro, parabéns pelo excelente tutorial. Tenho uma duvida que gostaria de dividir com você. Percebo que muitos usuários utilizam sites com https com o objetivo de driblar o filtro do proxy. O passo a passo que postastes consegue bloquear também estes acessos (por exemplo: https://facebook.com)? Obrigado pela atenção.

  • Felipe Lins

    Parabens pelo procedimento, gostaria de tirar uma duvida, no meu caso utilizo squid3 e criei uma regra para usuario liberados para tudo como facebook, youtube, etc.

    ## Acesso total
    acl acesso_livre proxy_auth “/etc/squid3/usuarios_liberados”
    http_access allow acesso_livre

    nesse caso depois das configurações do squid3 + squidguard, como posso fazer essas regras.

  • Para iniciantes em Linux como eu, o material é excelente.
    Gostei e espero mais material para poder aprender mais.

    Obrigado.

  • José Alailson

    Muito Bom! Ótimo trabalho…!

  • miguel

    obrigado pela guiao. MAS AINDA TOU COM UMA DIFICULDADE COMO POSSO FAZER CACHE DE VIDEO NO SQUID3

  • Adriano VS

    Muito bom,

    Obrigado por partilhar

  • Muito bom o seu trabalho. Há muitas dicas boas e interessantes. Parabéns!

  • Antonio Marcos

    Só tenho que agradecer muito bom

  • Huerberth

    Muito bom, sou formado em redes e estou começando a estudar programação php, mas sempre estudando redes.

  • Adriano Garcia

    Parabéns pelo excelente tutorial…

  • lucas

    gostei imenso a forma como explicas o modo de configuração do squid, pude aprender um pouco sobre o squidguard apesar de que pouco me importava…

  • Diego Canton de Brito

    Um dica extra, utilizar outro daemon que irá filtrar tudo usando clamav, além de permitir um bloqueio extra por conteúdo. Já utilizei no passado o HAVP, ele trabalha analisando o conteúdo e pontua do esse conteúdo, uma vez ultrapassado ele corta.

    Também convém utilizar o openDNS, por possuir uma grande base de sites atualizado e já classificados.

    Lembrando que isso irá aumentar o processamento, mas se quer realmente bloquear, a fusão de soluções é um bom caminho.

  • Gilberto

    Gostei, muito bom. Já uso o squid3 na empresas mas com acls, me aprofundar no squidgard.

  • Muito bom o teu post, ja passei este ebook para meus colegas.

  • Thiago

    Pedro parabéns pelo artigo, muito bom mesmo.
    Tenho uma dúvida e com certeza você pode me ajudar.
    Sou iniciante em redes e linux, gostaria de saber se é possível implantar um servidor proxy em linux para controlar os acessos dos usuários no windows, por exemplo desabilitam painel de controle, desabilitar registro do windows, desabilitar o prompt de comando e assim vai, ou seja limitar o usuário. Instalando um servidor proxy linux como o Debian por exemplo, eu consigo controlar a rede e os acessos dos usuários, mesmo que os computadores dos usuários utilizem o windows como sistema operacional. Obrigado

    Obrigado pela atenção.

  • Antonio Ferreira Filho

    Boa noite Pedro delfino estou estudando agora seu livro de linux quando estou fazendo esse comando. (vim /etc/squid3/squid .conf). mostra uma messagens para me o programa vim pode ser encontrado nos seguintes pacotes. como fasso.

  • Xakkal Xk

    Boa noite! Não estou conseguindo gerar o banco de dados com o comando descrito, o que pode estar ocorrendo? Obrigado.

  • Moises Silva

    Boa noite Pedro,
    Obrigado pelas informações, só fiquei com uma dúvida quando executo ,cd /var/lib/squidguard/db/; squidGuard -C all ; chown proxy:proxy -R /var/lib/squidguard/db/ ; squid3 -k reconfigure, simplesmente trava e não reconfigura o DB.

  • Tio nélio Do Rincão

    o pedrão
    suave na nave bruxão????

    é noix catchorro

    beijoo meu querido, adorei seu post

    Att,
    Tio Nélio do Rincão ( TI & DBA )

Aula Online: Aprenda a Dominar o Linux De Uma Vez Por Todas

x