Squid + Usuario Autenticados

Iniciado por joaotime, 27 de Novembro de 2013, 09:45

tópico anterior - próximo tópico

joaotime

Ola Pessoal estou tendo um problema com meu squid é o seguinto tenho a seguinte squid.conf
http_port 3128

cache_dir aufs /var/spool/squid3 8196 16 256
cache_mem 2 MB
maximum_object_size 131070 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 MB
cache_mgr adm@timevideo.com.br
visible_hostname srvlinux
error_directory /usr/share/squid3/errors/pt-br

# Evita que sejam feitos coredumps.
coredump_dir /var/spool/squid3

# Numero de arquivos de log rotacionados a guardar.
logfile_rotate 120

# Tempo para agaurdar o fechamento de conexçoes durante encerramento do squid
shutdown_lifetime 1 second

# palavras que será tratadas diretamente por esse squid, ou seja, não serão repassadas para vizinhos
hierarchy_stoplist cgi-bin ?


refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

# Logs

#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %# Log de acesso
access_log /var/log/squid3/access.log

# Log de cache
cache_log  /var/log/squid3/cache.log
# pasta para arquivo de dump
coredump_dir /var/spool/squid3

# Servidores de DNS a serem utilizados - Se não for especificado, o valor de /etc/resol.conf será utilizado
#dns_nameservers 8.8.8.8

#Autenticação no Windows 2008
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd
auth_param basic realm Autentique-se para Acessar a INTERNET
auth_param basic children 10
auth_param basic credentialsttl 15 minutes
auth_param basic casesensitive off
# ACLs
# acls de origem
# rede loopback
acl all src
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl redelocal src 192.168.0.0/24

acl SSL_ports port 443          # Ports ssl
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl SSL_ports port 10000        # porta webmin
acl Safe_ports port 8027
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 403         # msn
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 Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl Safe_ports port 1863        # msn
acl Safe_ports port 5148        # msn
acl Safe_ports port 443         # Porta de seguranca
acl Safe_ports port 563         # porta de seguraca
acl Safe_ports port 8080        # porta usada pelo nota eletronica
acl purge method PURGE
acl CONNECT method CONNECT

# Liberado ip das maquinas
acl ipliberados src "/etc/squid3/ipliberado"

# Broqueados quase sempre
acl siteliberados dstdom_regex "/etc/squid3/siteliberados"
# Broqueia dowloadn de certos arquivos
acl download urlpath_regex "/etc/squid3/download"
# Filtros por palavas
acl palavras url_regex -i "/etc/squid3/palavras"
acl autenticados proxy_auth REQUIRED


acl nivel1 proxy_auth "/etc/squid3/nivel1"
# HTTPS do SQuid

http_access manager localhost
http_access deny manager
http_access allow purge manager
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny download
http_access allow siteliberados
http_access deny all

porem o que eu queria bloquear tudo e liberar somente alguns sites que esta na acl siteliberados porem também quero que a pessoa se autentique antes de ver se o site esta na lista de liberados, porem terão alguns usuário liberados para outros sites tipo de download
então teria as seguintes regras

sites liberados - para todos os usuários autenticado
site download - para alguns usuários somente (tipo acesso nivel1)
site liberado1 - somente para o nivel1
site liberado2 - somente para nível2

porem quando eu coloco minha acl de autenticados  antes de tudo ele libera todos os sites  já estou a uns 3 dias nesta briga se alguém puder ajudar - fico grato

Obrigado

zekkerj

vc está adicionano uma regra "http_access allow autenticados" antes das outras, certo? Isso vai fazer todos os autenticados serem liberados mesmo.

Se vc não tem nenhum acesso sem autenticação, pode tentar usar assim: "http_access deny !autenticados" antes das outras regras de http_access. Isso vai fazer com que quem não esteja autenticado seja bloqueado, em vez de liberar o acesso pra quem está autenticado.

Observe que as ações "allow" e "deny" são definitivas, ou seja, uma vez que ele passa por uma regra "http_access allow" ou "http_acccess deny", ele não executa nenhuma das regras depois disso.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

joaotime

então seria assim

http_access allow usuarioautentica siteliberados
http_access allow nivel1 sitelibera1
http_access deny all

seria isto ?


zekkerj

fica difícil dizer sem ver o contexto completo.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

joaotime

zekkerj - quais informações que eu posso ti passar para ti ajudar a analisar meu contexto

zekkerj

o contexto é a configuração completa, ou pelo menos trazendo todas as acls definidas e todas as regras de allow/deny, na mesma ordem em que estão aplicadas.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

joaotime

segue meu squid.conf

http_port 3128

cache_dir aufs /var/spool/squid3 8196 16 256
cache_mem 2 MB
maximum_object_size 131070 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 MB
cache_mgr adm@timevideo.com.br
visible_hostname srvlinux
error_directory /usr/share/squid3/errors/pt-br

# Evita que sejam feitos coredumps.
coredump_dir /var/spool/squid3

# Numero de arquivos de log rotacionados a guardar.
logfile_rotate 120

# Tempo para agaurdar o fechamento de conexçoes durante encerramento do squid
shutdown_lifetime 1 second

# palavras que será tratadas diretamente por esse squid, ou seja, não serão repassadas para vizinhos
hierarchy_stoplist cgi-bin ?

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %# Log de acesso
access_log /var/log/squid3/access.log

# Log de cache
cache_log  /var/log/squid3/cache.log

# pasta para arquivo de dump
coredump_dir /var/spool/squid3
########### AUTENTICAÇÃO ######################################################
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd
auth_param basic realm Autentique-se para Acessar a INTERNET
auth_param basic children 10
auth_param basic credentialsttl 15 minutes
auth_param basic casesensitive off

# ACLs
acl all src
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl redelocal src 192.168.0.0/24
acl SSL_ports port 443 # Ports ssl
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl SSL_ports port 10000 # porta webmin
acl Safe_ports port 8027
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 403 # msn
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 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl Safe_ports port 1863 # msn
acl Safe_ports port 5148 # msn
acl Safe_ports port 443 # Porta de seguranca
acl Safe_ports port 563 # porta de seguraca
acl Safe_ports port 8080 # porta usada pelo nota eletronica
acl purge method PURGE
acl CONNECT method CONNECT

# Liberado ip das maquinas
acl ipliberados src "/etc/squid3/ipliberado"

# Broqueados quase sempre
acl siteliberados dstdom_regex "/etc/squid3/siteliberados"

# Broqueia dowloadn de certos arquivos
acl download urlpath_regex "/etc/squid3/download"

# Filtros por palavas
acl palavras url_regex -i "/etc/squid3/palavras"

# PARA AUTENTICAR PROXY
acl autenticados proxy_auth REQUIRED


acl nivel1 proxy_auth "/etc/squid3/nivel1"
acl nivel2 proxy_auth "/etc/squid3/nivel2"
# HTTPS do SQuid

http_access allow manager localhost
http_access deny manager
http_access allow purge manager
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow ipliberados
http_access allow autenticados siteliberados
http_access deny download !nivel1
http_access deny all

zekkerj

Certo.

Da forma como está, as máquinas cujo IP esteja na lista "ipliberado" vão ter acesso livre, independente de autenticação ou site acessado.

As máquinas autenticadas vão poder acessar os sites liberados. na lista "siteliberados".

Quem não foi liberado até agora será bloqueado, pois não há nenhuma liberação após isso.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

joaotime

sim o que eu pretendo fazer
criar 3 grupos
1 Grupo usuários_liberado
2 grupo  usuários_limitados
3 grupo usuários_adm

o que fazer com as regras
o grupo 2 terá acesso somente ao site siteliberado , não poderá fazer dowload , não poderá acessar as palavras proibidas
o grupo 1 terá acesso ao site liberado e palavra proibidas
o grupo 3 terá acesso total

como ficaria minha  http_

zekkerj

Eu acredito que vc poderia fazer isso com ACLs diferentes de autenticação.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

joaotime


joaotime

ola pessoal acabei voltando ainda não consegui agora meu cenário mudou
meu novo squid.conf

http_port 3128

cache_dir aufs /var/spool/squid3 81920 16 256
cache_mem 512 MB
maximum_object_size 131070 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 MB
cache_mgr adm@timevideo.com.br
visible_hostname srvlinux
error_directory /usr/share/squid3/errors/pt-br
coredump_dir /var/spool/squid3
logfile_rotate 120
shutdown_lifetime 1 second
hierarchy_stoplist cgi-bin ?


#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
refresh_pattern pupdate-af.avg.com/.*\.(bin) 4320 100% 43200 reload-into-ims
refresh_pattern personal.avira-update.com/.*\.(cab|exe|dll|msi|gz) 10080 100% 43200 reload-into-ims
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
refresh_pattern avast.com/.*\.(vpu|cab|stamp|exe) 10080 100% 43200 reload-into-ims
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

#logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %# Log de acesso
access_log /var/log/squid3/access.log

# Log de cache
cache_log  /var/log/squid3/cache.log
########### AUTENTICA��O ######################################################
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd
auth_param basic realm Autentique-se para Acessar a INTERNET
auth_param basic children 10
auth_param basic credentialsttl 15 minutes
auth_param basic casesensitive off

#########################  ACLs ##################################################
acl all src
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl redelocal src 192.168.0.0/24
acl SSL_ports port 443 # Ports ssl
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl SSL_ports port 10000 # porta webmin
acl Safe_ports port 8027
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 403 # msn
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl Safe_ports port 1863 # msn
acl Safe_ports port 5148 # msn
acl Safe_ports port 443 # Porta de seguranca
acl Safe_ports port 563 # porta de seguraca
acl Safe_ports port 8080 # porta usada pelo nota eletronica
acl purge method PURGE
acl CONNECT method CONNECT

##ACLS
#criando ACLs para os usu�rios com acesso livre e restrito
acl autenticados proxy_auth REQUIRED
acl grupo_adm proxy_auth "/etc/squid3/usuarios_administrador"


acl ipliberados src "/etc/squid3/ipliberado"
acl sitesbloqueados url_regex -i "/etc/squid3/dominiosbloqueados"
acl palavrasproibidas url_regex -i "/etc/squid3/palavrasproibidas"
acl sitespermitidos url_regex -i "/etc/squid3/dominiospermitidos"
acl download urlpath_regex "/etc/squid3/download"
#controle de acesso
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 ipliberados
http_access allow localhost
http_access deny download
http_access deny palavrasproibidas
http_access deny sitesbloqueados
http_access allow autenticados
http_access deny all


o que eu preciso e não estou conseguindo
tenho uma lista de sitebloqueados quem é administrador pode entrar e outros usuários não
o mesmo para dowload
mais para ser sincero já fiz de tudo e não consigo
se um dos amigos puder me ajudar
fico grato


zekkerj

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

joaotime

minha questão é
quero liberar todos os sites para todo mundo
tenho uma lista de sites que não podem ser acessados

a Regra de download não esta funcionado não esta bloqueando esta deixando fazer download para todos os usuários
quero que so uns usuários que esta na regra
acl grupo_adm proxy_auth "/etc/squid3/usuarios_administrador"
possa fazer downlaod o resto dos usuários não podem
não sei se fui claro

zekkerj

o que pode estar acontecendo é que o squid não está identificando os downloads como tal, daí ele cai na autorização dos usuários autenticados. Como vc criou o arquivo "/etc/squid3/download"?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D