DMS_
(usa elementary OS)
Enviado em 31/01/2012 - 11:12h
Creio que isso irá ajudar,
Esse squid faz o que você procura, qualquer dúvida estamos ai:
Passei pela mesma situação que você!
http_port 3128
visible_hostname debian
error_directory /usr/share/squid/errors/Portuguese/
cache_mem 64 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
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 SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 488 59 777 901 1025-65535
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
#Bloqueia acessos de fora da rede local
#antes de passar pela autenticacao
acl redelocal src 192.168.1.0/24
http_access deny !redelocal
###ACL CONTENDO SITESOK - Liberados ####
acl sitesOK url_regex -i "/etc/squid/liberado/sitesOK"
### AUTENTICA COM USUARIO E SENHA ###
auth_param basic realm Use a Internet com responsabilidade
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid.passwd
acl autenticados proxy_auth REQUIRED
#### ACL CONTENDO USUARIOS por NIVEIS #####
acl usuarios1 proxy_auth "/etc/squid/grupos/usuarios1"
acl usuarios2 proxy_auth "/etc/squid/grupos/usuarios2"
acl usuarios3 proxy_auth "/etc/squid/grupos/usuarios3"
#### ACL CONTENDO SITES LIBERADOS POR NIVEL DE USUARIO ####
acl sitesUsuarios1 url_regex -i "/etc/squid/liberado/sitesUsuarios/sitesUsuario1"
acl sitesUsuarios2 url_regex -i "/etc/squid/liberado/sitesUsuarios/sitesUsuario2"
acl sitesUsuarios3 url_regex -i "/etc/squid/liberado/sitesUsuarios/sitesUsuario3"
#### LIBERANDO ACESSO A DETERMINADO SITES POR NIVEL DE USUARIO ####
http_access allow sitesUsuarios1 usuarios1
http_access allow sitesUsuarios2 usuarios2
http_access allow sitesUsuarios3 usuarios3
#### BLOQUEIA TODOS OS SITES, MENOS OS QUE FAZEM PARTE DOS sitesUsuarios e sitesOK ####
http_access deny !sitesOK
http_access allow autenticados
####Libera o acesso da rede local e localhost para os autenticados ####
http_access allow localhost
http_access allow redelocal
http_access deny all
E este script já cria o usuário e o joga no level use assim:
./addproxyuser usuario senha level
#!/bin/sh
if ! echo "$3" | grep -q "^[0-4]\{1\}$"; then
echo "Informe um nivel de acesso entre 0 e 4 somente!"
exit 1
if [$3 -lt 0] || [$3 -gt 4]
then
echo "O parâmetro level só pode ser de 0 a 3"
exit
fi
echo "Criando usuário ..."
/usr/bin/htpasswd -b /etc/squid/squid.passwd $1 $2
echo "Colocando usuário no level ..."
echo "$1" >> /etc/squid/grupos/usuarios$3
squid -k reconfigure
exit
Da pra otimiza-lo e muito.
Abraço!