Controle de acesso à internet com Squid

Apresento uma configuração para controle de acesso à internet com Squid, limitando o acesso por grupos. Essa configuração inclui também controle de acesso ao aplicativo MSN.

[ Hits: 109.460 ]

Por: Fabio Soares Schmidt em 13/10/2010


Configuração inicial e controle por IP



Após instalar o sistema operacional, vamos instalar o Squid:

(Execute esse procedimento em ambas as configurações, se for utilizar controle por IP ou usuário)

# yum install squid

Após o Squid ser instalado, o arquivo de configuração estará no diretório /etc/squid, entre nesse diretório e inicie a configuração do Squid:

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


Nesse primeiro exemplo vamos utilizar a configuração vamos utilizar o controle por endereço IP, crie o arquivo de configuração (squid.conf) desta forma:

acl manager proto cache_object
acl localhost src 127.0.0.1/32

# Porta para squid escutar
http_port 192.168.100.70:3128 #Substitua pelo endereço IP do seu servidor

#Configuracao de gerenciamento de cache
cache_mem 128 MB #altere conforme a capacidade da sua maquina
maximum_object_size 100 MB #Esta diretiva informa o tamanho maximo do objeto quer sera salvo em cache, ajuste conforme sua necessidade
maximum_object_size_in_memory 8 KB #Tamanho maximo do objeto em cache que pode ser armazenado na memória ram

#Locais para armazenamento do cache
#Ajuste conforme as suas necessidades
cache_dir aufs /var/spool/squid/cache1 3000 64 256
cache_dir aufs /var/spool/squid/cache2 3000 64 256
cache_dir aufs /var/spool/squid/cache3 3000 64 256

#Portas aceitas para navegacao
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
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 CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager

# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

#Cache windowsupdate
refresh_pattern windowsupdate.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern www.download.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern www.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100% 43200 reload-into-ims
refresh_pattern download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100% 43200 reload-into-ims
refresh_pattern www.download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100% 43200 reload-into-ims

#Cache atulizacao avira
refresh_pattern personal.avira-update.com/.*\.(cab|exe|dll|msi|gz) 10080 100% 43200 reload-into-ims

#Cache atualizacao symantec
refresh_pattern liveupdate.symantecliveupdate.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims
refresh_pattern symantecliveupdate.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims

#Cache avast
refresh_pattern avast.com/.*\.(vpu|cab|stamp|exe) 10080 100% 43200 reload-into-ims


#
# REGRAS PERSONALIZADAS
# CRIADO POR FABIO SOARES SCHMIDT - fabio@improve.inf.br
#

#Estacoes da rede local
acl redegeral src "/etc/squid/estacoes/redegeral.txt"

#Usuarios com acesso bloqueado
#Acessam somente o conteudo da regra sempreliberados
acl semacesso src "/etc/squid/estacoes/semacesso.txt"

#Usuarios com acesso controlado
#Acessam somente o conteudo da regra sempre liberados e a lista criada para este grupo
acl acessocontrolado src "/etc/squid/estacoes/acessocontrolado.txt"

#Usuarios com acesso total, EXCETO sites de conteudo indesejado
acl acessototal src "/etc/squid/estacoes/acessototal.txt"

#Sites liberados para TODOS
acl sempreliberados url_regex "/etc/squid/sites/sempreliberados.txt"

#Sites liberados para usuarios com acesso controlado
acl sitesliberados url_regex "/etc/squid/sites/sitesliberados.txt"

#Sites bloqueados para TODOS, com conteudo indesejado
acl bloqueados url_regex "/etc/squid/sites/bloqueados.txt"

##Controle do MSN
acl msnmessenger url_regex -i gateway/gateway.dll? login.live.com
acl MSN rep_mime_type -i ^application/x-msn-messenger$
acl webmsn url_regex "/etc/squid/sites/webmsn.txt" #Sites de acesso ao msn

#Estações sem acesso ao msn
acl semsn src "/etc/squid/estacoes/semmsn.txt"

#Aplicação das regras MSN
http_access deny semmsn MSN
http_access deny semmsn msnmessenger
http_access deny semmsn webmsn

##APLICAÇÃO DAS REGRAS

#Libera sites que serao sempre liberados para toda a rede
http_access allow redegeral sempreliberados

#Nega acesso ao sites de conteudo indeseajado
http_access deny bloqueados

#Nega usuarios sem acesso
http_access deny semacesso

#Libera sites para os usuarios de acesso controlado
http_access allow acessocontrolado sitesliberados

#Fecha o acesso para usuarios de acesso controlado
http_access deny acessocontrolado

#Libera acesso para usuarios com todos sites liberados, excetos sites de conteudo indesejado
http_access allow acessototal

#Nega qualquer acesso que nao se encaixar nas regra acima
http_access deny all

Página anterior     Próxima página

Páginas do artigo
   1. Nosso cenário
   2. Configuração inicial e controle por IP
   3. Controle de acessos por usuário
   4. Criando os arquivos para controle de acesso
   5. Finalizando
Outros artigos deste autor

Implementação de NIDS com EasyIDS

Instalação do Oracle 10g R2 no SUSE Linux Enterprise Server 11

SeamlessRDP - Executando aplicações Windows

Criando VPN site-to-site, conectando diversas filiais a matriz com openVPN

Leitura recomendada

Projeto Squid

Squid autenticando no Windows utilizando grupos do AD

Instalação do Squid com autenticação NTLM e Kerberos

Squid Plus 2007 para Debian 4

Proxy transparente com Squid, com controle de banda e bloqueio por horários

  
Comentários
[1] Comentário enviado por dolivervl em 13/10/2010 - 16:34h

Muito bom o artigo, gostei muito do cache de atualizações, nunca tinha pensado e visto isso. Show !!! Vou implementar assim que possível.

[2] Comentário enviado por removido em 25/10/2010 - 10:51h

Fantástico, parabéns cara, mandou bem

[3] Comentário enviado por fs.schmidt em 03/02/2011 - 02:48h

Olá ! Agradeço a todos que visitam esse meu artigo, fiquei surpreso com a quantidade de acessos !

Gostaria de compartilhar a seguinte experiência com vocês, adicionando os parametros abaixo aumentei de forma significante os HITS do meu cache, os dois ultimos aumentaram muito os acertos com o Windows Update e atualizações de definições de vírus !

Não entrarei em detalhes sobre os parametros aqui, mas logo posto um tutorial sobre melhorar a performance e acertos de cache no squid !


memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
range_offset_limit -1
quick_abort_min -1


Abraços !!

[4] Comentário enviado por sektor em 18/05/2011 - 18:18h

Fabio

muito bom mesmo seu artigo, inclusive uso em empresas o squid com o cenário bem parecido com esse seu.

eu apenas mudaria uma coisa, no lugar de url_regex onde esta a regra que o pessoal só acessa o que tiver na lista eu trocaria por dstdomain, pois ja tive problemas com o url_regex em caso da lista de liberação ficar muito grande, pois o url_regex trata as palavras e o dstdomain os dominios, e quando a lista de liberação fica muito grande (com muitas palavras) o usuario acaba conseguindo acessar um site que não esta na lista de liberação, por exemplo blogs...pode parecer meio confuso explicar assim mas tive alguns problemas com esse cenário, apenas mudei para dstdomain e tudo ficou beleza, mas de qualquer forma meus parabens pelo seu artigo, muito bem detalhado e explicado. um abraço.

[5] Comentário enviado por marcoscd em 02/08/2011 - 21:32h

gostei vou fazer um teste

mas gostaria de saber os detalhes da rede
tenho que utilizar 2 placas de redes neste caso ?
vai ser necessario utilizar o firewall iptables
minha interne e da empresa net 10 mb como ficaria

obrigado
Marcos de Campos Dornelas
marcoscd@gmail.com


[6] Comentário enviado por llevon em 27/04/2012 - 11:00h

Controle de Internet - Controle o acesso da internet em sua empresa, bloqueio de sites indesejados, bloqueio de Msn, Orkut e outros sites - Confira!
http://www.llevon.com.br/solucoes/solucoes-linux/controle-de-internet">http://www.llevon.com.br/solucoes/solucoes-linux/controle-de-internet
http://www.llevon.com.br

[7] Comentário enviado por WilsonP em 13/03/2013 - 17:45h

Para o controle de acesso a internet na minha empresa eu uso o Winconnection http://winconnection.winco.com.br/ . Possui UTM com filtros Web e Skype/MSN, firewall e servidor de e-mail e ainda possui uma versão free para 5 usuários.

Espero poder ter contribuido.

[8] Comentário enviado por luizalberto22 em 09/05/2017 - 18:12h

Eu sempre tenho duvida em qual programa usar, para isso eu acesso o site http://www.centraldecomprasonline.com ele me ajudou muito nesses problemas!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts