Esta dica é para mostrar como bloquear acesso a sites utilizando níveis de bloqueio, ex.:
- Nível 1 - usuário "Admin" tem acesso total;
- Nível 2 - usuário "Rogerio" e "Pedro" não tem permissão para acessar o www.vivaolinux.com.br;
- Nível 3 - usuário "Rogerio" não tem permissão para acessar o www.vivaolinux.com.br e www.google.com.br, mas o usuário "Pedro" pode acessar o www.google.com.br.
Partirei do princípio que a instalação e configuração da autenticação do
Squid estejam configurados, apenas colocarei as modificações feitas para funcionar o bloqueio por nível.
Para esta implementação foram usados:
- Distro. Debian 4.0
- Kernel v. 2.6.24-etchnhalf.1-486
- Squid 2.6.STABLE5
Bloqueando por níveis
Trecho do arquivo
squid.conf:
#Identificação da rede que tem acesso ao proxy
acl all src 0.0.0.0/0
#Regras para autenticação
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 5
auth_param basic realm [---Bem Vindo ao XXX Internet Proxy Server---]
acl autenticados proxy_auth REQUIRED
#REGRA 1 - Arquivo "patrao", logins cadastrados para navegar no proxy
acl patrao proxy_auth "/etc/squid/patrao"
#REGRA 2 - Arquivo "usuarios", logins cadastrados para navegar no proxy
acl usuarios proxy_auth "/etc/squid/usuarios"
#REGRA 3 - Arquivo "usuarios_futebol", logins dos usuarios que não podem acessar sites de futebol
acl usuarios_futebol proxy_auth "/etc/squid/usuarios_futebol"
#REGRA 4 - Lista de Sites bloqueados para os "Usuários"
acl bloqueado_usuarios url_regex -i "/etc/squid/bloqueado_usuarios"
#REGRA 5 - Lista de Sites bloqueados para os "Usuários_Futebol"
acl bloqueado_futebol url_regex -i "/etc/squid/bloqueado_futebol"
#REGRA 5 - - Bloqueia acesso aos sites cadastrados em "bloqueado_futebol" para o grupo de usuários cadastrados "usuarios_futebol"
http_access deny bloqueado_futebol usuarios_futebol
#REGRA 4 - Bloqueia acesso aos sites cadastrados em "bloqueado_usuarios" para o grupo de usuários cadastrados "usuarios"
http_access deny bloqueado_usuarios usuarios
#REGRA 3 - Liberado acesso para o grupo cadastrados "usuarios_futebol"
http_access allow usuarios_futebol
#REGRA 2 - Liberado acesso para o grupo cadastrado "usuarios"
http_access allow usuarios
#REGRA 1 - Liberado acesso para o grupo cadastrado "patrao"
http_access allow patrao
#Liberado acesso para os usuários autenticados
http_access allow autenticados
#Bloqueia o acesso para os usuários sem autenticação
http_access deny all
Obs1.: A ordem das regras é muito importante para funcionar adequadamente.
Arquivos com os logins
Tudo liberado para estes usuários:
# vim /etc/squid/patrao
jose
pedro
admin
maria
rogerio
jardel
Usuários que terão os sites bloqueados pelo arquivo "bloqueado_usuario":
# vim /etc/squid/usuarios
maria
rogerio
Usuários que terão os sites bloqueados pelo arquivo "bloqueado_usuario e bloqueado_futebol":
# vim /etc/squid/usuarios_futebol
jardel
rogerio
pedro
Obs.: O usuário "Rogério" esta sendo bloqueado em 2 níveis.
Arquivos com os sites
# vim /etc/squid/bloqueado_usuarios
google.com.br
youtube.com.br
playboy.com.br
# vim /etc/squid/bloqueado_futebol
esporte.com.br
bolanarede.com.br
O proxy é liberado via autenticação, permite o acesso para todos os usuários cadastrados e bloqueia o acesso em 2 níveis.
Demais usuários que tentarem acessar o proxy sem autenticação serão barrados.
1. Introdução
[1] Comentário enviado por
jaimejr1987 em 12/12/2008 - 14:47h:
Otimo Script, bom trabalho.
[2] Comentário enviado por
cvs em 12/12/2008 - 16:13h:
Só esse allow deny ultimo ai que fiquei intrigado, nunca vi isso funcionando... heheehhe
Melhor um deny all no final, não?
Valeu.
[3] Comentário enviado por
info24hs em 12/12/2008 - 16:23h:
hehehe... vamos arrumar...
[4] Comentário enviado por
lucas.suporte em 12/12/2008 - 16:51h:
Parabens pelo artigo ele é muito bom, curto e objetivo. Otimo para iniciantes.
Queria contribuir com esse otimo atigo com a seguinte dica:
para adicionar os usuarios no squid com senha.
para adicionar o usuario para autenticar seguindo o artigo faça:
adicionando o usuario lucas:
htpasswd -c /etc/squid/squid_passwd lucas
coloque a senha
adicionando o usuario convidado:
htpasswd -c /etc/squid/squid_passwd convidado
e pronto
Abraços a todos !!!
Lucas Rocha
Analista de Redes
[5] Comentário enviado por
info24hs em 12/12/2008 - 16:56h:
Opa! Vamos falar com a moderação e incluir sua dica no artigo.
Muito obrigado.
[6] Comentário enviado por
vagnersobrinho em 12/12/2008 - 19:24h:
Valeu Cara!!!
tava precisando disso mesmo
muito bom!
[8] Comentário enviado por
dylon em 14/12/2008 - 14:35h:
tenho que criar um servidor com squid pra amanha e já dou de cara com esse artigo!!
\o/
valeu cara!!
[9] Comentário enviado por
calaff2 em 14/12/2008 - 22:18h:
Muito bom amigo e com o complemento do Lucas ficou melhor ainda !! :) Viva o Linux
[10] Comentário enviado por
zoomdigital em 14/12/2008 - 23:39h:
Muito legal seu artigo cara parabéns!!
[11] Comentário enviado por
Primoo em 15/12/2008 - 08:15h:
funciona com Proxy Transparente?
[12] Comentário enviado por
info24hs em 15/12/2008 - 08:38h:
Não, vc até pode estar com o proxy transparente ativado, mas como existe a regra http_access deny all ele irá bloquear tudo que não tenha sido autenticado, com essa regra força os usuários não a mexerem nas configurações do navegador tentando burlar..
[13] Comentário enviado por
edipo.magrelo em 15/12/2008 - 09:12h:
Excelente artigo!!
[14] Comentário enviado por
Primoo em 15/12/2008 - 09:56h:
Excelente artigo!! Parabéns!
[15] Comentário enviado por
di_gennaro em 28/12/2008 - 19:59h:
Olá estou com uma dúvida existe algum procedimento para que dois usúario não se conectem com a mesma senha? tipo para que não haja emprestimos de senhas!
[16] Comentário enviado por
info24hs em 29/12/2008 - 08:46h:
Não conheço tal método...
[17] Comentário enviado por
vagnersobrinho em 06/02/2009 - 12:23h:
Mandou bem velho!
usei aqui onde trabalho e funcionou uma beleza!
[18] Comentário enviado por
comfaa em 27/04/2009 - 09:17h:
ficou bem legal,
mas estava precisando de uma dica que nao tenho
encontrado .... preciso adicionar um usuacio CONVIDADO
que seja controla por tempo .... mais ou menos assim ....
Eu determino quando tempo ele pode ficar acessando a net
tipo, de 13:00 as 14:00 horas .... quando chegar as 14:00
automaticamente o acesso dele na internet é bloqueado.
Desde já muito obrigado !!
[19] Comentário enviado por
info24hs em 27/04/2009 - 10:49h:
Cara é bem simples, cria outra acl com os nomes de quem quer que seja controlado por horário e restrinja com as regras abaixo... pesquisa no google que tem muita informação sobre..
acl manha time 08:00-12:00
acl tarde time 14:00-17:30
acl videos url_regex "/etc/squid/videos"
http_access deny tarde videos
http_access deny manha videos
Abraço..
[20] Comentário enviado por
martinez18 em 18/05/2009 - 09:16h:
Tenho uma duvida em relação ao controle de acesso:
Como faria para bloquear por IP ou Mac?
E tambem como seria mais ou menos para bloquear sites num determinado horario e libera-los apos o horaria, e se puderem ajudar como faço para saber qual usuario entrou no site, listando nome e site.
Desde já agradeço a atenção de todos.
Meu e-mail
martinez18@pop.com.br
Msn
kinho_martinez@hotmail.com
Abração
[21] Comentário enviado por
info24hs em 18/05/2009 - 10:20h:
Amigo,
Procure no google a página manual squid 2.7 e veja sobre "acl" a partir dai vai saber como bloquear por IP, sobre horário o post acima do seu mostra como fazer...
Abraço..
[22] Comentário enviado por
manoserpa em 20/07/2009 - 20:47h:
Parabéns!
[23] Comentário enviado por
ferabong em 14/12/2009 - 17:30h:
Nossa, gostei muito.
me esclareçam numa dúvida por favor.
estou trabalhando com um servidor proxy, e preciso adicionar mais um usuário nele, para autenticar o accesso as paginas e etc.
posso proceder desta forma que o lucas citou acima, ou devo realizar outra operação?
obrigado!
[24] Comentário enviado por
info24hs em 14/12/2009 - 20:25h:
Oi.. pode sim.. não esqueça de colocar os nomes dos usuários nas listas de bloqueio..
Boa sorte!
[25] Comentário enviado por
murillo50 em 15/01/2010 - 07:48h:
chegado pq ta dando esse erro o
FATAL: No port defined
Squid Cache (Version 2.7.STABLE3): Terminated abnormally.
CPU Usage: 0.004 seconds = 0.000 user + 0.004 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
[26] Comentário enviado por
bpinheiro em 07/02/2012 - 20:04h:
Boa Noite Cristiano.
Preciso montar um servidor linux aqui na empresa com squid e iptables.
Achei muito bacana seu artigo, acho que se encaixa bem no perfil que eu preciso, por usuário.
Deixa te fazer uma pergunta, não tenho experiência no linux, preciso instalar apenas squid e apache?