Integrando autenticação do Squid ao Active Directory

Implementar autenticação do Squid integrando-o ao Active Directory da Microsoft. Nesse artigo foi usada a versão 3 do Squid juntamente com a versão 2008 do Windows. Minha intenção com essa documentação é reunir todas as experiências que eu coletei e dicas a mim enviadas e que me levaram ao sucesso na implementação dessa solução.

[ Hits: 344.697 ]

Por: Leandro Moreira em 20/01/2010


Ambiente



O ambiente usado nesse artigo consiste de um servidor com Windows 2008 e o Active Directory devidamente configurado, mais um servidor proxy Linux. Não vou abordar as configurações desse servidor, pois na internet existem muitas informações sobre essas configurações.

NOTA: Alguns trechos deste artigo foram transcritos de outros tutoriais publicados na internet. No final do documento você encontrará referência para todas as fontes de pesquisa.

Tipos de autenticação

Depois de várias pesquisas e de muita interação com a comunidade, pude verificar que basicamente existem dois tipos de autenticação baseadas no Active Directory, a primeira onde não é necessário configuração específica nenhuma, ao setar o endereço do proxy no navegador ele abre uma pop-up pedindo usuário e senha, bastando o usuário colocar login e senha do domínio para ele estar autenticado para acesso a internet.

Já a segunda é uma pouco mais trabalhosa, pois o Squid irá obter de forma automática usuário e senha, é um "login automático", sem a necessidade de preencher o pop-up com usuário e senha. Abordaremos nesse artigo as duas formas de autenticação.

Primeiramente vamos tratar da integração do Linux ao domínio do AD e da autenticação transparente sem pop-up do Squid, para tal precisaremos instalar em nosso servidor algumas ferramentas tais como Kerberos, Winbind e Samba. Vamos ao Kerberos.

Kerberos

Kerberos é um sistema de autenticação que permite usuários utilizarem serviços de rede se identificando e autenticando em tempo real, utilizando um sistema seguro e criptografado. Em um sistema convencional é requerido ao usuário uma identificação e que este usuário autentique esta identificação antes da utilização do sistema. Uma rede que conecta possíveis clientes a serviços por ela providos também precisa identificar e autenticar estes clientes, que podem ser usuários ou softwares.

O problema é que muitos serviços de rede aceitam sem questionar a autenticação provida pela máquina cliente, que está sobre total domínio do usuário. E um serviço seguro de rede não pode confiar na integridade da autenticação provida por uma máquina cliente.

Com o Kerberos, toda vez que um possível cliente for utilizar um serviço da rede, ele vai questionar sua identidade e a respectiva autenticação, permitindo ou não o uso do serviço pelo cliente. Além disso, Kerberos provê um meio criptografado de comunicação, mesmo em uma rede não segura, como a internet.

O sistema de autenticação Kerberos é baseado no protocolo de autenticação de três vias e foi desenvolvido pelos membros do projeto Athena no MIT (Massachusetts Institute of Technology).

O Kerberos provê aos usuários ou serviços "ticket" que são utilizados para a identificação e chaves criptografadas para comunicação pela rede.

O Kerberos é usualmente utilizado na camada de aplicação, provendo a segurança entre o usuário e o host. Mas também pode ser usado para prover segurança entre hosts, trabalhando com os protocolos IP, TCP e UDP.

Em uma rede com Kerberos é definido um host, denominado Servidor de Autenticação, que centraliza as funções administrativas do Kerberos e é onde também está o Centro de Distribuição de Chaves (KDC). Este servidor mantém uma base de dados com todas as senhas secretas dos usuários. Sendo que ele é o responsável por gerar os tickets quando dois usuários desejam se comunicar através de um meio seguro, identificando e autenticando estes usuários.

Vamos instalá-lo usando os pacotes disponíveis nos repositórios oficiais do Debian:

# apt-get install krb5-config krb5-user

Agora que ele encontra-se instalado, vamos configurá-lo. Faça uma cópia de segurança do arquivo krb5.conf, a configuração do Kerberos a seguir serve tanto para o Windows 2003 quanto para o Windows 2008, vamos fazer uma cópia de segurança do arquivo /etc/krb5.conf.

# cp -rpvf /etc/krb5.conf /root
# echo "" > /etc/krb5.conf


Agora vamos editar o arquivo colocando o seguinte conteúdo:

# vi /etc/krb5.conf

[libdefaults]
ticket_lifetime = 24000
default_realm = DOMINIO.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
DOMINIO.LOCAL = {
kdc = 172.16.10.254
admin_server = 172.16.10.254:749
default_domain = 172.16.10.254
}

[domain_realm]
.dominio.local = DOMINIO.LOCAL
dominio.local = DOMINIO.LOCAL

[login]
krb4_convert = true
krb4_get_tickets = false

[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.log

Observe que temos as entradas dominio.local e DOMINIO.LOCAL, que devem ser substituídas pelo domínio do seu Windows, inclusive se esse for um domínio real (dominio.com.br), deve ser respeitado o texto em caixa alta (DOMINIO.LOCAL).

Salve o arquivo e saia.

Uma coisa muito importante, temos que configurar nosso resolv.conf para o AD, já que ele terá instalado um servidor de DNS, isso é importante pois o DNS do AD ajudará a resolver os nomes facilitando assim a integração do Linux ao domínio da Microsoft.

# vi /etc/resolv.conf

nameserver 172.16.10.254 # onde o ip é o ip do servidor 2008

Em seguida vamos ao arquivo /etc/hosts da máquina, para nele inserirmos o ip do servidor do AD:

# vi /etc/hosts

172.16.10.253 proxyvm.dominio.local proxyvm # servidor proxy
172.16.10.254 adsrv.dominio.local adsrv # servidor AD
172.16.10.254 dominio.local dominio # servidor AD

Quando usamos essa solução integrada ao Windows 2003, temos a necessidade de ativar o serviço WINS (Windows Information Service), que nada mais é que um serviço de DNS da Microsoft.

Em nosso servidor Windows (2003/2008) devemos criar no DNS uma entrada para o nosso servidor de impressão, no exemplo estou usando:

Hostname proxy.dominio.local
Ip: 172.16.10.26

Agora vamos testar, para tal usaremos o comando kinit, conforme abaixo:

# kinit Administrador@DOMINIO.LOCAL

Se ele não der erro nenhum está tudo certo. Para listarmos o domínio:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrador@DOMINIO.LOCAL
Valid starting Expires Service principal
12/18/09 16:26:03 12/18/09 23:06:03 krbtgt/DOMINIO.LOCAL@DOMINIO.LOCAL
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cache

Nesse ponto, caso não obtenha a saída acima, podemos incorrer em duas situações, são elas:

# kinit administrator@DOMINIO.COM.BR
Password for administrator@DOMINIO.COM.BR:
kinit(v5): Clock skew too great while getting initial credentials

O relógio não está sincronizado com o controlador de domínio. Para evitarmos esse problema, podemos sincronizar data/hora do nosso servidor com o comando:

# ntpdate ntp.usp.br

E a outra situação:

# kinit administrator@dominio.com.br
Password for administrator@dominio.com.br:
kinit(v5): KDC reply did not match expectations while getting initial credentials

O domínio foi digitado com letras minúsculas. Para corrigir esse erro é só tocar as letras minúsculas do dominio.com.br por maiúsculas, DOMINIO.COM.BR. Lembrando sempre que DOMINIO.LOCAL ou DOMINIO.COM.BR deve ser substituído por seu domínio, seja ele real, ou local. Em seguida vamos passar ao winbind.

    Próxima página

Páginas do artigo
   1. Ambiente
   2. Instalando e configurando Winbind
   3. Instalando e configurando o Samba
   4. Instalando e configurando o Squid
   5. Autenticando Squid no Active Directory
Outros artigos deste autor

Compilando kernel com suporte a POM (path-omatic) e Layer7 no Debian e Slackware

Instalação e configuração do Squid com TProxy no Debian

Recuperando RouterOS na RouterBOARD 450

Integrando Apache 2 com Tomcat 5

Instalando e configurando o Nagios com e sem MySQL

Leitura recomendada

Compilando o Squid3

Servidor proxy com Squid - Instalação e configuração

FLogSQD - Filtro de log do proxy Squid

Criando delay pools (Proxy/Squid)

Manual traduzido do Squid - Parte 2

  
Comentários
[1] Comentário enviado por calaff2 em 20/01/2010 - 09:40h

Muito bom o artigo , só faltou você criar as acl com determinado grupo do ad. ex: Grupo acesso total, Grupo acesso restrito e criar essas acl para esses grupos.


[2] Comentário enviado por mcfmlt em 20/01/2010 - 10:11h

Parabéns pelo artigo..

Hoje em dia é importante, abordar o tema interoperabilidade pois é praticamente impossivel não trabalhar em redes mistas, Windows e Linux.

Valeu pelo artigo..

[3] Comentário enviado por silent-man em 20/01/2010 - 12:26h

Parabéns!!! Ótimo artigo. Prático, rápido e funcional.

Aqui tem uma ferramenta(em desenvolvimento) para que deseja "gerênciar" os arquivos do squid(acls).

http://www.grupoponte.com.br/~gleison/pegasus


Abcs!

[4] Comentário enviado por paulotrad em 21/01/2010 - 15:04h

eai blz..
aki deu o seguinte erro:

root@srvr:/etc/samba# wbinfo -t
checking the trust secret via RPC calls failed
Could not check secret

o que pode ser isso ???

como resolver

valew

no aguardo.

[5] Comentário enviado por silent-man em 21/01/2010 - 16:51h

Paullo

coloque em seu arquivo /etc/hosts o nome e ip do seu servidor AD

ex:
10.10.10.1 ad.dominio.com.br ad

feito isso tente adicionar seu servidor ao dominio.

net ads join -U administrador -S DOMINIO.COM.BR

será solicitada a senha do administrador do dominio

deve aparecer algo assim

Using short domain name -- DOMINIO
Joined 'PROXYSERVER' to realm 'dominio.local'

espero te ajudado.

[6] Comentário enviado por paulotrad em 21/01/2010 - 20:18h

blz.. agora deu certo.. valew..

ja adicionei com sucesso o proxyvm no dominio do windows server 2008,

porém agora quando digito o comando # wbinfo -t

e dai pra frente nao consigo nada..

ai preferi nao mexer ainda no squid, deixa primeiro resolver esse problema...

aqui diz que ele nao consegue checar essas informações...

dpois vou postar o erro detalhado é pq estou em ksa no momento


dá erro

o que pode ser ?


[7] Comentário enviado por silent-man em 22/01/2010 - 09:44h

Paullo

Tentou restartar os serviços?
winbind + samba

[8] Comentário enviado por giaco em 22/01/2010 - 09:47h

Para o pessoal que está enfrentando problemas:
No tutorial, no arquivo smb.conf, realm = dominio.local. Deve ser em maiúsculo, realm = DOMINIO.LOCAl

Mesmo assim estou enfrentando problemas. Até o Windows Vista funciona legal, mas no Windows 7, com IE8, falha a autenticação. Penso eu que é porque existe algo de errado com minhas configurações que não permitem o uso do NTLMv2. Tanto que o Firefox no Windows 7 funciona. Se alguém conseguiu autenticar no Windows 7, por favor, poste a solução.

[9] Comentário enviado por paulotrad em 22/01/2010 - 10:25h


silent-man,

este é o erro que está aparecendo quando digito este comando:

root@srvr:~# wbinfo -t
checking the trust secret via RPC calls failed
Could not check secret
root@srvr:~#
root@srvr:~# wbinfo -u
Error looking up domain users
root@srvr:~# wbinfo -g
Error looking up domain groups
root@srvr:~# net ads info
LDAP server: 192.168.1.253
LDAP server name: SRVDR.MEUDOMINIO.LOCAL
Realm: MEUDOMINIO.LOCAL
Bind Path: dc=MEUDOMINIO,dc=LOCAL
LDAP port: 389
Server time: Fri, 22 Jan 2010 10:22:21 BRST
KDC server: 192.168.1.253
Server time offset: 43
root@srvr:~#

será q eu tenho q mudar a porta em que o kerberos se comunica ?
no krb5.conf notei que tem esta linha 192.168.1.253:479 , isto é uma porta neh

acho q falta muito pouco pra eu conseguir q tudo funcione,,,,

minha intencao é q no relatorio do sarg apareça o nome do usuario que usa a internet.

abraços..

[10] Comentário enviado por paulotrad em 22/01/2010 - 10:28h

consegui !!!!

era isso mesmo...

aquilo era a porta do LDAP

que aqui é 389 e não 749 do exemplo do artigo.

flws..

vou continuar agora com o procedimento...

.. qlqr problema eu volto aki

[11] Comentário enviado por giaco em 22/01/2010 - 11:47h

Pra mim, com Windows Serer 2008 é a porta 749 mesmo...
Mas ainda tenho problemas: no IE8 + Win7 fica pedindo senha.

[12] Comentário enviado por leandromoreirati em 22/01/2010 - 11:51h

Pessoal,
Desculpe-me a falta de reposta, minha esposa ganhou nenem e estava artibulado com os afazeres de pai de primeira viagem, como o Paulo observou, faltou depois da configuração do samba uma:

/etc/init.d/samba restart
/etc/init.d/winbind restart

Tem que ser nessa ordem, foi um erro de ctrl+c ctrl+v

Giago, essa configuraçao de autetnicação funciona apensa no IE quanto o W7 ele usa ntmlv2 e somente v2 por isso o erro, a versão 3.5. do samba ja deve vir com esse suporte.

Quanto al realm testei maiuscula e minuscula e funcioou do mesmo jeito, so pra voce ter uma ideia esse smb.conf, esta em procução em um de meus servidores que estao integrados ao AD, antes de postar o artigo, fiz varios testes pra verificar que estav tudo Ok, depois coloquei em produção e so aee que postei o artigo.

[13] Comentário enviado por leandromoreirati em 22/01/2010 - 11:56h

Giaco,
foi como expliquei anteriormente, essa solução funciona mto bem nno XP e vista, já no W7 que usa apenas ntlmv2 nao esta homologada, a equipe do sambe, vai liberar um nova versão do samba acredito que ate o fim de março, com a correção desse problema, pois a versão samba que esta em produção no debian so porta apenas ntlmv1, sendo incompativem com o w7

[14] Comentário enviado por giaco em 22/01/2010 - 15:55h

Leandro, parabéns pelo artigo e obrigado pelas respostas.

Falei da maiúscula porque testei minúsculo e não foi, mas tudo bem, talvez eu tenha alterado outra coisa.

Quanto ao suporte para o Win7, você tem algum link onde eu possa verificar quando sair a versão? Será que baixando e compilando pode funcionar?

Baixei a segurança no Win7 para não usar NTLMv2 e então consigo acessar a internet normalmente. Mas não recomendo que isso seja feito em produção. Melhor aguardar o suporte do Samba.

[15] Comentário enviado por paulotrad em 22/01/2010 - 16:39h

blz..
aki deu 100% certo..

a autenticação do squid 2.7 no windows server 2008... funfou blz

só nao consegui funfar a segunda opção, pois aki no meu ubuntu nao tem aquele arquivo squid_ldap_auth

entao usei a primeira opção

ficou blz

nota 10!!!

[16] Comentário enviado por leandromoreirati em 29/01/2010 - 10:39h

Pessoal,
Aqui segue o link para a noticia que eu encontrei sobre a ataulização do samba:

http://centosbr.org/noticias/161

[17] Comentário enviado por giaco em 03/02/2010 - 13:31h

Uma dúvida: eu tenho alguns usuários que não possuem conta no AD, são de 'fora' da rede, mas precisam acessar o proxy, também com senha. Como fazer isso?

[18] Comentário enviado por leandromoreirati em 03/02/2010 - 14:35h

Giaco,
Vou te dizer o que eu faria nao sei se e a melhor solução, eu cadastraria esses usuários no AD e colocaria a senha pra expirar tipo a cada 24/36/72 hs conforme a necessidade, so assim você consiguirá um controle efetivo, ou voce levanta uma outra instancia do squid (li testei e nao consgui funcionar, mas ja vi casos de pessosas na net que conseguiram) e cria uma auteticação por nsca por exemplo, cadastra esse s users maquina (linux) e todas as vezes que eles acessaram, vai ter q preencher o pop-up com usuário e senha.


Att.

Leandro Moreira

[19] Comentário enviado por calaff2 em 08/02/2010 - 10:04h

faltou vc criar os grupos no ad e fazer referencia as acl.

ex: acl comercial-internet-sites dstdom_regex -i "/etc/squid/comercial-internet-sites.txt"
acl comercial-internet external nt_group comercial-internet
http_access deny comercial-internet !comercial-internet-sites

No caso o grupo criado no ad é: comercial-internet


[20] Comentário enviado por leandromoreirati em 08/02/2010 - 14:08h

Callaff2,
Por incrivel que parece estou acabando de testar as configurações de grupo, pois você não e o primeiro que me sugere, nao criei inicialmente pois isso nao era escopo do artigo, mas sim a integração do squid com o AD propriamente dita.

[21] Comentário enviado por whyper em 15/02/2010 - 07:55h

Viva,
alguem me ajuda a instalar o squid3,
quando corro apt-get install squid3
recebo esta mensagem:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package squid3
ja activei o "third party software" em software sources sem sucesso.
alguma dica?
agradeço desde já pelo excelente artigo!

[22] Comentário enviado por paulotrad em 15/02/2010 - 10:07h

instala o squid 2.7

apt-get install squid


eu testei com ele e funcionou perfeitamente.

[23] Comentário enviado por junior em 08/03/2010 - 10:48h

Primeiramente, quero parabenizar pelo artigo. Ótimo material, objetivo e bem explicado.

Bom, tenho uma dúvida: Se eu tiver uma máquina que está no domínio Windows e tentar navegar, o brownser não vai pedir autenticação, certo?
MAS... Se eu colocar uma máquina qualquer, que não estejano domínio, o browser abre o popup de autenticação, certo?

Quero saber se pra eu deixar automático (quando estiver no domínio vai direto, e quando não estiver pede autenticação) tenho que usar a primeira ou segunda configuração.

Grato.

[24] Comentário enviado por leandromoreirati em 08/03/2010 - 11:07h

Junior,
Eu não fiz esse teste, os acessos que testei sao apenas com maquinas no domínio, pois o usuários também devem estar no domínio para as configurações tenham efeito, mas acredito que sua colocação seja procedentes, uma vez que como a maquina nao eta no domínio muito provalmente deve pedir usuário e senha.
No momento nao tenho como fazer esse teste pois estou sem ambiente de teste, assim q conseguir, posto aqui no forum.

Att.

Leandro Moreira.

[25] Comentário enviado por whyper em 12/03/2010 - 11:55h

Sim Junior, já testei isso, se eventualmente a máquina não estiver a logar no dominio, aparece o popup a pedir a autenticação de dominio, senao não dá acesso.

Abraço!

[26] Comentário enviado por ctavares em 19/03/2010 - 17:33h

Estou tentando adicionar meu servidor ao Dominio Windows 2008 mas está dando o erro abaixo, aparentemente tem a ver com o tamanho do nome netbios, alguém saberia me ajudar?

Our netbios name can be at most 15 chars long, "SOL-DC # NOME NETBIOS DO SERVIDOR" is 33 chars long
Invalid configuration. Exiting....
Failed to join domain: WERR_INVALID_COMPUTER_NAME

[27] Comentário enviado por whyper em 23/03/2010 - 09:56h

experimenta retirar "# NOME NETBIOS DO SERVIDOR" dessa linha.

abraço

[28] Comentário enviado por leandromoreirati em 23/03/2010 - 10:09h

Acredito que o nome netbios não possa ser retirado pois o windows precisa desse nome para identificar o host, o que você pode fazer é tentar trocar por um nome menor. ja que o erro que esta aparecendo é que o nome é muito grande.

Att.

Leandro Moreira.

[29] Comentário enviado por whyper em 23/03/2010 - 12:23h

à frente do cardinal (#) não é apenas um comentário?
parece que está a interpretar toda a linha como o nome netbios, quando na realidade o nome é apenas "SOL-DC"

abraço

[30] Comentário enviado por ctavares em 24/03/2010 - 14:22h

É isso mesmo, retirei o comentário e o erro desapareceu. Outra duvida, quando estou adicionando a máquina ao dominio o mesmo retorna o seguinte erro:

[2010/03/24 14:48:21, 0] libads/sasl.c:ads_sasl_spnego_bind(819)
kinit succeeded but ads_sasl_spnego_krb5_bind failed: Invalid credentials
Failed to join domain: failed to connect to AD: Invalid credentials

[31] Comentário enviado por leandromoreirati em 24/03/2010 - 16:24h

vc adiciou a maquina no domínio, qdo vc entra em, iniciar >> feramentas >> usuáruis e computadores do AD, seu servidor ta listado la?

Att.

Leandro Moreira.

[32] Comentário enviado por ctavares em 24/03/2010 - 17:43h

Interessante, tudo estava funcionando em meu AD, adicionei máquinas Windows XP a ele e tudo rodava as 1000 maravilhas, só que ao adicionar o servidor debian 5 ao domínio ele parou de funcionar o AD e o DNS, e mesmo depois de rebootar nada funciona. Vou reinstalar ele para testar novamente e depois eu dou maiores detalhes aqui. Eu estou usando o Windows 2008 R2. Vocês chegaram a testar com dominio do Windows 2008 R2 inclusive com o AD construido sobre a estrutura funcional do Windows 2008 R2?

[33] Comentário enviado por ctavares em 25/03/2010 - 19:43h

Pois é, quando eu tento adicionar o servidor linux ao domínio o DNS do Windows 2008 dá pau e o AD consecutivamente para de funcionar, tentei encontrar uma resposta na internet mas nada, então deixei o problema no technetbrasil para ver se alguém da uma luz, os erros de DNS são 4000 e 4007 e acontece em nível funcional de domínio tanto 2008 R2 quanto em nível funcional 2003.

[34] Comentário enviado por leandromoreirati em 26/03/2010 - 08:47h

Caros,
Pude verifica aqui e criei meu artigo em cima de um windows 2008 standart, e nao o R2 conforme alguns estao tendo dificuldades, vou ver se arrumo um R2 pra eu testar e posto em breve aqui os resultados.

Att.


Leandro Moreira.

[35] Comentário enviado por takeshi em 26/03/2010 - 16:32h

Sobre esse problema com o ad e o dns, eu tb tive, mas foi com o windows server 2003 r2. Consegui solucionar o problema seguindo a dica que se encontra nesse site : http://www.tabugado.com/


[36] Comentário enviado por silveriosr em 27/04/2010 - 14:31h

Amigo... segui o seu tutorial, porem o script do SQUID nao aceita... o script contem erros.. queria q voce verificasse esse script e testasse no seu ambiente de teste para vc verificar que esta com problema

[37] Comentário enviado por leandromoreirati em 27/04/2010 - 17:03h

silveriosr,
Não existe erro no script pois varias pessoas ja o seguiram e conseguiram concluir os passos do artigo sem problema, o que pode estar acontecendo e voce esta comentendo erro em algum passo ou estar tentando autenicar no 2008 R2, que pelo que ja andei lendo da problemas mesmo, mas como nao tenho nehuma versão dele pra testar nao tenho como comprovar, no W2008 R1 o artigo ta mais que testado e aprovado.

Att.

Leandro Moreira.

[38] Comentário enviado por silveriosr em 27/04/2010 - 17:36h

kra... a versao do Windows 2008 que estou utilizando é a versao Enterprise Edition Service Pack 2, nao é a R2... tipo o meu squid ta dando o seguinte erro:
proxy:~#squid3 -k parse
2010/04/27 17:33:22| Processing Configuration File: /etc/squid3/squid.conf (depth 0)
2010/04/27 17:33:22| aclParseAccessLine: ACL name 'manager' not found.
FATAL: Bungled squid.conf line 87: http_access allow manager localhost
Squid Cache (Version 3.0.STABLE8): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.000 user + 0.008 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0

Observei que voce chama a acl manager antes de declara-la... ai eu corrigi isto, porem existe uma acl que vc chama com o nome de AuthorizedUsers que voce nao declarou.. esse erro que eu descrevi acima, eu corri alterando a posicao que chamou o arquivo, porem essa acl AuthorizedUsers nao axei lugar nenhum onde vc declarou ela!

[39] Comentário enviado por silveriosr em 28/04/2010 - 10:52h

Caro colega, lendo mais atentamente o seu artigo, eu consegui fazer funcionar na minha empresa a sua proposta, porem quero alertar que tive que fazer alteracoes, pois em alguns lugares voce chama uma acl sem antes declara-la. Antes de lhe fazer uma ultima pergunta, quero te parabenizar, pois esse solucao é muito positiva para empresas e administradores de redes como nós.

A ultima coisa que queria te perguntar, que na realidade eu fiquei na duvida é a seguinte, nesse script seu, nao foi feito a configuracao para que o usuario X pode acessas as paginas X,Y e Z por exemplo. O seu script apenas testa se o usuario é valido ou nao, se for ele le as regras padroes do script. Voce teria um script implementado que teria esse tipo de tratamento, para cada usuario autenticado um determinado tipo de acesso diferente.....


Atenciosamente

Silverio

[40] Comentário enviado por leandromoreirati em 28/04/2010 - 16:55h

Silverio,
Como pode ver na ultima página, existe sim a acl AuthorizedUsers, o que pode ter havido é um equivo da minha parte em nao ter postado o squid.conf completo, tenho ate que verificar pois creio que o fiz, mas basta apenas colocar o bloco abaixo, como vc pode ver tem uma outra entrada http_access allow all AuthorizedUsers , indicando que o bloco de autenticação deve ficar antes dela, caso reste alguma dúvida basta consultar a pagina 4 da documentação.

# Autenticação no Windows 2008
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl AuthorizedUsers proxy_auth REQUIRED
...
http_access allow all AuthorizedUsers

Att.

Leandro Moreira

[41] Comentário enviado por hugo_borges em 07/05/2010 - 09:42h

Amigo, quando uso o comando

net ads join DOMINIO.BR -U administrador%senha

Failed to join domain: Invalid configuration and configuration modification was not requested


eu tenho um AD 2003.


O que poderia ser, ja revi tudo e nao sei onde que esta o erro. muito obrigado.

[42] Comentário enviado por hugo_borges em 10/05/2010 - 10:06h

Bom Dia,
o erro acima ja consegui resolver
era só

workgroup = DOMAIN
realm = DOMAIN.COM


agora to com o seguinte erro ao restartar o squid.

aclParseAccessLine: ACL name 'liberaexe' not found.

nao ta achando essa acl,

[43] Comentário enviado por leandromoreirati em 10/05/2010 - 11:30h

hugo,

Comenta a linha

http_access allow liberaexe

Que resolve esse problema.a

Att.

Leandro Moreira.

[44] Comentário enviado por thiago.golin em 30/06/2010 - 15:05h

Galera, consegui fazer todos os passos do artigo com sucesso.
Porém, quando inicio o squid, ocorrem alguns problemas com o tal do basicauthenticator. O squid tenta iniciar umas 5 vezes e para.
Olha o que descreve o log:
Ready to serve requests.
WARNING: basicauthenticator #3 (FD 9) exited
Too few basicauthenticator processes are running
The basicauthenticator helpers are crashing too rapidly, need help!

O squid não chega a rodar, dá sempre esse problema ao iniciar....

Alguém teve esse problema?

[45] Comentário enviado por leandromoreirati em 30/06/2010 - 15:31h

thiago.golin,
Manda pra eu availar o seu squid.conf, ao dar wbinfo -u ele lista os usuários do AD.

Att.

Leandro Moreira.

[46] Comentário enviado por thiago.golin em 30/06/2010 - 16:01h

Leandro Moreira
Eu fiz mais alguns testes aqui, e descobri que o problema é com a chamada ao autenticador, o ntlm_auth.
Testei o squid sem as linhas que chamam o autenticador e ele funciona normalmente.
E sim, o wbinfo funciona, consegui listar os usuários e grupos do domínio.

Pelo jeito o problema é com o programa mesmo, chamando pela linha de comando /usr/bin/ntlm_auth.
Quando executo ele diretamente pela linha de comando, vem o seguinte erro ao final:
utils/ntlm_auth.c:174(get_winbind_domain) could not obtain winbind domain name!

[47] Comentário enviado por thiago.golin em 30/06/2010 - 16:12h

Executei novamente via linha de comando o autenticador .... esse erro do winbind não apareceu mais
depois de reiniciar o samba e o winbind.
Porém, o squid continua não iniciando.

[48] Comentário enviado por thiago.golin em 05/07/2010 - 10:39h

Consegui galera.


Senhores, para quem teve problema com o windows 7 autenticando no linux, isto deve resolver seus problemas:

http://blog.lcmm.info/?p=35




[49] Comentário enviado por carrolan em 22/07/2010 - 19:00h

campeão esse tópico, mas estou com problema e não sei se vocês poderam me ajudar, pois não estou usando squid ou proxy com o ad, só gostaria de servidor de arquivos (samba) com ad, bom o opensuse 11.3 samba 3.5.4..., conseguiu autenticar com o ad win2008, quando digito # wbinfo -u ele traz os usuarios cadastrados no ad, só que em uma estação windows não entra nos compartilhamentos do samba por onde toda vez ele pede um usuario e senha para autenticar com o samba, se eu digito um usuario cadastrado no linux ele entra, alguém saberia me dizer oq seria, pois que se trata disso é o winbind correto?

[50] Comentário enviado por leandromoreirati em 22/07/2010 - 20:21h

Carrolan,
Qual a versão do windows que esta dandoprobela (tenho a impressão que irá responder w7) pra podermos ajuda-lo.

[51] Comentário enviado por paulotrad em 22/07/2010 - 20:42h

realmente no windows 7 dá muito esse problema
dê uma checada no smb.conf

nos compartilhamentos,

eu utilizo aqui 100%

[52] Comentário enviado por carrolan em 24/07/2010 - 11:38h

Bom estou tendando usar as 2 plataforma win7 e o xp, os 2 dá o mesmo problema pede autenticação e só aceita pelo usuario cadastrado no linux. Sei que no win7 tem que fazer alteração na Segirança de rede: nivel de autenticação LAN Manager = Enviar LM e NTLM - usar segurança de sessão NTLMv2, se negociada.

[53] Comentário enviado por emerson.fp em 17/08/2010 - 10:26h

Consegui isntalar tudo certinho, estou lendo grupos e usuários do AD perfeitamente.
Mas quando inicio meu aquid, ele fica iniciando e parando.
Comentei as linhas da autenticação no AD e ele funcionou perfeitamente.
Quando descomento as linhas de autenticação, ele fica assim:
Aug 17 10:23:20 proxy03 squid[4156]: Squid Parent: child process 4158 started
Aug 17 10:23:21 proxy03 squid[4156]: Squid Parent: child process 4158 exited with status 1
Aug 17 10:23:24 proxy03 squid[4156]: Squid Parent: child process 4207 started
Aug 17 10:23:25 proxy03 squid[4156]: Squid Parent: child process 4207 exited with status 1
Aug 17 10:23:28 proxy03 squid[4156]: Squid Parent: child process 4250 started
Aug 17 10:23:30 proxy03 squid[4156]: Squid Parent: child process 4250 exited with status 1
Aug 17 10:23:33 proxy03 squid[4156]: Squid Parent: child process 4297 started
Aug 17 10:23:34 proxy03 squid[4156]: Squid Parent: child process 4297 exited with status 1
Aug 17 10:23:37 proxy03 squid[4156]: Squid Parent: child process 4342 started
Aug 17 10:23:38 proxy03 squid[4156]: Squid Parent: child process 4342 exited with status 1

O que pode ser?

[54] Comentário enviado por leandromoreirati em 17/08/2010 - 10:42h

Emerson,
Qual log e esse, isso e apenas o IPD do processo do squid, seu squid autentica no AD?
Como vc instalou compilou ou usou pacote?
Qual distro esta usando?

Att.

Leandro Moreira.

[55] Comentário enviado por emerson.fp em 17/08/2010 - 11:17h

Estou usando Debian. Instalei tudo conforme este tutorial.
Esse log eu peguei de /var/log/messeges.
Essas são as linhas do squid.conf que se descomento, não funciona:

# Autenticacao no Dominio Windows
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl AuthorizedUsers proxy_auth REQUIRED

auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b "dc=dominio,dc=com,dc=br" -D "cn=proxy_user,cn=Users,dc=atendebem,dc=com,dc=br" -w "senha" -f sAMAccountName=%s -h 192.168.0.1
acl autentica proxy_auth REQUIRED
http_access allow autentica
external_acl_type nt_group ttl=0 concurrency=5 %LOGIN /usr/lib/squid/wbinfo_group.pl

[56] Comentário enviado por emerson.fp em 17/08/2010 - 13:55h

Deixa eu mesmo me corrigir: não posso usar as 2 opções, né? ou essa:
# Autenticacao no Dominio Windows
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl AuthorizedUsers proxy_auth REQUIRED

ou essa:

auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b "dc=dominio,dc=com,dc=br" -D "cn=proxy_user,cn=Users,dc=atendebem,dc=com,dc=br" -w "senha" -f sAMAccountName=%s -h 192.168.0.1
acl autentica proxy_auth REQUIRED
http_access allow autentica

certo?

e a linha que tá me dando dor de cabeça é essa:
external_acl_type nt_group ttl=0 concurrency=5 %LOGIN /usr/lib/squid/wbinfo_group.pl
achei ela num site que diz que ela é a responsável por fazer o squid ler os grupos do AD, permitindo acls deste tipo:
acl gerencia external nt_group gerencia
onde gerencia é um grupo do AD.

Tá certa a linha?

[57] Comentário enviado por emerson.fp em 17/08/2010 - 15:35h

Descobri meu erro anterior: caminho de arquivos errados.

Agora meu Squid não tá lendo meus usuários e grupos do AD...

Achei 2 tipos:

external_acl_type NT_global_group children=10 %LOGIN /usr/lib/squid3/wbinfo_group.pl
acl acessototal external NT_global_group acessototal
acl emerson proxy_auth DOMINIO/emerson.pedrotti
http_access allow emerson
Não libera internet pra ninguém, nem pra mim (emerson)

e assim:

external_acl_type nt_group ttl=0 concurrency=5 %LOGIN /usr/lib/squid3/wbinfo_group.pl
acl acessototal external nt_group acessototal
http_access allow acessototal
Libera internet pra todos, até quem nao esta no grupo acessototal do AD.

[58] Comentário enviado por cyberdps em 23/09/2010 - 20:58h

Primeiramente, queria elogiar o arquigo que ficou muito bom e funcionou perfeitamente na emresa que trabalho, encontrei apenas um problema e gostaria de saber se tem alguma sugestão a respeito, alguns usuários depois que implementei esse modelo de proxy não conseguem mais utilizar o mensseger, e se eu desabilitar o proxy e rencaminhar para internet direto a maquina faz a conexão. Vc te idéia do que pode ser isto?

[59] Comentário enviado por zimmer54 em 05/10/2010 - 16:54h

Boa tarde, seu trabalho ficou excelente! Estou seguindo seu artigo como base para fazer meu TCC de redes de computadores da escola técnica do SENAI de Porto Alegre.

Estou apenas com uma dificuldade na hora de tirar aquele erro do "DNS Update Failed". Ele entra no dominio pois aparece o host no windows server, porém quando vou fazer os outros comandos retornam mensagens de erro:

# wbinfo -t
checking the trust secret via RPC calls failed
error code was NT_STATUS_INVALID_HANDLE (0xc0000008)
Could not check secret

Nos outros comandos nenhuma anormalidade occore, veja o comando # net ads info

LDAP server: 192.168.0.5
LDAP server name: mercurio.senai.com
Realm: SENAI.COM
Bind Path: dc=SENAI,dc=COM
LDAP port: 389
Server time: Ter, 05 Out 2010 15:52:24 AMT
KDC server: 192.168.0.5
Server time offset: 29

Essas são as informações que tenho. Lembrando que ja comentei as linhas do loopback no arquivo hosts:

===============Arquivo Hosts===================
# 127.0.0.1 localhost
# 127.0.1.1 ubuntu-server
192.168.0.1 proxyvm.senai.com proxyvm # servidor proxy
192.168.0.5 adsrv.senai.com adsrv # servidor AD
192.168.0.5 senai.com senai # servidor AD

# The following lines are desirable for IPv6 capable hosts
# ::1 localhost ip6-localhost ip6-loopback
# fe00::0 ip6-localnet
# ff00::0 ip6-mcastprefix
# ff02::1 ip6-allnodes
# ff02::2 ip6-allrouters
===============Arquivo Hosts===================

Procurei dar o maior número de informações para não precisar estar mandando depois. Aguardo uma resposta. Obrigado por enquanto.


[60] Comentário enviado por leandromoreirati em 05/10/2010 - 17:01h

zimmer54,
Posta sua conf do krb5.conf, esse erro e da autenticação do kerberos no AD.

Att.

Leandro Moreira.

[61] Comentário enviado por zimmer54 em 06/10/2010 - 14:05h

Boa tarde, meu arquivo está assim:

=============================

[libdefaults]
ticket_lifetime = 24000
default_realm = SENAI.COM
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
SENAI.COM = {
kdc = 192.168.0.5
admin_server = 192.168.0.5:749
default_domain = 192.168.0.5
}

[domain_realm]
.senai.com = SENAI.COM
senai.com = SENAI.COM

[login]
krb4_convert = true
krb4_get_tickets = false

[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.log

=============================

Eu estou usando o ubuntu 10.04 e windows server 2003, rodando na VirtualBox. Acredito que não tenha problema mas qualquer coisa me fala dai. Obrigado por enquanto, abraço.

Davi zimmer

[62] Comentário enviado por DanielChagas em 29/10/2010 - 14:06h

Eu ja tentei de tudo e fiz e refiz todas as configurações, mas toda vez que eu digito:

# net ads join DOMINIO -U administrador%SENHA_DO_ADMINISTRADOR

aparece o seguinte erro: Failed to join domain: Invalid configuration and configuration modification was not requested

eu ja to a 3 dias correndo atrás de uma solução e até agora nada.

tousando o debian lenny e windows 2008 server r2

[63] Comentário enviado por leandromoreirati em 29/10/2010 - 14:13h

Daniel,
Voce substituiu SENHA_DO_ADMINISTRADOR, pela senha do seu servidor AD?
manda o seu krb5.conf pra eu dar uma olhada, pois ele nao ta conseguindo ingressar no dominio, qual windows server vc esta usando?

Att.

Leandro Moreira.



[64] Comentário enviado por DanielChagas em 29/10/2010 - 14:33h

Windows Server 2008 R2 Foundation e o Debian Lenny 5


[libdefaults]
ticket_lifetime = 24000
default_realm = CONCRETA.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
CONCRETA.LOCAL = {
kdc = 192.168.1.254
admin_server = 192.168.1.254:389
default_domain = 192.168.1.254
}

[domain_realm]
.concreta.local = CONCRETA.LOCAL
concreta.local = CONCRETA.LOCAL

[login]
krb4_convert = true
krb4_get_tickets = false

[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.log

[65] Comentário enviado por DanielChagas em 29/10/2010 - 14:34h

quanto a porta 389 ou 749 da o mesmo erro.

[66] Comentário enviado por jonasmdias em 01/11/2010 - 21:42h

Ha como fazer com proxy transparente ?

Obrigado.

[67] Comentário enviado por leandromoreirati em 02/11/2010 - 13:27h

jonas,
Ou o proxy e transparente ou ele é autenticado, mas eu testei uma tecnica que deu muito certo que foi o wpad, crie uma entrada no dns apontando para um servidor web (maquina virtual simples com http 1.0 rodando somente esse script no /var/www)

vi /var/www/wpad.dat

function FindProxyForURL(url, host)
{
return "PROXY ip_do_proxy:porta_do_proxy";
}

Depois no DNS (interno linux) crie uma entrada dizendo que o wpad era do 10.0.0.30, depois foi so ir no navegador e marcar detectar script automaticamente que meus usuários tinha configuração de proxy manual "transparente" no dns do windows também funciona, tem q fazer um procedimento que infelizmente nao sei qual é apenas sei que tem q liberar o endereço do wpad na consulta do DNS pois no dns do windows o nome wpad é reservado quando fiz no windows tinha um admin microsoft que fez esse passo pra mim até pedi a ele pra em enviar mas ... usuárui M$ e usuáruio M$.
Dessa forma vc faz seu proxy funcionar como transparente na boa, comecei a atauliazar essa documentação para o windows 2008 R2 mas ainda nao tenho prazo para publica-la infelizmente pois to muito apertado no trabalho e na faculdade e a nova documentação já virá com essa "bem feitoria do wpad"

Att.

Leandro Moreira.

[68] Comentário enviado por leandromoreirati em 02/11/2010 - 13:30h

Daniel,
Infelizmente tenho lido alguns relatos de problemas com o w2008R2 estou começando a atualizar essa documentação para o R2, pois ela foi feita sobre o R1 infelizmente nao disponho de um w2008 pra fazer os testes e temo que 2GB de ram no meu notebook que tem 4GB pode nao ser suficiente pois so consegui o R2 64 bist.

Att.

Leandro Moreira.

[69] Comentário enviado por matheuskamphorst em 07/12/2010 - 10:57h

Pessoal primeiramente, parabens otimo how to, porém gostaria de saber na regra com autenticação automatica aonde coloco o grupo ou usuario que vai estar usando

[70] Comentário enviado por leandromoreirati em 19/12/2010 - 20:52h

Pessoal
Depois de um tempao prometendo, refiz todo o artigo usando o windows 2008 R2 fundation, (avalição liberada pela M$), segui na integra os passos descritos no artigo e meu squid3 autrenticou no AD 208 R2 sem nenhum problema.

Att.

Leandro Moreira

[71] Comentário enviado por dimago em 05/01/2011 - 15:55h

Leandro, parabéns pelo artigo, realmente, perfeito.

Então, essa versão ai já estpa OK para o R2, certo?

Vamos a minha dúvida.

Em caso da máquina NAO estar no dominio, ele deve pedir usuário e senha (popup) aqui, ocorre isso OK.
Porém, na caixa de usuário e senha, ele nao traz as informações do squid, como o realm, que coloquei lá no conf
E preciso colocar a autenticação deste modo: dominio\usuario

Queria ver se tem como arrumar estas duas questoes:
1 - na caixa de popup, ele trazer as informações do realm, e o servidor ali no nome da janela
2 - nao precisar colocar dominio\usuario

Mais uma vez parabéns,

abraço,

Diego

[72] Comentário enviado por carlos_petronet em 08/04/2011 - 17:30h

Como ficam os software que precisam de acesso externo, tipo messenger ou mysuite deve colocar proxy?

[73] Comentário enviado por junior em 08/04/2011 - 17:41h

@carlos_petronet: No caso do MSN, é só tu ir nas configurações de conexão e colocar um usuário e senha do ad, que autentica normalmente no squid, desde que esse usuário já autentique navegando, por exemplo.

[74] Comentário enviado por rickbrandao em 25/05/2011 - 16:26h

Olá amigão, bom meu AD é um 2008 enterprise sp1, entendi seu questionamento, realmente estou colocando meu dominio, sendo que o mesmo está configurado em Maiusculo. Então, tendo ingressar com o usuário "administrador" mesmo.
Estou usando o Ubuntu server 10.04.
Erro au tentar entrar no dominio
root@PROXY:/etc/samba# net ads join -U administrador -S DOMINIO.LOCAL
Enter administrador's password:
[2011/05/25 14:14:06, 0] libads/sasl.c:819(ads_sasl_spnego_bind)
kinit succeeded but ads_sasl_spnego_krb5_bind failed: Server not found in Kerberos database
Failed to join domain: failed to connect to AD: Server not found in Kerberos database
Mas o computador aparece no AD.

[75] Comentário enviado por djcelsodub em 27/05/2011 - 11:13h

Mto bom o artigo....

tive um problema com a migração do AD de 2003 para 2008 e seu artigo ajudou mto.

tive que atualizar o samba para a versão 3.5 e o squid para a versao 2.7

tudo funcionando novamente, autenticando por ntlm.


Excelente contribuição á comunidade.


Celso Faria
Americana/SP

[76] Comentário enviado por jotape_saraiva em 29/05/2011 - 20:03h

leandro parabens pelo post, mas eu nao estou conseguindo instalar o kerberos no mandriva one 2009, já atualizei meu repositorio e nada.

[77] Comentário enviado por DenerSantos em 02/06/2011 - 11:21h

Muito Bom o artigo Leandro Parabéns,

Acho que fiz algo de errado.... tah dando o erro abaixo qdo dou o comando:

# net ads join -U administrator

[2011/06/02 11:19:34.456682, 0] libads/sasl.c:821(ads_sasl_spnego_bind)
kinit succeeded but ads_sasl_spnego_krb5_bind failed: Invalid credentials
Failed to join domain: failed to connect to AD: Invalid credentials

estou usando ubuntu e o AD é 2003, ah e a senha está correta....

Alguem sabe o que pode estar ocorrendo?

Viva o Linux!

Dener Santos

[78] Comentário enviado por aantunes em 10/06/2011 - 14:27h

DenerSantos, boa, conseguiu resolver o seu problema? Pois estou com mesmo.

[79] Comentário enviado por tihbaptista em 15/06/2011 - 13:00h

DenerSantos e aantunes, postem seus arquivos de configuração pra mim dar uma olhada, estava com o mesmo problema e consegui resolver refazendo as configurações com atenção...

Arquivos (hosts, resolv.conf, krb5.con, smb.conf, winbind)

[80] Comentário enviado por tihbaptista em 15/06/2011 - 14:54h

Eu consegui colocar o servidor proxy no dominio, porem não consigo importar usuarios e grupos para manipular as permissões... alguem ai conseguiu ?

[81] Comentário enviado por aantunes em 17/06/2011 - 16:47h

Tihbaptista, obrigado, conseguir acesso usando o tutorial de amigo do site
http://www.megarifa.com.br/artigo/Compartilhamento-do-Samba-autenticando-no-AD?pagina=2

[82] Comentário enviado por aantunes em 20/06/2011 - 16:04h

Todos do vol, agora estou com esse problema com o squid. o aquivo de configuração foi tirado daqui no control+c e control+v, alterando somente os ips. funciona quase tudo. o que esta acontecendo. Fiz o bloqueio do site http://pt-br.facebook.com, até ai tudo funciona. mas quando coloco o no browse o enredeço https://pt-br.facebook.com/ (https) ele não exibe a mensagem do site negado. Exibi a mensagem do IE: "O Internet Explorer não pode exibir a página da Web" alguem já pssou por isso saber como ajudar?

[83] Comentário enviado por ulisses.santos em 04/07/2011 - 15:03h

amigo, boa tarde estou tentando colocar um debian 6 para autenticar no ad 2003 mas esta dando este erro alguma ideia?


root@squid:/etc/samba# net ads join ASEFE.ORG.BR -U ulisses.santos@ASEFE.ORG.BR
Enter ulisses.santos@ASEFE.ORG.BR's password:
Failed to join domain: failed to find DC for domain ASEFE.ORG.BR

smb.conf

unix charset = ISO-8859-1
workgroup = ASEFE.ORG.BR
netbios name = SQUID
server string = squid
log level = 5
load printers = no
log file = /var/log/samba/log.%m
max log size = 500
realm = asefe.org.br
security = ads
auth methods = winbind
#password server = win2003.dominio.local # Endereço do servidor de autenticação nome/ip
password server = 192.168.7.142
winbind separator = +
encrypt passwords = yes
printcap name = cups
winbind cache time = 15
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
local master = no
os level = 233
domain master = no
preferred master = no
domain logons = no
#wins server = 192.168.7.142
dns proxy = no
ldap ssl = no
printing = cups
disable spoolss = yes
show add printer wizard = no
template shell = /bin/bash
template homedir = /home/%U

[84] Comentário enviado por thiago.golin em 12/07/2011 - 16:43h

galera... estou tendo problema do debian 6 também

no debian 5 ele funciona bonitinho!!! mas instalando no debian 6
dá tudo certo até tentar listar os usuários!!

root@cohab-squid1:/etc/samba# wbinfo -t
checking the trust secret for domain XXX_DOMAIN via RPC calls succeeded

ao usar o wbinfo -u ele lista apenas dois usuários... o primeiro usuário utilizado para entrar no domínio e o usuário nobody
ao tentar listar grupos... nada é listado.

Alguém já instalou utilizando o Debian Squeeze (6)?

[85] Comentário enviado por thiago.golin em 15/07/2011 - 17:58h

Galera. Consegui resolver este problema de não listar os usuários e grupos.
É um bug das últimas versões do samba e winbind.

Em vez de usar o padrão unix charset = ISO-8859-1,
utilizem o padrão UTF-8 que o wbinfo já vai listar os usuários e grupos.



Pode ainda aparecer outro problema de não conseguir converter o nome de alguns grupos com o seguinte erro : Could not convert sid to gid.
Este problema pode ser resolvido apagando winbindd_idmap.tdb e reiniciando o winbind e o samba em seguida.


Assim o problema é eliminado e o Squid resolve o problema de converter o UTF-8 para Locale.

Espero que ajude alguém.
abraços.

[86] Comentário enviado por faiscask8 em 01/08/2011 - 16:09h

o meu ta dano o seguinte erro:
alguem tem ideia do que pode ser?

zapoos@Proxy:/etc/samba$ sudo net ads join -U administrator
Enter administrator's password:
[2011/08/01 19:10:19.355874, 0] libads/sasl.c:821(ads_sasl_spnego_bind)
kinit succeeded but ads_sasl_spnego_krb5_bind failed: Invalid credentials
Failed to join domain: failed to connect to AD: Invalid credentials
zapoos@Proxy:/etc/samba$

[87] Comentário enviado por leandromoreirati em 01/08/2011 - 18:17h

Faiscask8

Tenta adicionar ao servidor ao domínio com essa linha de comando:

net ads join DOMINIO -U administrador%SENHA_DO_ADMINISTRADOR

Abraços.

[88] Comentário enviado por vampbrujah em 20/08/2011 - 19:58h

Só uma dúvida. Se eu quiser que o squid e o AD estejam integrados e com popup de nome de usuário e senha, eu não vou precisar instalar os outros programas? Só vou usar o squid?

[89] Comentário enviado por joaoferreira em 18/09/2011 - 15:50h

vampbrujah,

Exatamente, conforme mostra o texto não é necessário caso você queira utilizar o squid apenas para auth com o AD solicitando o POP-up.

[90] Comentário enviado por joaoferreira em 01/11/2011 - 14:35h

Olá Léo,

Bom dia, meus parabéns pelo excelente artigo, seguir arista os passos contido neste artigo e funcionou belezinha.

Atualmente temos cerca de 500 host's, 02 controladores de domínio, uma máquina com configuração: Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz
, 3GB DE MEMÓRIA RAM, 80 GB DISCO RÍGIDO. Rodando o nosso servidor proxy, o mesmo tem instalado o Sistema Operacional: Debian Squeeze.

Porém Léo de um tempo para cá os usuários vem se queixando do pop-up que aparece toda hora, o problema só resolvi quando eu reiniciou o servidor do winbind. Eu não sei o que fazer para solucionar este problema, atualmente estou analisando novamente todos os log's para tentar localizar o erro.

Por favor me der uma luz.

Obrigado.

Logs:

[91] Comentário enviado por gpimenta em 06/12/2011 - 11:33h

Estou com o seguinte erro ao ingressar o linux no server 2008


Failed to join domain: Invalid configuration ("workgroup" set to 'LABORATORIO.CNSP # DOMINIO A QUAL O SERVIDOR PERTENCE', should be 'LABORATORIO'"realm" set to 'LABORATORIO.CNSP # DOMINIO DO SERVIDOR', should be 'laboratorio.cnsp') and configuration modification was not requested
root@lab-security:/var/www/lab#

meu arquivo é este:


1 unix charset = ISO-8859-1
2 workgroup = LABORATORIO.CNSP # Dominio a qual o servidor pertence
3 netbios name = PROXYM
4 server string = proxyvm
5 log level = 5
6 load printers = no
7 log file = /var/log/samba/log.%m
8 max log size = 500
9 realm = laboratorio.cnsp # Dominio do servidor
10 security = ads
11 auth methods = winbind
12 password server = 192.168.100.253 # Endereco do servidor de autenticao nome/ip
13 winbind separator = +
14 encrypt passwords = yes
15 printcap name = cups
16 winbind cache time = 15
17 winbind enum users = yes
18 winbind enum groups = yes
19 winbind use default domain = yes
20 idmap uid = 10000-20000
21 idmap gid = 10000-20000
22 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
23 local master = no
24 os level = 233
25 domain master = no
26 preferred master = no
27 domain logons = no
28 dns proxy = no
29 ldap ssl = no
30 printing = cups
31 disable spoolss = yes
32 show add printer wizard = no
33 template shell = /bin/bash
34 template homedir = /home/%U

[92] Comentário enviado por sergiosgs em 21/12/2011 - 12:54h

Caro Leandro

Quero parabenizá-lo pelo excelente artigo, segui todos os passos (nas duas situações) e funcionaram corretamente no meu ambiente (AD 2008 R2 + Linux Squid 2.7 e firewall c/ iptables)

Sei que esse não é o post, mas caso saiba, para que eu possa colocar esse ambiente em prática, preciso só acertar os bloqueios de acesso de páginas e fechar meu firewall contra ataques externos.

Você e nosso amigos tem algumas dicas? Já procurei bastante e sempre encontro divergências a repeito das mesmas

Ahh.. estou usando o Debian 6

Abs a todos...

[93] Comentário enviado por leandromoreirati em 22/12/2011 - 15:52h

Sem conhercer sua topologia de rede fica complicado de opiniar, mas estou presumindo que seu proxy/Firewall fica entre sua rede e a internet (lê -se roteador de empresa de telecom) bom eu trabalharia no firewall com a política dropa tudo e libera apenas o necessário ja no proxy, basicamente trabalho com 3 situações

1) Lista para "Diretoria" passa pelo proxy loga o que os caras fazem mas não bloqueia nada

2) Lista de acesso normal, bloqueia tudo e permite apenas acesso a sites de bancos, noticas dentre outros

3) Lista de bloqueado, quem ta nessa lista acessa apenas a intranet

Não sei se é a mehor prática mas é a que eu testei e aprovei junto aos meus clientes, ainda tem uma boa ferramenta de reltório de acesso a internet, sou muito fam do mysar, pois ele te permite a ter relatório de acesso em tempo real sem sentar a maquina como o sarg por exemplo faz.

[94] Comentário enviado por sergiosgs em 23/12/2011 - 10:58h

Oi Leandro...

Minha topologia é essa mesma (Internet => Proxy/Firewall (com 2 palcas de rede) => Rede Interna)

Já fiz algumas regras de bloqueio impedindo acesso a sites e relatórios pelo SARG... mas ainda tenho que fechar a saída do MSN e estou com um pouco de difucldades para isso... Além disso tenho que liberar acesso semelhante a situação 1 que você comentou...

Tenho como me passar essas dicas?

[95] Comentário enviado por sergiosgs em 06/01/2012 - 15:07h

Bom Ano de 2012 para todos!!

Olá Leandro...

Cara é possível você postar com fez nesse regra de liberação da diretoria

"1) Lista para "Diretoria" passa pelo proxy loga o que os caras fazem mas não bloqueia nada"

Pois estou precisando dessa situação aqui...

Grato

[96] Comentário enviado por lpossamai em 05/03/2012 - 11:50h

Muito bom seu artigo!


Possuo o SQUID 2.6 e o samba 3.
Configurei o squid, winbind e samba.
Configurei o proxy no navegador.

Fiz tudo certinho, porém quando vou iniciar o navegador ele pede usuário e senha. Sendo que eu fiz pela primeira opção: SEM POPUP

O que pode ser?

Sendo que eu não tenho aquela opção que você manda editar no /etc/init.d/winbind

Obrigado. Lucas.

[97] Comentário enviado por leandromoreirati em 05/03/2012 - 16:44h

Lucas,

Pode mandar os logs para eu dar uma olhada, lembro-me que na época eu tinha um motivo para não usar o squid 2.6, por isso usei a versão 3 do squid.

Mas com os logs eu talvez possa te ajudar.

Abraços.

Leandro.

[98] Comentário enviado por rondineli.araujo em 16/03/2012 - 19:29h

Eae galera, blza?

O meu conf. ficou bem legal.

O que ocorre é que tem uma coisa que esta me incomodando bastante, no meu caso, criei dois grupos um INTERNET_RESTRITA E OUTRO INTERNET-LIBERADA, uma acl de bloqueio e outra de unblock para INTERNET_RESTRITA e o grupo INTERNET_LIBERADA sem acl de bloqueio.

PROBLEMA:

Eu sou do grupo INTERNET_RESTRITA e quero acessar um site bloqueado, ele não carrega, porém ele não mostra a página de erro enquanto eu cancelar a solicitação de senha, ele insisti em pedir a senha, o problema são para sites que tem varios popups por exemplo o ITAU, Yahoo e etc...ele até carrega o site mas pede senha umas 5 vezes....alguem sabe uma forma de ele pedir a senha no primeiro acesso e depois quando tentar acessar um site bloqueado ele mostra a página de bloqueio direto.

Aguardo.

[99] Comentário enviado por jonatasvales em 20/03/2012 - 17:06h

Fiz tudo como descrito acima mas quando digito # kinit Administrador@DOMINIO.LOCAL eu tenho esse erro:

root@webserver:/etc# kinit Administrador@DOCASDESANTANA.COM.BR
kinit: Cannot resolve network address for KDC in realm "DOCASDESANTANA.COM.BR" while getting initial credentials

Não sei o que faço. Alguém pode me ajudar?

[100] Comentário enviado por paulotrad em 20/03/2012 - 17:22h

ola jonatasvales
verifique se a porta do active directory está corretamente configurada
isso pode ser uma falha de comunicação do seu linux com o windows server

eu tive alguns problemas como este durante a implantação deste serviço numa empresa
mas logo resolvi

veja meus comentários anteriores aqui.

esta mensagem q vc postou diz que ele nao consegue resolver o endereço do KDC para o domínio "docasdesantana.com.br" para obter as credenciais iniciais

é bom checar todos os conf, os IP's, e os dominios certinhos.

boa sorte

[101] Comentário enviado por silent-man em 20/03/2012 - 17:25h

algum erro no /etc/krb5.conf

[102] Comentário enviado por markennedy em 26/03/2012 - 18:14h

Pessoal,

Tenho a seguinte dúvida/situação:

Estou usando a autenticação Kerberos + NTLM + Squid com o Windows/AD 2008.

Tenho muitos (muitos - muitos mesmo) grupos de usuários, mas quero aplicar algumas políticas especificamente para alguns, como se segue:

Tenho a seguinte linha para pegar os grupos do AD.

external_acl_type gruposad children=20 ttl=60 %LOGIN /usr/lib64/squid/wbinfo_group.pl


Criei as seguintes ACLs que que se referem aos referidos grupos:

acl Todos_os_usuarios external gruposad G_TODOS_PROXY (Pega todos os users do AD)
acl Acesso_restrito external gruposad G_acesso_so_sites_oficiais (so acessará alguns sites, listados no arquivo da regra)
acl Acesso_bloqueado external gruposad G_acesso_internet_bloqueado (não acessa nada)
acl Tudo_liberado external gruposad G_Tudo_Liberado (acessa qualquer coisa, até lista de sites bloqueado o restos dos usuarios (sao os superSUPER))

acl sites_oficiais dstdomain -i "/etc/squid/acls/apenas_sites_oficiais" (lista de sites que acesso restrito pode acessar)
acl extensoes_bloqeadas dstdomain -i "/etc/squid/acls/extensoes_bloqueadas" (auto-explicativo)
acl sites_proibidos dstdomain -i "/etc/squid/acls/proibidos_para_todos" (relacao de sites proibidos para todos, MENOS para a ACL Tudo_liberado)

http_access deny all Acesso_bloqueado
http_access deny Acesso_restrito !sites_oficiais
#http_access allow Tudo_liberado
#http_access allow Todos_os_usuarios

Quero conseguir fazer essa configuração ai funcionar, de modo efetivo e de modo que não peça tela de LOGIN para o grupos de usuários que terão o acesso todo bloqueado.

Estou precisando disso com uma certa urgência, e acho que devido a tanto mexer, estou meio cego e não consigo ver como deveria fazer.

Agradeço desde já.

Carlos Markennedy

[103] Comentário enviado por geff.s em 28/03/2012 - 16:37h

Olá pessoal to com alguns probleminhas para fazer a coisa toda funcionar!
Meus Servidores são Windows 2008 Server Standart R2 e CentOS release 5.7 (Final)


A princípio a configuração do meu krb5.conf está igual a do tópico, claro que com as devidas alterações de ip e domínio para a minha rede.
De inicio quando vou levantar o krb5kdc dá erro:

[root@server /]# service krb5kdc start
Iniciando Kerberos 5 KDC: krb5kdc: cannot initialize realm DOMINIO-X.SC.GOV.BR - see log file for details
[FALHOU]
Nos logs tenho o seguinte:

[root@server /]# cat /var/log/krb5kdc.log
krb5kdc: No such file or directory - while initializing database for realm DOMINIO-X.SC.GOV.BR
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Quanto ao winbind não consigo encotrar a linha no /etc/init.d/winbind mensionada no tópico para substitui-la, devo adicionar essa linha no winbind?

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Meu /etc/samba/smb.conf está da seguinte forma:

#======================= Global Settings =====================================

[global]

unix charset = ISO-8859-1
workgroup = DOMINIO-X
server string = SERVER
netbios name = SERVER

# logs split per machine
log file = /var/log/samba/%m.log
# max 50KB per log file, then rotate
; max log size = 50

security = ads
passdb backend = tdbsam
realm = DOMINIO-X.SC.GOV.BR
password server = 192.168.0.1

os level = 233
preferred master = no

auth methods = winbind
winbind separator = +
encrypt passwords = yes
printcap name = cups
winbind cache time = 15
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

local master = no
domain master = no
preferred master = no
domain logons = no
dns proxy = no
ldap ssl = no

load printers = yes
cups options = raw

; printcap name = /etc/printcap
#obtain list of printers automatically on SystemV
; printcap name = lpstat
printing = cups
disable spoolss = yes
show add printer wizard = no



#============================ Share Definitions ==============================

[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

Quando inicializo o samba da ok!
Quando dou o comando abaixo me retorna esse erro:

[root@server /]# net ads join DOMINIO-X.SC.GOV.BR -U administrador%senhaxyz
[2012/03/28 16:23:02, 0] libads/kerberos.c:ads_kinit_password(228)
kerberos_kinit_password administradoor@DOMINIO-X.SC.GOV.BR failed: Client not found in Kerberos database
Failed to join domain: Improperly formed account name

Mesmo sem o .SC.GOV.BR ele da o mesmo erro.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Esse comandos abaixo também dão erro:

[root@server /]# wbinfo -t
checking the trust secret via RPC calls failed
error code was NT_STATUS_INVALID_HANDLE (0xc0000008)
Could not check secret

[root@server /]# wbinfo -u
Error looking up domain users

[root@server /]# wbinfo -g
BUILTIN+administrators
BUILTIN+users

[root@server /]# net ads info
LDAP server: 192.168.0.1
LDAP server name: server2008.dominio-x.sc.gov.br
Realm: DOMINIO-X.SC.GOV.BR
Bind Path: dc=DOMINIO-X,dc=SC,dc=GOV,dc=BR
LDAP port: 389
Server time: Qua, 28 Mar 2012 16:29:16 BRT
KDC server: 192.168.0.1
Server time offset: 0

Desculpa pela pergunta tão grande, mas se alguém puder me ajudar fico muito agradecido.

[104] Comentário enviado por edubsi em 04/04/2012 - 14:12h

Leandro,
Parabéns pelo ótimo artigo.

Eu também estou com o mesmo problema do Lucas, ou seja, funcionou tudo, porém, quando algum usuário do ad vai iniciar o navegador ele pede usuário e senha toda hora. Sendo que eu fiz pela primeira opção: SEM POPUP. Única coisa que fiz diferente da sua solução foi NT_global_group para buscar grupos do ad, gostaria de saber o que fazer a mais para não pedir senha, só falta isso para colocar em produção:

acl AuthorizedUsers proxy_auth REQUIRED
##adicionado para buscar grupos do AD#
external_acl_type NT_global_group children=10 %LOGIN /usr/lib/squid3/wbinfo_group.pl
####ACL grupos do ad#
acl ProxyUsersP1 external NT_global_group squiddefault
#http_access allow all AuthorizedUsers
http_access allow redesinternas AuthorizedUsers ProxyUsersP1

Esta linha acima estaria correta Leandro? para liberar os sites "internos" somente os usuarios autenticados no AD do grupo=squiddefault ?

Dominio: Windows 2003 STD
Debian Squeeze GNU/Linux 6.0
Samba version 3.5.6
winbindd: Version 3.5.6
Squid Cache: Version 3.1.6
As estações clientes utilizando windows 7, mas tb fiz teste no XP e também pede usuário e senha.

Obrigado, Eduardo

[105] Comentário enviado por maxmelo3 em 20/06/2012 - 15:29h

Quando uso o comando:

net ads join DOMINIO.BR -U administrador DOMINIO

failed to join domain: failed to connect to AD: server not found in Kerberos database

O que poderia ser?

Aguardo,
Obrigado


[106] Comentário enviado por raragao em 23/10/2012 - 15:27h

Olá,

Fiz a implementação do seu tutorial, muito bom por sinal, e com pequenas ajustes funcionou de primeira. Agora estou na fase de testes, porém tem alguns serviços que não funcionam mais.

Percebi que no log que os acessos que não estão funcionando não estão com a identificação do usuário, como se o squid não identificasse estes casos.

Exemplos sem usuário identificado:

23/Oct/2012:15:26:18 -0200 172.16.10.183 - - "CONNECT 74.125.139.125:5222 HTTP/1.1" 403 3545 "-" "-" TCP_DENIED:NONE

23/Oct/2012:15:27:46 -0200 172.16.10.183 - - "GET http://dnl-18.geo.kaspersky.com/index/u0607g.xml.dif HTTP/1.0" 407 4112 "-" "zpBs1DxnBjw4nuD8osHVANOS4wLjAuNzU0" TCP_DENIED:NONE


Exemplo com usuário identificado:

23/Oct/2012:15:27:16 -0200 172.16.10.183 - ricardo.aragao "GET http://oglobo.globo.com/favicon.ico HTTP/1.1" 200 1606 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4" TCP_MISS:DIRECT


Alguém tem este tipo de problema? Como resolver?

Obrigado.

[107] Comentário enviado por DouglasMenger em 04/11/2012 - 18:47h

Amigo leo_jfa,

Quero agradecer por você compartilhar seu conhecimento.

Usei seu artigo para montar um ambiente virtual com o Active Directory e SQUID depois de muitas tentativas consegui e esta funcionando, pretendo implantar na empresa onde trabalho.

Obrigado.

[108] Comentário enviado por carlos.santosdf em 26/02/2013 - 18:58h

Galera VoL Alguem pode me ajudar .... me perdi exatamente nessa parte .... rs


"Quando usamos essa solução integrada ao Windows 2003, temos a necessidade de ativar o serviço WINS (Windows Information Service), que nada mais é que um serviço de DNS da Microsoft.

Em nosso servidor Windows (2003/2008) devemos criar no DNS uma entrada para o nosso servidor de impressão, no exemplo estou usando:

Hostname proxy.dominio.local
Ip: 172.16.10.26 "

quando dou o comando aparece essa erro..

root@DebianServer:/etc/squid# kinit Admistrador@meudominio.com.br
kinit: Client not found in Kerberos database while getting initial credentials


Alguem pode me ajudar ?!?

[109] Comentário enviado por pedregulho87 em 05/06/2013 - 11:43h


[108] Comentário enviado por carlos.santosdf em 26/02/2013 - 18:58h:

Galera VoL Alguem pode me ajudar .... me perdi exatamente nessa parte .... rs


"Quando usamos essa solução integrada ao Windows 2003, temos a necessidade de ativar o serviço WINS (Windows Information Service), que nada mais é que um serviço de DNS da Microsoft.

Em nosso servidor Windows (2003/2008) devemos criar no DNS uma entrada para o nosso servidor de impressão, no exemplo estou usando:

Hostname proxy.dominio.local
Ip: 172.16.10.26 "

quando dou o comando aparece essa erro..

root@DebianServer:/etc/squid# kinit Admistrador@meudominio.com.br
kinit: Client not found in Kerberos database while getting initial credentials


Alguem pode me ajudar ?!?



voce esta usando uma conta de administrador (ex.: carlos.santosdf@gdf.gov.br)? ou como vc escreveu ai ??

[110] Comentário enviado por pedregulho87 em 05/06/2013 - 11:45h

Boa tarde galera... estou com uma duvida tbm....
o erro que retorna eh:

kinit : KDC reply did not match expectations while getting initial credentials

porem jah procurei o erro e nao achei.... alguem pode me ajudar ??

[libdefaults]
default_realm = DPU.GOV.BR
dns_lookup_realm= true
dns_lookup_kdc= true
ticket_lifetime= 24h
forwardable= yes
# The following krb5.conf variables are only for MIT Kerberos.
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true

# The following encryption type specification will be used by MIT Kerberos
# if uncommented. In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.
#
# Thie only time when you might need to uncomment these lines and change
# the enctypes is if you have local software that will break on ticket
# caches containing ticket encryption types it doesn't know about (such as
# old versions of Sun Java).

# default_tgs_enctypes = des3-hmac-sha1
# default_tkt_enctypes = des3-hmac-sha1
# permitted_enctypes = des3-hmac-sha1

# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true

[realms]
DPU.GOV.BR = {
kdc= server1.dpu.gov.br
admin_server= server1.dpu.gov.br
default_domain= DPU.GOV.BR
}


ATHENA.MIT.EDU = {
kdc = kerberos.mit.edu:88
kdc = kerberos-1.mit.edu:88
kdc = kerberos-2.mit.edu:88
admin_server = kerberos.mit.edu
default_domain = mit.edu
}
MEDIA-LAB.MIT.EDU = {
kdc = kerberos.media.mit.edu
admin_server = kerberos.media.mit.edu
}
ZONE.MIT.EDU = {
kdc = casio.mit.edu
kdc = seiko.mit.edu
admin_server = casio.mit.edu
}
MOOF.MIT.EDU = {
kdc = three-headed-dogcow.mit.edu:88
kdc = three-headed-dogcow-1.mit.edu:88
admin_server = three-headed-dogcow.mit.edu
}
CSAIL.MIT.EDU = {
kdc = kerberos-1.csail.mit.edu
kdc = kerberos-2.csail.mit.edu
admin_server = kerberos.csail.mit.edu
default_domain = csail.mit.edu
krb524_server = krb524.csail.mit.edu
}
IHTFP.ORG = {
kdc = kerberos.ihtfp.org
admin_server = kerberos.ihtfp.org
}
GNU.ORG = {
kdc = kerberos.gnu.org
kdc = kerberos-2.gnu.org
kdc = kerberos-3.gnu.org
admin_server = kerberos.gnu.org
}
1TS.ORG = {
kdc = kerberos.1ts.org
admin_server = kerberos.1ts.org
}
GRATUITOUS.ORG = {
kdc = kerberos.gratuitous.org
admin_server = kerberos.gratuitous.org
}
DOOMCOM.ORG = {
kdc = kerberos.doomcom.org
admin_server = kerberos.doomcom.org
}
ANDREW.CMU.EDU = {
kdc = vice28.fs.andrew.cmu.edu
kdc = vice2.fs.andrew.cmu.edu
kdc = vice11.fs.andrew.cmu.edu
kdc = vice12.fs.andrew.cmu.edu
admin_server = vice28.fs.andrew.cmu.edu
default_domain = andrew.cmu.edu
}
CS.CMU.EDU = {
kdc = kerberos.cs.cmu.edu
kdc = kerberos-2.srv.cs.cmu.edu
admin_server = kerberos.cs.cmu.edu
}
DEMENTIA.ORG = {
kdc = kerberos.dementia.org
kdc = kerberos2.dementia.org
admin_server = kerberos.dementia.org
}
stanford.edu = {
kdc = krb5auth1.stanford.edu
kdc = krb5auth2.stanford.edu
kdc = krb5auth3.stanford.edu
master_kdc = krb5auth1.stanford.edu
admin_server = krb5-admin.stanford.edu
default_domain = stanford.edu
}

[domain_realm]
.dpu.gov.br = DPU.GOV.BR
dpu.gov.br = DPU.GOV.BR
.mit.edu = ATHENA.MIT.EDU
mit.edu = ATHENA.MIT.EDU
.media.mit.edu = MEDIA-LAB.MIT.EDU
media.mit.edu = MEDIA-LAB.MIT.EDU
.csail.mit.edu = CSAIL.MIT.EDU
csail.mit.edu = CSAIL.MIT.EDU
.whoi.edu = ATHENA.MIT.EDU
whoi.edu = ATHENA.MIT.EDU
.stanford.edu = stanford.edu
.slac.stanford.edu = SLAC.STANFORD.EDU

[login]
krb4_convert = true
krb4_get_tickets = false

[111] Comentário enviado por snowblack85 em 23/06/2013 - 13:59h


Otimo tutorial.

Fiz tudo seguindo os passos agora na hora de adicionar no domino da certo mas apresenta a mensagem de erro.

root@srvproxy:~# net ads join -U administrador
Enter administrador's password:
Using short domain name -- PRATICA
Joined 'PROXY' to realm 'pratica.local'
DNS Update for proxy.pratica.local failed: ERROR_DNS_UPDATE_FAILED
DNS update failed!


não sei porque tá acontecendo isso já refiz tudo mas sempre da esse erro.

segue as configuração:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd: compat winbind
group: compat winbind
shadow: compat winbind

hosts: files dns
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

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

[global]
workgroup = PRATICA
server string = Servidor Proxy
netbios name = proxy
load printers = no
log level = 5
log file = /var/log/samba/%m.log
max log size = 500
realm = PRATICA.LOCAL
security = ads
auth methods = winbind
password server = 192.168.0.1
winbind separator = +
encrypt passwords = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
unix charset = iso-8859-1
winbind cache time = 15
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
local master = no
os level = 233
domain master = no
preferred master = no
domain logons = no
wins server = 192.168.0.1
dns proxy = no
ldap ssl = no

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

root@srvproxy:~# vi /etc/krb5.conf
[libdefaults]
default_realm = PRATICA.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true

v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true

[realms]
PRATICA.LOCAL = {
kdc = server01.pratica.local
admin_server = server01.pratica.local
default_domain = PRATICA.LOCAL
}

[domain_realm]
.pratica.local = PRATICA.LOCAL
pratica.local = PRATICA.LOCAL


[login]
krb4_convert = true
krb4_get_tickets = false

[logging]

kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
###################################################
/etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

domain pratica.local
search pratica.local
nameserver 192.168.0.1
~



[112] Comentário enviado por leandromoreirati em 25/06/2013 - 21:53h

Prezado snowblack85,

Pode postar seu /etc/hosts, o erro apresentado é de DNS, pode ser que a informação do kerberos esteja divergente do /etc/host que é um serviço de DNS, que o linux consulta antes de ir no resolv.conf.

Att.

[113] Comentário enviado por leooliosi em 28/06/2013 - 15:04h

Boa tarde Leandro,
seguinte cara segui seus passos e funcionou tudo perfeitamente, só que após fazer essa implementação todas as maquinas que possuem windows 7 inclusive meus dois servidores com 2008 ficam com o ponto de exclamação na conexão de rede só que navega e autentica 100%, ao rodar o wireshark noto alguns erros de DNS referente a comunicação do 2008 com o samba...
Gostaria da sua ajuda para resolver este pequeno problema se possível claro.

Grato.

Leonardo Oliosi

[114] Comentário enviado por leandromoreirati em 29/06/2013 - 11:38h

snowblack85, bom dia!

Vou ter que pesquisar, faz 2 anos que não faço esse tipo de configuração, vou ter que subir ambiente para simular.

pode me mandar esse erros de DNS qu esta encontrando no DNS,

[115] Comentário enviado por leandromoreirati em 29/06/2013 - 11:40h

snowblack85, bom dia!

Vou ter que pesquisar, ja tem um tempo que nao uso essas configuração vou ter que subir ambiente para simular.

Pode me mandar esse erros de DNS que encontrou com o wireshark para me ajuar a nortear minhas pesquisas.

Att.


[116] Comentário enviado por thiagopassamani em 26/07/2013 - 13:49h

Tem como autenticar em servidores diferentes? Tipo tenho cinco servidores, se o principal cair fico sem net em todos os outros pontos.

[117] Comentário enviado por patrickpfp em 26/07/2013 - 17:02h

kinit Administrador@CEGCONSULTORIA.COM.BR
kinit: Cannot find KDC for requested realm while getting initial credentials

Não consigo sair daqui, alguem poderia m ajudar?

[118] Comentário enviado por moralu em 02/08/2013 - 15:18h

Dá uma olhada no seu smb.conf
Segue exemplo:
workgroup = dominio
netbios name = hostname do servidor
realm = DOMINIO.COM.BR

[119] Comentário enviado por dsmi em 05/02/2014 - 11:13h

leo_jfa parabéns pelo artigo muito bom

gostaria de esclarecer uma duvida, atualmente utilizo um método mais simples de autenticação, segue a parte do código que trata da autenticação

auth_param basic program /usr/bin/ncsa_auth /etc/squid3/users

acl usuarios_liberados proxy_auth "/etc/squid3/usuarios_liberados"
acl usuarios_diretoria proxy_auth "/etc/squid3/usuarios_diretoria"
acl usuarios_administrativo proxy_auth "/etc/squid3/usuarios_administrativo"
acl usuarios_producao proxy_auth "/etc/squid3/usuarios_producao"

com diferentes níveis de acesso, como por exemplo "acesso total" "acesso a sites não bloqueados" "acesso a sites liberados", gostaria de saber como defino estes níveis de acesso autenticando pelos usuários do AD?

Grato!

[120] Comentário enviado por leandromoreirati em 05/02/2014 - 16:50h

Dsmi,

Estou reescrevendo esse artigo agora para o AD 2012, infelizmente não cheguei ainda nesse ponto mas pelo que eu me lembro você terá de criar os grupos no AD e colocar os usuários nos mesmo, criando as respectivas acl's no squid tipo:

Grupos no AD:

Liberado
Restrito
Diretoria


Depois deve configurar o squid para ler os grupos do AD com a linha abaix:

external_acl_type ldap_group %LOGIN /usr/sbin/squid_ldap_group -R -b "dc=dominio,dc=local" -D cn=squid,cn=users,dc=dominio,dc=local -w password -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=groups,dc=dominio,dc=local))" -h 192.168.0.254

Da uma olhada no artigo abaixo vai te ajudar.

http://www.vivaolinux.com.br/artigo/Squid-autenticando-no-Windows-utilizando-grupos-do-AD

Att

[121] Comentário enviado por W@lyk em 07/02/2014 - 09:11h

Bom dia!
Esse tutorial é excelente e muito funcional. Queria agradece-lo.

Tenho uma dúvida. Se eu uso um SQUID autenticado no AD os micro que estão no domínio funcionam perfeitamente e nem pedem autenticação, vai direto pelo LDAP.
Os micros fora do domínio ficam pedindo usuário e senha, eu coloco meudominio\usuário e digito a senha e mesmo assim não consigo navegar. Já tentei também inserir usuário@meudominio e senha e também sem sucesso.

Queria saber se tem como funcionar tanto para micros do domínio quanto para fora do domínio? Se sim, o que devo alterar no meu SQUID para funcionar?

Desde já agradeço a atenção

[122] Comentário enviado por Juan_sabino em 07/05/2014 - 08:03h

Muito bom dia.
Parabéns por este excelente artigo.

Estou com um pequeno problema.
Meu squid está autenticando no AD do Windows 2008 R2, porém ele não faz de forma automática, ele exibe um prompt para o usuário digitar.

E das duas linhas que fazem autenticação do squid.conf, a que utiliza a seguinte linha não funciona:
"/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"

Somente a segunda linha que funciona normal.

Segue os arquivos de configuração:

squid.conf
http://pastebin.com/0RBr1mja


smb.conf
http://pastebin.com/WgnyhVAM

krb5.conf
http://pastebin.com/pqSpdmbg

winbind
http://pastebin.com/EDYfhxGC

Desde já, obrigado.

[123] Comentário enviado por bruno_ua em 10/07/2014 - 09:55h

Boa Tarde,

Quando faço : "wbinfo -t"

Apareçe o erro:
"could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE
could not obtain winbind domain name!
checking the trust secret for domain (null) via RPC calls failed
failed to call wbcCheckTrustCredentials: WBC_ERR_WINBIND_NOT_AVAILABLE
Could not check secret"

O que fazer???
Ajuda urgente PF

Cumps

Bruno Barbosa

[124] Comentário enviado por morobles em 31/07/2014 - 13:20h

bruno_ua, tive esse mesmo erro com o Windows 2012 R2 que estou homologando, no meu caso foi só adicionar a linha "wins server = IP_DO_AD" no smb.conf

[125] Comentário enviado por nelsonlucas em 13/11/2014 - 08:33h

galera,
fiz todo o processo descrito no tutorial, porem quando eu vou inicializar o meu squid, aparece esse erro

[....] Restarting Squid HTTP Proxy 3.x: squid32014/11/13 05:30:35| ERROR: '0.0.0.0/0.0.0.0' needs to be replaced by the term 'all'.
2014/11/13 05:30:35| SECURITY NOTICE: Overriding config setting. Using 'all' instead.
2014/11/13 05:30:35| aclParseAclList: ACL name 'manager' not found.
FATAL: Bungled squid.conf line 86: http_access allow all manager localhost
Squid Cache (Version 3.1.20): Terminated abnormally.
CPU Usage: 0.012 seconds = 0.000 user + 0.012 sys
Maximum Resident Size: 15440 KB
Page faults with physical i/o: 0
failed!




o que pode ser??

[126] Comentário enviado por akira27jp em 29/12/2014 - 08:58h

Galera, bom dia!
Sou novo no mundo Linux e mais ainda no uso de Squid.
Recentemente um amigo implementou um proxy aqui, usando esse método Squid + kerberos + winbind + samba.
Todos os usuários tecnicamente deveriam se logar de forma transparente, mas isso não tem acontecido e 70% do dia, a janela de popup abre porque a primeira autenticação falha.
Quando isso acontece, dou um wbinfo -t e ele me retorna o seguinte erro:
could not obtain winbind interface details!
could not obtain winbind domain name!

Conversei com esse amigo e ele disse que o problema está no usuário que usamos para dar um join no domínio.
Meu usuário tem alguns direitos administrativos, já que sou adm de rede da localidade, mas não sou Domain admin. Na empresa onde trabalho, já disseram que não darão essa função ao meu user.

Gostaria de saber se algm sabe exatamente qual a role necessária para que o user possa dar um join de forma adequada.

Lembrando que p ticket é gerado, o pessoal se loga por um tempo, mas a confiança é perdida ás vezes.

só pra se ter uma ideia, quando rodamos wbinfo -*g ou -u, ele retorna um erro.


Att


Akira

[127] Comentário enviado por marvinsantos em 09/01/2015 - 16:22h

Boa tarde a todos!

Estou com um problema. Inseri o código para autenticação com o AD sem mostrar a tela de autenticação, mas aparece a tela de autenticação e não autentica com o usuário.

Segue o arquivo squid.conf:

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
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 CONNECT method CONNECT
acl bloqueia url_regex -i facebook
acl AuthorizedUsers proxy_auth REQUIRED

# Autenticacao no Windows 2008
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param ntlm keep_alive on auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hour




http_access allow all AuthorizedUsers
http_access deny bloqueia
# Deny CONNECT to other than secure SSL ports
http_access allow all
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access allow manager

http_access allow localhost
http_access deny !Safe_ports

http_port 3128

# cache_dir is used.
cache_dir ufs /var/spool/squid3 50000 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid3

# Add any of your own refresh_pattern entries above these.

#refresh_pattern ^ftp: 1440 20% 10080
#refresh_pattern ^gopher: 1440 0% 1440
#refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
#refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
# example lin deb packages
#refresh_pattern (\.deb|\.udeb)$ 129600 100% 129600
#refresh_pattern . 0 20% 4320

#Default:
# cache_effective_user proxy
cache_effective_user proxy
cache_effective_group proxy
err_html_text Bloqueado

[128] Comentário enviado por marcelohcm em 23/03/2015 - 12:44h

Quando uso esse método de autenticação, abre popup qd abro o navegador... não era pra ja estar logado no dominio?

# Autenticação no Windows 2008
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl AuthorizedUsers proxy_auth REQUIRED
...
http_access allow all AuthorizedUsers

[129] Comentário enviado por marcelohcm em 25/03/2015 - 11:46h


ninguem??

[130] Comentário enviado por marcelohcm em 06/04/2015 - 16:07h


quando uso o método de autenticação sem popup, não me mostra no nome do usuario no log do squid.
tem como resolver isso?

[131] Comentário enviado por marcelohcm em 24/04/2015 - 11:13h

quando eu faço o comando no terminal:
/usr/lib/squid3/squid_ldap_auth -R -b "dc=dominio,dc=local" -D "cn=Administrador,cn=Users,dc=dominio,dc=local" -w "SENHA_DO_AD" -f sAMAccountName=%s -h ip_do_ad

aparece
ERR missing username...
mesmo com o usuario e a OU certas....

outra: o squid3 que estou usando é o 3.3.8, que não tem o arquivo squid_ldap_auth. O arquivo se chama basic_ldap_auth que está dentro de /usr/lib/squid3. existe diferença entre esses arquivos?

[132] Comentário enviado por marcelohcm em 11/05/2015 - 10:20h

estou em duvida nessa parte:
# Autenticação no Windows 2008
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl AuthorizedUsers proxy_auth REQUIRED
...
http_access allow all AuthorizedUsers


diz que a autenticação é sem popup, mas tem a acl proxy_auth REQUIRED????

não entendi...

[133] Comentário enviado por drummondsp em 20/05/2015 - 12:40h


[130] Comentário enviado por marcelohcm em 06/04/2015 - 16:07h


quando uso o método de autenticação sem popup, não me mostra no nome do usuario no log do squid.
tem como resolver isso?


Estou com o mesmo problema do Marcelo. Se alguém puder dar uma força!!! Agradeço!

[134] Comentário enviado por fabiodurgante em 31/05/2015 - 11:09h

para autenticar no AD do samba4 nao funcionou retirando acl AuthorizedUsers proxy_auth REQUIRED le nunca pede senha, mesmo para maquinas logadas no dominio e maquinas nao logadas no dominio, pelo correto seria maquinas logadas no dominio samba4 nao pedir senha e maquinas nao logadas sempre pedir senha, dessa maneira nao funciona alguem sabe como fazer funcionar ???

[135] Comentário enviado por marcelohcm em 30/07/2015 - 10:26h


depois de muito tempo consegui fazer essa budega de integração funcionar usando ntlm: proxy ubuntu server 14.04 e ad win2008r2
partindo do premissa que ja esta td funcionando: klist, samba no dominio, wbinfo -u e -g listando td que tem no ad.... o que eu estava confundindo é que o ad que tem aqui (que não foi eu quem configurou) possui unidades organizacionais, e não grupos. O wbinfo -g só lista grupos, então criei um grupo chamado acesso_internet e coloquei como membro desse grupo todos os usuários do ad.
no squid.conf, ficou:
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwd
auth_param basic children 5
auth_param basic realm Proxy Squid - Digite suas credenciais
auth_param basic credentialsttl 5 hours
acl autenticados proxy_auth REQUIRED
http_access allow autenticados
external_acl_type acesso_internet %LOGIN /usr/lib/squid3/ext_wbinfo_group_acl
e voalá!!!
a autenticação ficou transparente e o log do squid mostrou os nomes dos usuarios!!!!
a linha que tem o basic_ncsa_auth é pra quem ta fora do dominio, ai vai pedir autenticação.. pra criar o usuario, é: #htpasswd -c /etc/squid3/passwd nomedousuario (o -c é pra criar o arquivo na primeira vez, depois não é mais necessário)
estou usando squid 3.3.8

[136] Comentário enviado por marcelohcm em 03/08/2015 - 10:12h

olá denovo!!!
volto aqui para relatar o que aconteceu depois que reiniciei o proxy... os usuario conectados no dominio pediam user e senha no navegador... achei estranho, não entendi nada.... lembrei que tinha trocado o dono e o grupo da pasta /var/lib/samba/winbindd_privileged para proxy:proxy, sendo que no original estava root:root...
quando coloquei somente o dono dessa pasta como proxy, a autenticação foi transparente, porém o comando wbinfo -t não funciona... e se eu reiniciar o proxy talves o winbind não inicie... portanto tem que fazer essas alterações de dono nessa pasta.


[137] Comentário enviado por joaoafricano em 22/10/2015 - 19:28h

Grande tutorial, sigo esse tutorial toda fez que preciso configurar um proxy con autenticação integrada ao AD.

Desta vez porem a seguinte ACL não esta funcionando direito:
http_access deny POUCO !Liberados

Nesta ACL deveria bloquear todos os sites menos os que esta permitidos em um arquivo a parte, porem não esta liberando nada, esta dando tudo negado. Segue o meu squid.conf

=========================================================================================
http_port 3128

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

acl manager proto cache_object
#acl localnet src 10.0.0.0/8 # RFC 1918 internal network
#acl localnet src 172.16.0.0/12 # RFC 1918 internal network
acl localnet src 192.168.254.0/24 # RFC 1918 internal network
acl localhost src 127.0.0.0/8 # RFC 5735 LoopBack
acl to_localhost dst 127.0.0.0/8
#acl localnet src fc00::/7 # RFC 4193 local private network range
#acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443 448 563 30000
acl ssl_ports port 8443 # Transit do Brasil
acl safe_ports port 8080 # TYSSEN
acl Safe_ports port 88 89 90 91 92 # http intranet bervel
acl Safe_ports port 80 # http
acl safe_ports port 3127 # http cidadao
acl safe_ports port 81
acl safe_ports port 82
acl safe_ports port 83
acl safe_ports port 84
acl safe_ports port 85
acl safe_ports port 202
acl safe_ports port 100
acl safe_ports port 146
acl safe_ports port 443 448 563 1863
acl Safe_ports port 21 # ftp
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-29999 # unregistered ports
acl Safe_ports port 30001-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 CONNECT method CONNECT

# Autenticação no Windows 2008
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 80
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 10 second
acl AuthorizedUsers proxy_auth REQUIRED

# Confere grupo do Ad
external_acl_type ADGroup %LOGIN /usr/lib/squid3/wbinfo_group.pl
acl POUCO external ADGroup NADA
acl PADRAO external ADGroup MEIO
acl TOTAL external ADGroup TUDO

# Regras de restricao e liberacao baseadas em arquivos externos
acl Bloqueados dstdomain -i "/etc/squid3/acls/dominios_bloqueados.txt"
acl Liberados dstdomain -i "/etc/squid3/acls/dominios_liberados.txt"
acl Palavroes url_regex -i "/etc/squid3/acls/palavras_proibidas.txt"
acl URLnegada url_regex -i "/etc/squid3/acls/urls_negadas.txt"
acl URLliberada url_regex -1 "/etc/squid3/acls/urls_liberadas.txt"
#acl media urlpath_regex -i "/etc/squid3/acls/media.txt

acl NOSQUID url_regex -i "/etc/squid3/acls/sites-semcache.txt"
always_direct allow NOSQUID


http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost

http_access allow TOTAL
http_access deny POUCO !Liberados
http_access allow PADRAO !Bloqueados !Palavroes
http_access deny all

============================================================================================

o resto todo esta funcionado a contento, o que posso estar fazendo de errado


[138] Comentário enviado por paulohat em 10/11/2015 - 11:25h


Aqui deu quase tudo certo. Quanto coloco a linha para buscar grupos do AD meu squid pára e recebo o seguinte erro:
2015/11/10 11:04:33 kid1| Finished rebuilding storage from disk.
2015/11/10 11:04:33 kid1| 0 Entries scanned
2015/11/10 11:04:33 kid1| 0 Invalid entries.
2015/11/10 11:04:33 kid1| 0 With invalid flags.
2015/11/10 11:04:33 kid1| 0 Objects loaded.
2015/11/10 11:04:33 kid1| 0 Objects expired.
2015/11/10 11:04:33 kid1| 0 Objects cancelled.
2015/11/10 11:04:33 kid1| 0 Duplicate URLs purged.
2015/11/10 11:04:33 kid1| 0 Swapfile clashes avoided.
2015/11/10 11:04:33 kid1| Took 0.01 seconds ( 0.00 objects/sec).
2015/11/10 11:04:33 kid1| Beginning Validation Procedure
2015/11/10 11:04:33 kid1| Completed Validation Procedure
2015/11/10 11:04:33 kid1| Validated 0 Entries
2015/11/10 11:04:33 kid1| store_swap_size = 0.00 KB
2015/11/10 11:04:33 kid1| WARNING: grupo_AD #1 exited
2015/11/10 11:04:33 kid1| Too few grupo_AD processes are running (need 1/5)
2015/11/10 11:04:33 kid1| Closing HTTP port 192.168.1.250:3128
2015/11/10 11:04:33 kid1| storeDirWriteCleanLogs: Starting...
2015/11/10 11:04:33 kid1| Finished. Wrote 0 entries.
2015/11/10 11:04:33 kid1| Took 0.00 seconds ( 0.00 entries/sec).
FATAL: The grupo_AD helpers are crashing too rapidly, need help!

Squid Cache (Version 3.3.8): Terminated abnormally.
CPU Usage: 0.028 seconds = 0.016 user + 0.012 sys
Maximum Resident Size: 76544 KB
Já pesquisei demais na internet, mas não achei nada a respeito.
Desde já agradeço.l

[139] Comentário enviado por dbcazon em 21/07/2016 - 15:43h

Boa tarde,

Pessoal, eu implementei essa solução em um ambiente de teste. Um firewall Debian, um Servidor 2012 R2 e uma estação Win10.
Minha dúvida é sobre o pop-up, ele não está aparecendo, como posso confirmar que está correta a configuração, buscar algum log?
Aqui o Leo não aborda o Iptables, eu fiz uma configuração para poder liberar a net, são duas placas no Firewall, uma para a rede interna e outra para a rede externa.

No modo sem pop-up como posso verificar se está funcionando tbm?

Obrigado desde já pessoal.

[140] Comentário enviado por gustavo0904 em 22/04/2017 - 00:30h

Ola , amigo tudo bem ?

tentei fazer algumas adptações ao squid.conf na minha empresa , porem fica solicitando a senha toda hora pra navegar

segue abaixo o meu squid.conf

sera que voce consegue me ajudar ?


# Squid normally listens to port 3128
http_port 3128
# preferencia entre ipv6 e ipv4
dns_v4_first on
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid3 100 16 256
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid3
# Visible Hostname
visible_hostname srvspoxvproxy01.mlsf.infra

# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 128.1.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
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 8002 # CPJ Embracon
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl Safe_ports port 8443 # HTTPS - Mercedes Benz
acl Safe_ports port 43843 # VNC
acl Safe_ports port 43844 # VNC
acl Safe_ports port 43845 # VNC
acl Safe_ports port 8086 # ICAPTO
acl purge method PURGE
acl CONNECT method CONNECT

#######################################################
# Recommended minimum Access Permission configuration:#
# #
# Deny requests to certain unsafe ports #
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports #
http_access deny CONNECT !SSL_ports
# Only allow cachemgr access from localhost #
http_access allow localhost manager
http_access deny manager
#######################################################
#########################################################################
# Example rule allowing access from your local networks. #
# Adapt localnet in the ACL section to list your (internal) IP networks #
# from where browsing should be allowed #
# http_access allow localnet #
http_access allow localhost
#########################################################################

###########################################################################################################
############### CONFIGURAÃS DE SITENS SEM AUTHENTICAÃ AQUI ##############################################
############### ACLS ######################################################################################
acl java_app browser Java/1.4 Java/1.5 Java/1.6 Java/1.7 Java/1.8 Java/1.9;
acl java_vm browser regexp -i Java;
acl java urlpath_regex -i \.class$ \.jar;
acl libjava url_regex javadl-esd.sun.com/*
acl liberados_SA dstdom_regex -i "/etc/squid3/perez/liberado_semautenticacao"
###########################################################################################################
############### PERMISSAO DE SITES SEM AUTHENTICAÇO AQUI #################################################
http_access allow java
http_access allow java_app
http_access allow java_vm
http_access allow libjava
http_access allow liberados_SA
###########################################################################################################
###########################################################################################################
# Metodo de autenticacao #
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 200
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic realm Squid Proxy - Cache de Internet perez
auth_param basic credentialsttl 8 hours
auth_param basic children 60
auth_param basic credentialsttl 8 hours
external_acl_type grupo_ad %LOGIN /usr/lib64/squid/ext_wbinfo_group_acl
###########################################################################################################
##################################################################
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS #
##################################################################
###############################
# ACL's Active Directory AQUI #
###############################
acl ad_intoperacao external grupo_ad intoperacao

#########################
# ACL's Permissoes AQUI #
#########################
acl acesso_intoperacao_dominio dstdomain "/etc/squid3/intoperacao_dominio"
#####################################
# Regras de permissao/bloqueio AQUI #
#####################################
#REGRAS DE LIBERAÃO
http_access allow all Safe_ports ad_intoperacao

#REGRAS DE BLOQUEIO
# And finally deny all other access to this proxy
http_access deny all


[141] Comentário enviado por supportware em 23/07/2017 - 21:08h

Na hora de testar, o comando kinit, conforme abaixo:

# kinit Administrador@DOMINIO.LOCAL

No meu não rolou! procurei nos comentários e não consta o mesmo problema:

kinit: Cannot contact any KDC for realm 'DOMAIN.LOCAL' while getting initial credentials.

Alguém dá uma luz aí, desde já vlw!

[142] Comentário enviado por SK5_RJ em 23/04/2018 - 16:47h

Olá, colocou o domínio em caixa alta? O Administrador está em português? Aqui, de primeira não funcionou, então coloquei em letra maiúscula como no artigo e foi.

[141] Comentário enviado por supportware em 23/07/2017 - 21:08h

Na hora de testar, o comando kinit, conforme abaixo:

# kinit Administrador@DOMINIO.LOCAL

No meu não rolou! procurei nos comentários e não consta o mesmo problema:

kinit: Cannot contact any KDC for realm 'DOMAIN.LOCAL' while getting initial credentials.

Alguém dá uma luz aí, desde já vlw!


[143] Comentário enviado por SK5_RJ em 23/04/2018 - 16:50h

Parabéns pelo artigo!!

Alguém tem conseguido efetuar todos os procedimentos? O WINBIND no Debian 9 não possui a linha especificada.
chgrp proxy $PIDDIR/winbindd_privileged/ || return 1




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts