Dúvida sobre autenticação no squid

Iniciado por Paulinunes, 22 de Julho de 2011, 10:11

tópico anterior - próximo tópico

Paulinunes

Bom dia,

Como não consegui encontrar ninguém com a mesma dúvida, estou postando aqui...

Bem, estou tentando configurar o squid para autenticação em um servidor samba pdc.

O problema é que nao sei onde ponho as acl's de autenticação, se antes das regras de bloqueio ou depois, e mais, como eu integro com as acl's de horário?

Segue o meu squid.conf:

###################################################################################################

#Configuração básica
###################################################################################################
http_port ####
visible_hostname #######

cache_mem 512 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 3,8 GB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 5120 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

error_directory /usr/share/squid/errors/pt-br

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 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 Safe_ports port 110 587 #mail
acl Safe_ports port 1025-65535 # portas altas
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

#A partira daqui aparecem as minhas dúvidas
###################################################################################################
###################################################################################################


#Cada arquivo contém os IP's das máquinas
###################################################################################################
acl hora_consultorios_geral src "/etc/squid/horas/consultorios"
acl hora_consultorios_manha src "/etc/squid/horas/consultorios_manha"
acl hora_consultorios_tarde src "/etc/squid/horas/consultorios_tarde"
acl hora_contabilidade src "/etc/squid/horas/contabilidade"
acl hora_direcao src "/etc/squid/horas/direcao"
acl hora_laudos src "/etc/squid/horas/laudos"
acl hora_recepcao src "/etc/squid/horas/recepcao"
acl hora_rh src "/etc/squid/horas/rh"
acl hora_ti src "/etc/squid/horas/ti"
acl hora_uti src "/etc/squid/horas/uti"


#ACL's de configuração dos horários de acesso
###################################################################################################
#acl almoco time 12:00-14:00
acl consultorios time MTWHF 07:00-12:00 14:00-18:00
acl consultorios_manha time MTWHF 07:00-12:00
acl consultorios_tarde time MTWHF 14:00-18:00
acl contabilidade time 08:00-12:00 14:00-18:00
acl direcao time 08:00-12:00 14:00-18:00
#acl laudos time 08:00-12:00 14:00-18:00
acl recepcao time 08:00-12:00 14:00-18:00
#acl rh time 08:00-12:00 14:00-18:00
acl ti time 00:00-23:59
acl uti time 08:00-12:00 14:00-18:00


#Aqui está o problema, não sei se ponho as regras de autenticação aqui...
###################################################################################################
auth_param basic realm Squid
authenticate_ip_ttl 5 minutes
auth_param basic program /usr/lib/squid/smb_auth -W ###### -U ########
acl autenticados proxy_auth REQUIRED
http_access allow autenticados


#Liberação dos IP's das máquinas que não devem passar pelas acl's de bloqueio abaixo
###################################################################################################
http_access allow hora_consultorios_geral consultorios
#http_access deny !hora_consultorios_geral
http_access allow hora_consultorios_manha consultorios_manha
#http_access deny !hora_consultorios_manha
http_access allow hora_consultorios_tarde consultorios_tarde
#http_access deny !hora_consultorios_tarde
http_access allow hora_laudos consultorios
#http_access deny !hora_laudos
http_access allow hora_direcao direcao
#http_access deny !hora_direcao
http_access allow hora_ti ti
#http_access deny !hora_ti


#ACL's de bloqueio e liberação de sites
###################################################################################################
acl bloqueados url_regex -i "/etc/squid/sites/bloqueados"
http_access deny bloqueados

acl palavrasproibidas dstdom_regex "/etc/squid/palavrasproibidas"
http_access deny palavrasproibidas

acl permitidos url_regex -i "/etc/squid/sites/liberados"
http_access allow permitidos
http_access deny !permitidos


#Liberação dos IP's das máquinas que devem passar pelas acl's de bloqueio acima
###################################################################################################
http_access allow hora_contabilidade contabilidade
#http_access deny !hora_contabilidade
http_access allow hora_uti uti
#http_access deny !hora_uti
http_access allow hora_recepcao recepcao
#http_access deny !hora_recepcao


#Ou se ponho as regras de autenticação aqui!
###################################################################################################
auth_param basic realm Squid
authenticate_ip_ttl 5 minutes
auth_param basic program /usr/lib/squid/smb_auth -W ###### -U ########
acl autenticados proxy_auth REQUIRED
http_access allow autenticados


#Fim da dúvida
###################################################################################################
http_access deny all

acl redelocal src 10.1.1.0/24
http_access allow localhost
http_access allow redelocal

http_access deny all

###################################################################################################

O fato é que, se ponho as ACL's de autenticação antes dos bloqueios o squid pede a autenticação, mas libera tudo, tudo mesmo, sem passar pelas ACL's de bloqueio, nem pelas ACL's de horário.
Se ponho as ACL's de autenticação depois das regras de bloqueio e de horário ele não autentica, mas passa pelas regras de bloqueio e horas.

O que devo fazer, onde estou errando?

zekkerj

O squid funciona no esquema "short circuit", ou seja, sempre que as condições de uma regra de acesso são atendidas, a regra é executada, e o processamento das regras termina.

O ideal é que as ACLs sejam definidas antes das regras de acesso, mas me parece que isso não é necessário.

Como a primeira regra de acesso executada também é a última, a ordem dessas regras é essencial.

CitarO fato é que, se ponho as ACL's de autenticação antes dos bloqueios o squid pede a autenticação, mas libera tudo, tudo mesmo, sem passar pelas ACL's de bloqueio, nem pelas ACL's de horário.
Se ponho as ACL's de autenticação depois das regras de bloqueio e de horário ele não autentica, mas passa pelas regras de bloqueio e horas.

O que devo fazer, onde estou errando?
Exatamente como eu disse... a primeira regra executada é também a última. Nesse caso você precisa mudar um pouco a forma como pensa.

Você não quer "permitir o acesso a quem esteja autenticado" (http_access allow autenticados), você quer "impedir o acesso de quem não esteja autenticado" (http_access deny !autenticados). Essa regra vai aparecer antes do resto, assim aqueles que estiverem autenticados vão passar para as próximas regras.
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

Paulinunes

#2
zekkerj, minha dúvida não é essa...

Eu pus as acls antes e depois somente como um exemplo...

O que eu quero é que somente libere o acesso à internet aos usuários autenticados, mas que ainda tenha o bloqueio por hora e sites...
Da forma como está o squid libera o acesso aos usuários autenticados...

Entendeu minha dúvida?

Paulo Correa

Citação de: Paulinunes online 23 de Julho de 2011, 08:47
zekkerj, minha dúvida não é essa...

Eu pus as acls antes e depois somente como um exemplo...

O que eu quero é que somente libere o acesso à internet aos usuários autenticados, mas que ainda tenha o bloqueio por hora e sites...
Da forma como está o squid libera TOTALMENTE o acesso aos usuários autenticados...

Entendeu minha dúvida?
Regras do Fórum Ubuntu

Da forma de publicação das mensagens

8. Não são permitidas mensagens/títulos:

I - Que tenham como escopo assuntos como: a) esportes, b) religião e c) política.
II - Em caixa-alta (maiúsculas).
III - Com solicitações como "ajuda", "socorro", "help", etc.
IV - Publicidade, compra, venda, ou prestação de qualquer outro serviço.
V - Com o único objetivo de manipular a visibilidade do tópico.
VI - Má-educação, insultos, ataques pessoais, violência ou qualquer conteúdo considerado incendiário ou provocador.
VII - Contendo material que possa causar danos a usuários e terceiros
VIII - Qualquer tópico ou mensagem que promova actividades ilícitas, criminais, ou violações de propriedade intelectual.
IX - Que não estejam de acordo com a descrição dos assuntos da seção.
X - Que contenham imagem maior do que 40 Kb.
XI - Com SPAM ou correntes.
XII - Que possuam título que não esclareçam o contexto da mensagem.
XIII - Pornografia, nudez explícita ou qualquer outro material passível de ferir susceptibilidades pelo seu conteúdo.
XIV - Racismo, xenofobia ou qualquer outra ofensa à condição humana.
XV - Mensagens sem sentido ou de conteúdo manifestamente vazio.
XVI - Com conteúdo duplicado.

zekkerj

Citação de: Paulinunes online 23 de Julho de 2011, 08:47
zekkerj, minha dúvida não é essa...

Eu pus as acls antes e depois somente como um exemplo...

O que eu quero é que somente libere o acesso à internet aos usuários autenticados, mas que ainda tenha o bloqueio por hora e sites...
Da forma como está o squid libera TOTALMENTE o acesso aos usuários autenticados...

Entendeu minha dúvida?
Entendi, expliquei porque não funciona, e disse como você tem que fazer pra que não aconteça. O que faltou?
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

Paulinunes

Citação de: zekkerj online 23 de Julho de 2011, 11:08
Entendi, expliquei porque não funciona, e disse como você tem que fazer pra que não aconteça. O que faltou?

Realmente, fui eu q nao entendi sua explicação...

Mas voltando à discussão...

Fiz o que vc recomendou mas nao deu certo...

Por isso vou mudar a forma de bloqueio e liberação...

Como está o squid verifica o ip da máquina e através dele gerencia que tem acesso liberado e quem nao tem...
Assim, com ou sem autenticação, ele continua liberando e bloqueando...

O que eu queria é ele fizesse esse controle com os nomes de usuário, nao por ip...

Como eu faço?

zekkerj

Vc tem que ir colocando as regras de acesso, da mais específica, pra mais geral.

bloqueie quem não está autenticado
bloqueie quem está tentando acessar um site restrito e não é da diretoria
bloqueie quem está tentando acessar fora da hora permitida
libere quem chegou até aqui.
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

Paulinunes

Já consegui resolvar...

basta usar a acl auth_param para fazer com que o squid verifique os arquivos com os nomed de usuários cadastrados, e não os ips...

Mas valeu pela ajuda...