SQUID autenticado - Bloqueando o acesso dos usuários por grupos

Esta matéria contempla o controle de acesso a INTERNET com a seguinte política: 3 grupos de acesso: grupo LIVRE - pode acessar qualquer site; grupo RESTRITO - pode acessar qualquer site com exceção dos que estiverem na lista dos bloqueados, grupo BLOQUEADO - que só pode acessar os sites que estiverem na lista dos liberados.

[ Hits: 133.231 ]

Por: Rogério Tonini em 01/11/2007


Configurando o SQUID



Nesta fase vamos configurar o arquivo /etc/squid/squid.conf.

Vamos voltar ao diretório /etc/squid:

# cd /etc/squid

Renomeie o arquivo original para qualquer outro nome:

# mv squid.conf squid.bkp

Crie um novo arquivo squid.conf:

# vim squid.conf

Copie o script abaixo (desculpem pelo excesso de comentários):

#
# Arquivo SQUID.CONF - Por ROGÉRIO TONINI - 14/05/07
#

http_port 3128
icp_port 3130
#
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
#
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
#
cache_mem 64 MB
#
cache_swap_low 85
cache_swap_high 90
#
maximum_object_size 128 MB
minimum_object_size 0
#
maximum_object_size_in_memory 64 KB
#
cache_dir ufs /var/cache/squid 2048 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
client_netmask 255.255.255.0
#
#**************************************#
# Este parâmetro libera o acesso dos usuários  #
# pelo proxy autenticado por htpasswd.            #
#**************************************#
#
#auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
#
#**************************************#
# Este parâmetro libera o acesso dos usuários  #
# pelo proxy autenticado por PAM.                   #
#**************************************#
#

#********************************************************#
# Este parâmetro demonstra a mensagem na janela de autenticação #
#********************************************************#
auth_param basic realm Servidor de Internet by R&R Info
#
auth_param basic children 5
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
#
refresh_pattern ^ftp:         1440 20%  10080
refresh_pattern ^gopher: 1440 0%   1440
refresh_pattern .        0    20%  4320
#
# --------------------------------------------------------------------
#  ACCESS CONTROLS
# --------------------------------------------------------------------
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
#
acl Safe_ports port 21        # ftp
acl Safe_ports port 70        # gopher
acl Safe_ports port 80        # http
acl Safe_ports port 210       # wais
acl Safe_ports port 280       # http-mgmt
acl Safe_ports port 443       # https
acl Safe_ports port 488       # gss-http
acl Safe_ports port 591       # filemaker
acl Safe_ports port 631       # cups
acl Safe_ports port 777       # multiling http
acl Safe_ports port 873       # rsync
acl Safe_ports port 901       # SWAT
acl Safe_ports port 1025-65535     # unregistered ports
#
acl SSL_ports port 443        # https
acl SSL_ports port 465        # YAHOO - SMTP (SSL)
acl SSL_ports port 563        # snews
acl SSL_ports port 873        # rsync
acl SSL_ports port 995        # YAHOO - POP3 (SSL)
#
acl purge method PURGE
acl CONNECT method CONNECT
#
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 deny to_localhost
#
# Criando as ACLs personalizadas
#
acl rede_interna src 192.168.0.0/24
#
#*******************************************************#
# Situação 1 - Ambiente com 3 grupos:                                         #
#                                                                                                #
# Grupo 1 - usr_total - os usuários tem acesso livre a Internet        #
# Grupo 2 - usr_liberado - os usuários acessam qualquer site que   #
#                          não estiver na lista url_bloqueado                     #
# Grupo 3 - usr_bloqueado - os usuários acessam somente os sites #
#                           que estiverem na lista url_liberado                   #
#*******************************************************#
#
acl usuarios proxy_auth REQUIRED
#
#*** Usuarios com acesso livre
#
acl acesso_livre proxy_auth "/etc/squid/listas/usr_livre"
#
http_access allow acesso_livre
#
#***  Usuários com acesso controlado pelos sites bloqueados
#
acl acesso_restrito proxy_auth "/etc/squid/listas/usr_restrito"
acl url_bloqueado url_regex -i "/etc/squid/listas/url_bloqueado"
#
http_access deny url_bloqueado
http_access allow acesso_restrito !url_bloqueado
#
#*** Usuarios com acesso somente aos sites liberados
#
acl acesso_bloqueado proxy_auth "/etc/squid/listas/usr_bloqueado"
acl url_liberado url_regex -i "/etc/squid/listas/url_liberado"
#
http_access allow url_liberado
http_access deny acesso_bloqueado !url_liberado
#
http_access allow usuarios acesso_livre
http_access allow usuarios acesso_restrito
http_access allow usuarios acesso_bloqueado
#
#*****************************************************#
# Situação 2 - Todos os usuários estão limitados a visitar             #
# somente os sites que não estão na relacro de sites bloqueados #
# e os que não possuem as palavras na relacro das bloqueadas.  #
#*****************************************************#
#   Para esta situação os parâmetros de autenticação deverão     #
# estar desabilitados.                                                                #
#*****************************************************#
#
# Lista de sites bloqueados
#acl url_bloqueado url_regex -i "/etc/squid/listas/url_bloqueado"
#http_access deny url_bloqueado
#
http_access deny !rede_interna
http_access allow rede_interna
http_access deny all
icp_access allow all
#
cache_mgr webmaster
visible_hostname <Nome do servidor>
#
error_directory /usr/share/squid/errors/Portuguese
coredump_dir /var/spool/squid

Salve o arquivo e vá para o bash.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criando as listas
   3. Configurando o SQUID
   4. Finalizando
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalação do Squid 3.2.0.14 no Slackware com execução em ambiente chroot

Compilando o Squid e criando o pacote para Slackware

Grace - Usando a função "Regression"

Squid 2.6 com autenticação e bloqueio de sites, downloads, Orkut, MSN, vídeos e googletalk

Mandriva 2006 - Configurando servidor proxy transparente completo

  
Comentários
[1] Comentário enviado por adrianoturbo em 01/11/2007 - 08:20h

Sensacional seu artigo brother,bem simples e direto,sintetizou um Squid fácil de ser montado por qualquer usuário iniciante que queira trilhar esse fabuloso caminho chamado software livre.Boa pedida pra quem quer aplicar uma politica de segurança estável por zona numa pequena empresa.
Show de bola a sua frase :"não tenha medo, afinal as grandes cabeças pensantes não conseguiram seus objetivos logo na primeira tentativa" é desta forma que a comunidade Linux trabalha sem medo dos desafios ,na certeza que o difícil pode ser superado,vida longa ao Linux.

Boa sorte!
Abraço!

[2] Comentário enviado por valterrezendeeng em 02/11/2007 - 15:55h

Muito bom e concordo com o colega acima. este fica nos favoritos.

Parabens!!!!!!!!!
Valeu

[3] Comentário enviado por Edgleyson em 06/11/2007 - 13:15h

Meus sinceros parabens para você.
É raro se ver na net, artigos feitos de uma forma bem simples, clara e com o principal, detalhando cada passo a ser executado.
Seria bom se a galera que manja muito de linux, olhasse por esse lado e resolvessem fazer artigos e tutoriais com explicações passo a passo para os novatos se situarem.

Muito show seu artigo. Parabéns novamente.

[4] Comentário enviado por fajo em 07/11/2007 - 10:19h

Sem dúvida o artigo está muito muito muito bom!!!
Mas gostaria de saber se a autenticação poderia ser feita através do samba e não na abertura do navegador?

Abraço!!

[5] Comentário enviado por arlindom.correa em 07/11/2007 - 18:23h

?comentario=

Bem simples e objetivo. Legal tb o incentivo a comunidade, Parabéns!

[6] Comentário enviado por removido em 09/11/2007 - 21:36h

Sem dúvida um dos melhores artigos sobre squid que já vi...

Parabéns...

[7] Comentário enviado por royalflush em 18/12/2007 - 15:53h

Meus parabens!
muito bom mesmo,
tive estou montando um firewall nesse momento e o seu artigo vai ser muito util, assim q o firewall estiver no ar eu falo...

[8] Comentário enviado por spartac0s em 29/01/2008 - 08:57h

cara tentei faer isso no fedora e deu erro na linha 106 "Invalid Proxy Auth ACL 'acl usuarios proxy_auth REQUIRED' because no authentication schemes are fully configured"

me mando a resposta pelo meu e-mail igorsm2007@hotmail.com
Gostei muito me ajuda ae blz
t++

[9] Comentário enviado por Klotz em 21/02/2008 - 11:08h

Muito bom esse seu tutorial, apenas iria acrescentar ainda isto:

Adicionando o usuário squid:

useradd squid
passwd squid


Criando a pasta squid dentro de /var/cache

mkdir /var/cache/squid


E dando permissão para o usuário squid na pasta /var/cache/squid

chown squid:squid /var/cache/squid


E alterando o nível de permissão da pasta

chmod 777 /var/cache/squid



E dentro do arquivo squid.conf descomentar esta linha:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd



Eh isto.

[10] Comentário enviado por ch2pra em 26/02/2008 - 16:21h

Muito bom esse tutorial nota dezzzzz!!!!!!!!!!

So tem um problema que eu não estou conseguindo resolver, esta muito lento para abrir a tela de login nas estações se alguem puder me ajudar mande um e-mail para cleber@powertrade.com.br

[11] Comentário enviado por danywelberthe em 18/03/2008 - 11:52h

cara bom tutorial me ajudou ,uito aq era oq eu estava procurando.
espero contar com a ajuda d vcs pois sou novo nesse mundo.
vlw.

[12] Comentário enviado por ricardoimlima em 26/08/2008 - 22:08h

Ola galera sou novato em linux instalei recentemente o ubuntu 8.04, estou adorando, porém, to querendo configurar o squid e nao consigo, estou com duvida quando chega na hora de configurar o squid.conf, por exemplo se eu quizesse configurar conforme seu tutorial, a duvida é como eu vou deixar o squid.conf, acrescento sua lista ou apago e deixo so a que vc criou.
estou usando este comando que peguei na net para configurar o squid, pois nao tava conseguindo com o VI
gksudo gedit /etc/squid/squid.conf
Por favor me ajudem.

[13] Comentário enviado por g0han em 13/10/2008 - 09:42h

rtonini, mesmo fazendo quase 1 ano já, seu tutorial foi de perfeita compreensão e solução para o que eu precisava!
Não poderia deixar de comentar e parabeniza-lo pelo artigo, que ja esta nos meus favoritos :D

valeu!

[14] Comentário enviado por jeff.jno em 07/02/2009 - 02:07h

Bem eu segui passo a passo esta configuração, mas estou com o seguinte problema.
Dentro do navegador quando configuro-o para autenticar simplesmente não acontece nada.

[15] Comentário enviado por jeff.jno em 07/02/2009 - 02:16h

eu preciso abrir a porta 3128 no iptables? redirecionar ela para a placa de rede interna ou rede exeterna?
Já até decorei esse conf... e sei que o problema não está no artigo, mas nao encontro o problema aqui na minha rede.
O compartilhamento de rede está ok. navego na internet no intanto sem nenhuma oposiçao do proxy quando coloco para autenticar nada acontece exceto que nao consigo navergar o endereco de da rede interna é 192.168.0.0 a placa do servidor proxy que esta ligada a interna é 192.168.0.254. A placa do servidor proxy que está ligada a internet é 10.1.1.2

[16] Comentário enviado por joseslei em 02/04/2009 - 23:16h

Otimo artigo, ainda essa semana testarei e colocarei o meu depoimento completo. Obigado...

[17] Comentário enviado por robsonsbrasil em 17/04/2009 - 17:17h

Amigo quando aplico ele bloqueia todo os ip da minha rede.

[18] Comentário enviado por vinicius_argolo em 17/06/2009 - 00:34h

Como eu faria para fazer grupos por controle de banda de downloads e uploads?
Ex:
Grupo 128, c/ 128 de dowload e 64 de upload
Grupo 256, c/ 256 de dowload e 128 de upload
Grupo 512, c/ 512 de dowload e 128 de upload

[19] Comentário enviado por pardalz em 05/10/2009 - 15:32h

vlw man! parabens

[20] Comentário enviado por diego17sg em 06/11/2012 - 13:30h

Ótimo artigo parabéns!

[21] Comentário enviado por regis.paixaojr em 26/12/2012 - 00:20h

Parabéns pelo artigo, achei o tutorial bem simples e fácil de entender. Me ajudou muito, pois estou iniciando conhecimentos em Squid.

[22] Comentário enviado por leo_suport em 19/09/2013 - 01:20h

Segui seu tutorial e tive sucesso, ele foi meu instrumento de consulta por algumas vezes, parabens por compartilhar,
e aproveitando o comentário, como criaria uma acl com sites que eu nao quisesse que passasse pelo proxy, se eu quiser por exemplo colocar site de bancos, e e-mail,
porque tenho tido problema, se puder me dar uma dica desde ja agradeço

[23] Comentário enviado por rtonini em 22/09/2013 - 12:20h

leo_suport fico feliz em saber q o meu tuto (apesar de velhinho) tenha ajudado, mas infelizmente não trabalho mais na área. Infelizmente não posso te ajudar.

Abraços.

[24] Comentário enviado por eijikumamoto em 19/08/2019 - 08:19h

Olá pessoal

O squid da empresa onde eu trabalho literalmente foi um ctrl+c, ctrl+v do squid deste tutorial. O antigo diretor só adicionou as URL dentro das regras e alguns usuários para autenticação. Daí quando eu tento criar uma regra para liberação de ips específicos na rede para uma aplicação de chamada de clientes e não consigo libera-los. Ah, ele não faz mais parte da empresa e não há documentação do que ele fez dentro das regras (nem comentários).
O que posso fazer para colocar esses ips específicos para passarem por fora do squid?

Obrigado a todos!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts