Autenticação "transparente" com pfsense + squid + active directory
-
Então, olá para todos, boa noite.
Bem eu estou a procura exatamente disso, fazer o ntlm funcionar no squid do pfsense. Abri até um tópico para isso.
Lí o arquivo abaixo, mas parece que o ambiente é diferente.
Eu preciso instalar todos esses pacotes, mesmo na distribuição no pfSense ?
Ou basta alterar esses arquivos ?
Seria interessante nos ajudar, já que voce já conseguiu fazer funcionar …
-
Filipe,
Juntando tudo em um único post, fica assim:
Instale os pacotes no seu pfsense através da console/ssh respeitando a plataforma instalada e por garantia, copie algumas libs necessárias para gssapi e kerberos que não estão incluídas no pfsense
i386
pkg_add -r http://e-sac.siteseguro.ws/packages/8/All/samba36-3.6.3.tbz pkg_add -r http://e-sac.siteseguro.ws/packages/8/All/heimdal-1.4_1.tbz cd /usr/local/lib fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libasn1.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libgssapi.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libheimntlm.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libhx509.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libkrb5.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libroken.so.10
amd64
pkg_add -r http://e-sac.siteseguro.ws/packages/amd64/8/All/samba36-3.6.3.tbz pkg_add -r http://e-sac.siteseguro.ws/packages/amd64/8/All/heimdal-1.4_1.tbz cd /usr/local/lib fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libasn1.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libgssapi.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libheimntlm.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libhx509.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libkrb5.so.10 fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libroken.so.10
Siga este tutorial antigo com o squid do pfsense instalado acertando os caminhos de pastas/comandos por conta da divergência entre os sistemas operacionais.
/etc/krb5.conf está ok
mude /var/kerberos/krb5kdc/kdc.conf para /var/heimdal/kdc.conf
mude /var/kerberos/krb5kdc/kadm5.acl para /var/heimdal/kadm5.acl
mude gpasswd -a proxy winbindd_priv para chgrp proxy /var/db/samba/winbindd_privilegedQuando estiver com o pfsense no domínio e conseguindo fazer os testes via kinit/klist e wbinfo -t, acesse:
services -> proxy server -> general settings -> custom options
e cole estas linhas
auth_param ntlm program /usr/local/bin/ntlm_auth --use-cached-creds --helper-protocol=squid-2.5-ntlmssp;auth_param ntlm children 30;auth_param ntlm keep_alive on;acl password proxy_auth REQUIRED;http_access allow password
Agora no cliente, basta marcar o proxy no browser.
NOTA IMPORTANTE PARA WINDOWS 7
No windows 7 são implementadas uma série de novas politicas de segurança , uma delas inclusive barra a autenticação transparente que usamos em nossos proxys. Para resolver este problema siga este pequeno manual que orienta como dever ser feita esta liberação
Antes de mais nada , para rodar este procedimento é necessário que você seja administrador da máquina local.
Execute o Execute o comando "gpedit.msc" e navegue na arvore seguindo esta sequencia:-
Diretiva computador local
-
Configurações do windows
-
Configurações de segurança
-
Diretivas locais
-
Opções de segurança
-
Segurança de rede: nível de autenticação lan manager
-
Marque a opção: enviar lm e ntlm - usar nivel de segurança NTLMv2
att,
Marcello Coutinho -
-
Ok, muito obrigado pela atenção. ;D
Vou fazer os testes já agora, e posto aqui os resultados ….
-
Marcelo, o primeiro arquivo quando fui procurar, não achei …
/etc/krb5.conf está ok
Voce escreveu que está ok, significa que preciso criá-lo ?
Essa parte de atentar para mudança, não entendi muito bem, quer dizer que no tutorial, onde estiver esses nomes, o caminho dos arquivos será diferente por causa da versão, mas o conteudo devemos alterar de acordo com o tutorial ?
O arquivo smb.samba.conf tambem está aparecendo como novo.
-
Marcelo, o primeiro arquivo quando fui procurar, não achei …
/etc/krb5.conf está ok
Voce escreveu que está ok, significa que preciso criá-lo ?
Isso mesmo
Essa parte de atentar para mudança, não entendi muito bem, quer dizer que no tutorial, onde estiver esses nomes, o caminho dos arquivos será diferente por causa da versão, mas o conteudo devemos alterar de acordo com o tutorial ?
certo denovo, onde voce encontrar no doc a referencia para /var/kerberos/krb5kdc/kdc.conf leia e configure como /var/heimdal/kdc.conf
O arquivo smb.samba.conf tambem está aparecendo como novo.
procure o arquivo com este comando
find / -name smb.conf
Não estou perto da maquina agora para conferir o caminho. -
Ok, os que não achei, fui criando segundo seu caminho, os que achei, editei conforme o tutorial. Mas antes de inserir o pf no dominio, o comando kinit está dadno "not found".
Seguem abaixo os conteúdos dos meus arquivos com a minhas configurações tentando seguir o tutorial.
Estou fazendo em um ambiente virtual, antes de por em produção
Ip do meu pdc = 192.168.15.2
nome do meu PDC = pdc001
OS do pdc = W2K8R2 x64
FQDN do dominio = virtual.local
Nome Admin = Administrator
senha admin = 1@abcde/usr/local/etc/smb.conf
[global]
netbios name = pdc001
workgroup = virtual
realm = virtual.local
server string = Domain Proxy Server
encrypt passwords = yes
security = ADS
password server = pdc001.virtual.local
log level = 3
log file = /var/log/samba/%m.log
max log size = 50
socket options = TCP_NODELAY SO_SNDBUF=8192
printcap name = /etc/printcap
preferred master = no
dns proxy = no
ldap ssl = no
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = yes
cups options = raw/etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/ksadmind.log
[libdefaults]
default_realm = virtual.local.
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
default_tgs_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
default_tkt_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
preferred_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
[realms]
virtual.local = {
kdc = pdc001.virtual.local.:88
admin_server = pdc001.virtual.local.:749
default_domain = domain.
}
[domain_realm]
.domain. = virtual.local.
domain. = virtual.local.
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}/var/heimdal/kdc.conf
[kdcdfefaults]
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
v4_mode = noreauth
[libdefaults]
default_realm = virtual.
[realms]
virtual. = {
master_key_type = des-cbc-crc
supported_enctypes = des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
des-cbc-crc:v4 des-cbc-crc:afs3
}/var/heimdal/kadm5.acl
*/administrator@virtual.local * -
Depois que você instalou o heimdal e o samba você fez um logoff em seguida logon para ele atualizar o path dos binários?
-
Depois que você instalou o heimdal e o samba você fez um logoff em seguida logon para ele atualizar o path dos binários?
Ops, não.
Estou reiniciando …
-
Só um logoff na console já resolve, não precisa de boot. ;)
-
Só um logoff na console já resolve, não precisa de boot. ;)
Ok, confesso, não sei como fazer logoff no pfsense, mas já tá reiniciado. Vou tentar o kinit agora …
-
Ok, confesso, não sei como fazer logoff no pfsense, mas já tá reiniciado. Vou tentar o kinit agora …
Sem problema :). Para fazer o logoff basta digitar exit
-
agora recebo o seguinte erro:
kinit: krb5_get_init_creds: unable to reach any KDC in realm virtual.local
teria alguma coisa a ver com colocar o ip no arquivo hosts para ele achar ?
editado
coloquei o seguinte conteudo no meu /etc/hosts
127.0.0.1 localhost localhost.localdomain
192.168.15.101 pfsense.localdomain pfsense
192.168.15.2 pdc001.virtual.local pdc001mas mesmo assim, o erro permanece …
-
Tentei ignorar esse passo, e dar o join
net ads join -U Administrator@virtual.local
retorna a seguinte mensagemkinit succeeded but ads_sasl_spnego_krb5_bind failed: Invalid credentials
Failed to join domain: failed to connect do AD: Invalid credentials -
Não vejo a hora de arrumar tempo pra testar o ambiente!
-
Não vejo a hora de arrumar tempo pra testar o ambiente!
Estou tentando com pf 2.0.1 e Windows 2008 Server R2 …
marcelloc, o seu ambiente era esse mesmo ?
-
Como devo substituir essa linha do tutorial ?
password server = ad-master.domain.com.au
eu fiz assim, mas fiquei na dúvida
password server = pdc001.virtual.local
-
filipe.nanclarez,
Marque o dns do firewall com o ip do ad, o samba/kerberos precisam saber quem são os hosts do seu domínio.
-
filipe.nanclarez,
Marque o dns do firewall com o ip do ad, o samba/kerberos precisam saber quem são os hosts do seu domínio.
sim sim, eu já tinha feito, inclusive testei na tela "diagnostics>ping" com o nome e como ip pra saber se estava ok …
alterei algumas coisas nos arquivos que acredito que estavam erradas (eu não interpretei direito) agora está dando "Password incorrect" tem alguma coisa a ver com ser 2008 server ? Nesse site, diz que precisa ser outra config pra o 2008 server ....
http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory
-
Você pode seguir o tutorial ntlm mais atual do site do squid sem problemas. Toma cuidado só com a questão da localização das pastas.
-
Você pode seguir o tutorial ntlm mais atual do site do squid sem problemas. Toma cuidado só com a questão da localização das pastas.
então, usei ele só para verificar como deveria fazer as substituições dos valores, mas estou seguindo o seu pra não bagunçar aqui.
estou recebendo o primeiro erro novamente (depois de arrumar o dns, e acertar o ntp):
kinit: krb5_get_init_creds: unable to reach any KDC in realm virtual.local
no join, retorna:
Failed to join domain: failed to connect to AD: Operations error
tentei olhar nos não estou achando os arquivos dos logs pra verificar … ???