Proxy com Autenticação - Dúvida [RESOLVIDO]

1. Proxy com Autenticação - Dúvida [RESOLVIDO]

Francisco Wótila C. Cruz
Wotila_Carneiro

(usa Ubuntu)

Enviado em 02/03/2012 - 21:08h

Prezados, boa noite.
Configurei um squi com a autenticação com as seguintes características:
• Dois grupos de usuários;
• Usuários do grupo "liberados" acessam tudo;
• Usuários do grupo "limitados" não acessam os sites da lista de bloqueio;

O proxy está funcionando muito bem, o problema é que se eu entro com um usuário do grupo "limitado" e o mesmo tentar acessar uma pagina bloqueada, aparece a tele de autenticação, e o que eu queria era que ele caísse direto na página de bloqueio, informando que ele não tem permissão para acessar aquele site.

Agradeço a colaboração:


SQUID.CONF

## PARÂMETROS DE AUTENTICÃO
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 5
auth_param basic realm Digite seu Login e Senha de acesso
auth_param basic credentialsttl 2 minutes
auth_param basic casesensitive off

## CONFIGURAÇÕES BÁSICAS ##
http_port 3128
visible_hostname srvteste

cache_mem 32 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
error_directory /usr/share/squid/errors/Portuguese

## ACL's DEFAULT ##

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 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered
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 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl SSL_ports port 443 563

### INÍCIO DA CONFIGURAÇÃO DAS ACL's ###


## ACL PARA AUTENTICAÇÃO DE USUÁRIOS ##
acl autenticados proxy_auth REQUIRED

## ACL's PARA OS USUÁRIOS COM ACESSO LIVRE E RESTRITO ##
acl grupo_liberado proxy_auth "/etc/squid/usuarios_liberados"
acl grupo_limitado proxy_auth "/etc/squid/usuarios_limitados"


## ACL's PARA RESTRIÇÃO DE SITES E PALAVRAS ##
acl sites_bloqueados url_regex -i "/etc/squid/sites_bloqueados"
acl palavras_bloqueadas url_regex -i "/etc/squid/palavras_bloqueadas"


## ACL PARA OS SITES LIBERADOS ##
acl sites_liberados url_regex -i "/etc/squid/sites_liberados"


## 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 rede_local

http_access deny sites_bloqueados !grupo_liberado
http_access deny palavras_bloqueadas !grupo_liberado
http_access allow sites_liberados

http_access allow localhost
http_access allow autenticados grupo_liberado
http_access allow autenticados grupo_limitado !sites_bloqueados !palavras_bloqueadas


## BLOQUEIA TUDO QUE NÃO SE ENCAIXA NAS REGRAS ACIMA ##
http_access deny all



  


2. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 03/03/2012 - 11:33h

Vamos organizar o trecho, troque isto:

http_access deny sites_bloqueados !grupo_liberado
http_access deny palavras_bloqueadas !grupo_liberado
http_access allow sites_liberados

http_access allow localhost
http_access allow autenticados grupo_liberado
http_access allow autenticados grupo_limitado !sites_bloqueados !palavras_bloqueadas



Por isto:


http_access allow grupo_liberado
http_access deny grupo_limitado sites_bloqueados palavras_bloqueadas !sites_liberados
http_access allow autenticados
http_access allow localhost


3. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Francisco Wótila C. Cruz
Wotila_Carneiro

(usa Ubuntu)

Enviado em 03/03/2012 - 12:01h

phrich
Ok, farei essas alterações. Mais uma dúvida, eu percebie que antes eu tinha uma acl indicando minha rede local, tipo:

acl rede_local src 172.18.0.0/24
http_access allow rede_local

Mas com autenticação, eu tive que retirar essa acl.

Vou montar um servidor com duas redes distintas
REDE A: 172.18.0.0/24
REDE B: 10.1.0.0/16

A rede A será autenticada e com os bloqueios mostrados acima.
A rede B não será autenticada e com o acesso todo liberado.
É possível fazer isso?
Grato


4. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Francisco Wótila C. Cruz
Wotila_Carneiro

(usa Ubuntu)

Enviado em 03/03/2012 - 14:41h

Consegui incluir uma nova rede e liberá-la (sem autenticação e sem restrição), ela aproveita o cache do squid, mas não chega à autenticação e aos bloqueios.
Basta cria a primeira acl assim:
acl rede_b src 10.1.0.0/255.255.0.0
http_access allow rede_b

Assim toda rede B já é autorizada a acessar tudo antes de cair nas outras acl's.
.
Mas ainda continuo com 2 dúvidas:
• Por que eu não precisei criar uma acl para a rede A, tipo:
acl rede_a src 172.18.0.0/255.255.255.0
http_access allow rede_a
• phrich, eu fiz as alterações que vc me passou acima, e não estava nem pedindo
autenticação, liberava tudo para todos. Então voltei às configurações antigas e
esta tudo como eu queria, aliás, quase tudo. O que eu queria agora era:


Usuário João - acessa tudo liberado;
Usuário Pedro - acessa, mas possui limitações;
.
Sempre que o usuário Pedro se loga, ele acessa normal, mas se ele tenta acessar alguma coisa da lista de restrições aparece a caixa de logon, solicitando senha, que queria que se ele tentasse acessa um site proibido, aparecesse a tela de ACESSO NEGADO que eu carinhosamente criei, e não a tela pedindo senha.


Só falta isso, pessoal. Desde já agradeço.


5. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 03/03/2012 - 14:47h

poste aqui como ficou seu squid.conf para podermos ver ok?


6. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Francisco Wótila C. Cruz
Wotila_Carneiro

(usa Ubuntu)

Enviado em 03/03/2012 - 15:30h

Outra coisa chata. Se eu bloqueio o www.facebook.com, e um usuário restrito tenta acessa um site que tenha alguma referência ao facebook, ele não acessa de maneira alguma e vive pedindo a senha.
Eis o squid.conf:

## PARÂMETROS DE AUTENTICÃO
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 5
auth_param basic realm Digite seu Login e Senha de acesso
auth_param basic credentialsttl 2 minutes
auth_param basic casesensitive off

## CONFIGURAÇÕES BÁSICAS ##
http_port 3128
visible_hostname srvteste

cache_mem 32 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
error_directory /usr/share/squid/errors/Portuguese

## ACL's DEFAULT ##

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 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered
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 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl SSL_ports port 443 563

### INÍCIO DA CONFIGURAÇÃO DAS ACL's ###

## LIBERA TUDO PARA REDE 10.1.0.0/24 ##
acl rede_sec src 10.1.0.0/255.255.0.0
http_access allow rede_sec

### INÍCIO DA CONFIGURAÇÃO DAS ACL's ###
acl autenticados proxy_auth REQUIRED

## BLOQUEIO DE DOWNLOAD ##
acl extensoes urlpath_regex -i "/etc/squid/extensoes"

## ACL's PARA OS USUÁRIOS COM ACESSO LIVRE E RESTRITO ##
acl grupo_liberado proxy_auth "/etc/squid/usuarios_liberados"
acl grupo_limitado proxy_auth "/etc/squid/usuarios_limitados"


## ACL's PARA RESTRIÇÃO DE SITES E PALAVRAS ##
acl sites_bloqueados url_regex -i "/etc/squid/sites_bloqueados"
acl palavras_bloqueadas url_regex -i "/etc/squid/palavras_bloqueadas"


## ACL PARA OS SITES LIBERADOS ##
acl sites_liberados url_regex -i "/etc/squid/sites_liberados"


## 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 rede_local

http_access deny sites_bloqueados !grupo_liberado
http_access deny extensoes !grupo_liberado
http_access deny palavras_bloqueadas !grupo_liberado
http_access allow sites_liberados

http_access allow localhost
http_access allow autenticados grupo_liberado
http_access allow autenticados grupo_limitado !sites_bloqueados !palavras_bloqueadas

## BLOQUEIA TUDO QUE NÃO SE ENCAIXA NAS REGRAS ACIMA ##
http_access deny all



7. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Francisco Wótila C. Cruz
Wotila_Carneiro

(usa Ubuntu)

Enviado em 04/03/2012 - 11:56h

Ja tentei de tudo! Desde ontem que procuro e não encontro nada a respeito.
O squid está rodando perfeito. Mas a autenticação está dando trabalho.
1º - Queria mostrar a página de bloqueio antes de pedir a senha.
• Já coloquei as ACL's de bloqueio antes das ACL's de autenticação e não
resolveu.
2° - Se eu bloqueio a palavra "facebook" ou a url "facebook.com" e um usuário com
bloqueio acessar uma página qualquer que contenha um texto (ou um link) para
o facebook, fica pedindo a senha, como um loop infinito.
• Se não houvesse a autenticação, no lugar desses links, apareceriam a página
de bloqueio.

Resumindo: o que eu necessito é que a senha seja pedida uma vez, se o usuário é restrito e acessar uma página que contenha alguma referencias as palavras das ACL's bloqueadas, não peça uma senha (e usuário) com acesso total simplesmente mostre página de bloqueio no lugar desses links (ou banners).

Isso está consumindo meus neurônios, e o pouco conhecimento que tenho do Squid.


8. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 05/03/2012 - 07:06h

wotila escreveu:

Ja tentei de tudo! Desde ontem que procuro e não encontro nada a respeito.
O squid está rodando perfeito. Mas a autenticação está dando trabalho.
1º - Queria mostrar a página de bloqueio antes de pedir a senha.
• Já coloquei as ACL's de bloqueio antes das ACL's de autenticação e não
resolveu.
2° - Se eu bloqueio a palavra "facebook" ou a url "facebook.com" e um usuário com
bloqueio acessar uma página qualquer que contenha um texto (ou um link) para
o facebook, fica pedindo a senha, como um loop infinito.
• Se não houvesse a autenticação, no lugar desses links, apareceriam a página
de bloqueio.

Resumindo: o que eu necessito é que a senha seja pedida uma vez, se o usuário é restrito e acessar uma página que contenha alguma referencias as palavras das ACL's bloqueadas, não peça uma senha (e usuário) com acesso total simplesmente mostre página de bloqueio no lugar desses links (ou banners).

Isso está consumindo meus neurônios, e o pouco conhecimento que tenho do Squid.


1º - Queria mostrar a página de bloqueio antes de pedir a senha.
• Já coloquei as ACL's de bloqueio antes das ACL's de autenticação e não
resolveu.
R= Acredito qeu isso não seja possível pois conforme as regras o squid primeiro precisa da autenticação para saber se a pessoa pode ou não acessar determinado site


2° - Se eu bloqueio a palavra "facebook" ou a url "facebook.com" e um usuário com
bloqueio acessar uma página qualquer que contenha um texto (ou um link) para
o facebook, fica pedindo a senha, como um loop infinito.
• Se não houvesse a autenticação, no lugar desses links, apareceriam a página
de bloqueio.
R = quanto ao loop infinito mais tarde eu posso dar uma olhada no seu squid.conf para ver o motivo.


9. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Francisco Wótila C. Cruz
Wotila_Carneiro

(usa Ubuntu)

Enviado em 05/03/2012 - 08:31h

phrich escreveu:
1º - Queria mostrar a página de bloqueio antes de pedir a senha.
• Já coloquei as ACL's de bloqueio antes das ACL's de autenticação e não
resolveu.
R= Acredito qeu isso não seja possível pois conforme as regras o squid primeiro precisa da autenticação para saber se a pessoa pode ou não acessar determinado site.


Eu sei que a primeira autenticação é necessária, mas não dava para autenticar apenas 1 vez e se o usuário tentasse acessar uma página bloqueada aparecesse a tela de bloqueio direto, e não ficar pedindo um usuário com privilégio total?




10. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 05/03/2012 - 08:58h

wotila escreveu:

Outra coisa chata. Se eu bloqueio o www.facebook.com, e um usuário restrito tenta acessa um site que tenha alguma referência ao facebook, ele não acessa de maneira alguma e vive pedindo a senha.
Eis o squid.conf:

## PARÂMETROS DE AUTENTICÃO
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 5
auth_param basic realm Digite seu Login e Senha de acesso
auth_param basic credentialsttl 2 minutes
auth_param basic casesensitive off

## CONFIGURAÇÕES BÁSICAS ##
http_port 3128
visible_hostname srvteste

cache_mem 32 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
error_directory /usr/share/squid/errors/Portuguese

## ACL's DEFAULT ##

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 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered
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 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl SSL_ports port 443 563

### INÍCIO DA CONFIGURAÇÃO DAS ACL's ###

## LIBERA TUDO PARA REDE 10.1.0.0/24 ##
acl rede_sec src 10.1.0.0/255.255.0.0
http_access allow rede_sec

### INÍCIO DA CONFIGURAÇÃO DAS ACL's ###
acl autenticados proxy_auth REQUIRED

## BLOQUEIO DE DOWNLOAD ##
acl extensoes urlpath_regex -i "/etc/squid/extensoes"

## ACL's PARA OS USUÁRIOS COM ACESSO LIVRE E RESTRITO ##
acl grupo_liberado proxy_auth "/etc/squid/usuarios_liberados"
acl grupo_limitado proxy_auth "/etc/squid/usuarios_limitados"


## ACL's PARA RESTRIÇÃO DE SITES E PALAVRAS ##
acl sites_bloqueados url_regex -i "/etc/squid/sites_bloqueados"
acl palavras_bloqueadas url_regex -i "/etc/squid/palavras_bloqueadas"


## ACL PARA OS SITES LIBERADOS ##
acl sites_liberados url_regex -i "/etc/squid/sites_liberados"


## 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 rede_local

http_access deny sites_bloqueados !grupo_liberado
http_access deny extensoes !grupo_liberado
http_access deny palavras_bloqueadas !grupo_liberado
http_access allow sites_liberados

http_access allow localhost
http_access allow autenticados grupo_liberado
http_access allow autenticados grupo_limitado !sites_bloqueados !palavras_bloqueadas

## BLOQUEIA TUDO QUE NÃO SE ENCAIXA NAS REGRAS ACIMA ##
http_access deny all


comenta as linhas
#http_access deny sites_bloqueados !grupo_liberado
#http_access deny extensoes !grupo_liberado
#http_access deny palavras_bloqueadas !grupo_liberado

deixa apenas
http_access allow localhost
http_access allow autenticados grupo_liberado
http_access allow autenticados grupo_limitado !sites_bloqueados !palavras_bloqueadas

o bloqueio dos sites e palavras restritas esta sendo feito apenas para o grupo_limitado na última linha

reinicia o squid e mande o feedback!


11. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Daniel Marchi
DMS_

(usa elementary OS)

Enviado em 05/03/2012 - 09:06h

Talvez isso ajude, e um cfg que eu fiz, ela bloqueia tudo, e você vai ter que ir liberando os sites e também há niveís de usuários, cada nivel pode acessar apenas alguns sites, e os sites liberados para todos, espero que ajude.




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

### DEFINE NUMERO DE MAQUINAS QUE USUÁRIO PODE EFETUAR LOGIN AO MESMO TEMPO ###
acl controle_login max_user_ip 1
http_access deny controle_login


###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




12. Re: Proxy com Autenticação - Dúvida [RESOLVIDO]

Francisco Wótila C. Cruz
Wotila_Carneiro

(usa Ubuntu)

Enviado em 05/03/2012 - 11:12h

saitam escreveu:

comenta as linhas
#http_access deny sites_bloqueados !grupo_liberado
#http_access deny extensoes !grupo_liberado
#http_access deny palavras_bloqueadas !grupo_liberado

deixa apenas
http_access allow localhost
http_access allow autenticados grupo_liberado
http_access allow autenticados grupo_limitado !sites_bloqueados !palavras_bloqueadas

o bloqueio dos sites e palavras restritas esta sendo feito apenas para o grupo_limitado na última linha

reinicia o squid e mande o feedback!


Opa! Deu certo, mas fiz o teste no meu notebook, onde tenho esse cenário em máquinas virtuais, então farei o teste novamente ao chegar em casa, antes de dar o tópico como resolvido.
Uma dúvida,

http_access allow localhost
http_access allow autenticados grupo_liberado
http_access allow autenticados grupo_limitado !sites_bloqueados !palavras_bloqueadas

Na primeira, eu estou permitindo a acl localhost, certo?
Na segunda, eu permito que, após autenticado, o grupo liberado tenha acesso.
Na terceira, eu permito que, após autenticado, o grupo limitado tenha acesso, exceto ao que está na lista de sites bloqueados e palavras bloqueadas. Estou certo?

Agora, poderia me explicar o que eu estava fazendo errado, e o porque do loop infinito?
Muito obrigado a todos que colaboraram, sem exceções!




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts