Pfsense + Squid + NTLM (Autenticação AD transparente)
-
Obrigado pela resposta LFCavalcanti, qual sua recomendação no caso de uma rede com AD? Queria usar o Squid 2.7 + SquidGuard para autenticar por grupos do AD, mas acho que vou acabar criando algo independente do AD, o que acham?
Eu tenho 3 clientes rodando nesse cenário atualmente, ambos com ACL baseada em grupos no SquidGuard.
Você só precisa usar queries para buscar os grupos no AD, como essa:
ldapusersearch ldap://192.168.0.1:3268/DC=dominio,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=INTERNET%2cOU=Grupos%2cDC=dominio%2cDC=local))
No código acima, o grupo do Squid irá incluir usuários do Grupo "INTERNET" que fica na OU "Grupos" no controlador do dominio "dominio.local".
Me diga uma coisa, nesses seus clientes você possui quais pacotes? Squid, SquidGuard apenas? Não fez o patch do samba? É isso? Se tiver um tempo pra explicar pra gente como é o cenário e a implantação ficaríamos agradecidos, pelo menos para nos dar um norte…
Com certeza fez, já que para funcionar o ntlm precisa do samba+kerberos.
-
o tutorial na primeira página do tópico ainda funciona NA VERSÃO TESTADA. O pessoal tem que se atentar a isto.
Na 2.2 muda o pacote samba, o processo é outro.
-
Bom dia a todos,
realmente na versão 2.2.X e superiores não esta funcionando.Também testei em versões x64 ( 2.1.5 ) e não foi ….
Uma informação para futuros problemas, sempre lembrar de verificar o nome do grupode ad ( wbinfo - g > grupo ), por vezes mesmo configurando o nome todo em maiusculas, o squid busca e traz o nome em minusculas ....
logo, a conf de grupo do squidguard deve estar com o nome do grupo conforme for exibido no comando acima. -
Também estou com o mesmo problema….
Segui esse tutorial (http://www.dev2infra.com/pfsense-squid-squidguard-autenticacao-transparente/) em varias instalações de Pfsense 2.1.5 amd64 sem problemas. Estão todos funcionando normalmente.
Porem estou querendo usar o Pfsense 2.2.1 e seguindo o mesmo tutorial apresenta o mesmo erro:
"Fatal error: Call-time pass-by-reference has been removed; If you would like to pass argument by reference, modify the declaration of validate_form_samba3(). in /usr/local/www/pkg_edit.php(147) : eval()'d code on line 1"
Pesquisei um pouco sobre o erro e encontrei varias pessoas dizendo ser sobre a atualização do PHP.
Não tenho muito conhecimento sobre PHP então não consigo ajudar muito.Com os problemas listados pelo LFCavalcanti acredito que a atualização desse pacote não é uma coisa muito fácil e provavelmente vai demorar um pouco.
Estou com um ambiente de teste com Pfsense 2.2.1 + Squid3 + Squidguard rodando normalmente, falta só a integração com AD.
Com as ferramentas de hoje, como podemos criar um ambiente com Pfsense 2.2 + Squid + Squidguard + Autenticação AD que seja o mais transparente possível para o usuário final??
Alguém já usa um ambiente desse com Pfsense 2.2??
-
Boa Tarde, alguém sabe onde os patch estão, dev2infra ta fora.
-
Não se ajuda, mas em todo caso:
https://github.com/pszafer/SambaForFreeradiusPFSENSE -
Obrigado, mais preciso do que tinha o dv2infra, já tinha implantando num servidor de teste e tinha funcionado, mais sai de ferias e conseguiram deletar minha VM de teste, agora preciso implementar mais não tenho onde baixar mais.
-
Quando uso o comando net ads join -U administrador dá a mensagem de erro. net: Command found o que faço para corrigir.
Obrigado. -
Quando uso o comando net ads join -U administrador dá a mensagem de erro. net: Command found o que faço para corrigir.
Obrigado.Provavelmente o teu samba nao veio com o ads compilado (aconteceu comigo). Veja nos logs se e isso mesmo.
-
ja tem o pacote pronto para 2.4.2 ou 2.3.5?
-
Alguma previsão para a versão 2.4.4 ?
-
@julianoxt tem sim... até a versão 2.4.3 segue o link com o passo a passo.
https://pf2ad.mundounix.com.br/pt/index.html -
com a atualização parou de funcionar o squid e tive que reinstalar, porém sem autenticação transparente. Nem instalando a versão 2.4.3 não rola a instalação do squid.
To preso na 2.4.4 sem autenticação no samba4 (NTLM)
existe alguma outra ofrma de por pra funcionar com NTLM (autenticação transparente)? -
Não seria melhor utilizar autenticação SSO por Kerberos? Já que não precisa utilizar nenhum pacote extra?
SETSPN:
Criar usuário svc_quid no AD
C:\WINDOWS\system32>setspn -S HTTP/pfsense.local.lan svc_squid
Verificando o domínio DC=local,DC=lanDepois, através do samba-tools, ou através diretamente do AD, através do ktpass
sudo samba-tool domain exportkeytab mykeytab.keytab --principal=HTTP/pfsense.local.lan
Squid:
acl whitelist dstdomain .local.lan
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -k /usr/local/etc/squid/mykeytab.keytab
auth_param negotiate children 100
auth_param negotiate keep_alive on
http_access allow whitelist
acl auth proxy_auth REQUIRED
http_access deny !auth
http_access allow authSquidguard
ldapusersearch ldap://raspsrv.local.lan:3268/dc=local,dc=lan?userPrincipalName?sub?(&(memberof=CN=internet_group%2cCN=Users%2cDC=local%2cDC=lan)(userPrincipalName=%s))
Depois de configurado, loguem novamente no AD, e chamem o proxy pelo nome, ele deve associar ao ticket kerberos.
Digitem klist no CMD do DOS para ver se ele foi adicionado corretamente.Maiores detalhes:
https://journeyofthegeek.com/2017/12/30/pfsense-squid-kerberos/
-
@mcury
Meu DC é samba4 vou pesquisar se encontro um guia pra ele, vlw pela dica -
Olá Fabio,
Esse tutorial que pus ali em cima, funciona para samba 4.
Funciona em AD de servidor Windows tambem. -
quando vou criar o keytab me retorna esse erro:
ktpass : O termo 'ktpass' não é reconhecido como nome de cmdlet, função, arquivo de script ou programa
operável. Verifique a grafia do nome ou, se um caminho tiver sido incluído, veja se o caminho está
correto e tente novamente.
No linha:1 caractere:1- ktpass -out c:\pfsense.keytab -princ HTTP/pfsense.dominio.lan@DOMINIO ...
Estou tentando pelo CMD no windows (membro do dominio)
-
O seu comando ktpass está igualzinho lá no link que eu passei?
https://journeyofthegeek.com/2017/12/30/pfsense-squid-kerberos/Caso queira dar uma aprofundada no ktpass:
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpassCaso não funcione pelo ktpass, voce pode extrair a chave utilizando o samba-tools:
Abaixo segue o comando que eu usei no meu domínio:sudo samba-tool domain exportkeytab mykeytab.keytab --principal=HTTP/pfsense.local.lan
Quando fiz esse comando, o meu samba 4 era o domain controller
Depois copiei a chave para a pasta do pfsense /usr/local/etc/squid/mykeytab.keytab -
@mcury
Obrigado pelas dicas.
Eu fiz pelo samba-tools, mas agora o navegador fica solicitando login infinitamente.
não importa o que eu use ele fica solicitando e não deixa navegar.usei: samba-tool domain exportkeytab pfsense.keytab --principal=HTTP/pfsense.dominio.lan
qual seria o comando pra gerar o spn no samba-tools? vou tentar fazendo tudo por ele.
squid ficou assim:
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -d -k /usr/local/etc/squid/pfsense.keytab
auth_param negotiate children 1000
auth_param negotiate keep_alive on
acl auth proxy_auth REQUIRED
http_access deny !auth
http_access allow authps.: o PC pfsense precisa estar adicionado ao dominio?
antes com o pf2ad ele adicionava e agora q não tem não está adicionado. -
Olá Fabio, o pfsense não precisa estar no domínio.
O que aparece nos logs do Squid/Squidguard durante os acessos?O comando que eu utilizei foi exatamente esse:
sudo samba-tool domain exportkeytab mykeytab.keytab --principal=HTTP/pfsense.local.lan
Você configurou o krb5.conf no /etc/ do samba server?
Ele também precisa ser configurado conforme no link que te mandei.Eu infelizmente agora não estou em casa, mas assim que chegar copio o meu krb5.conf aqui pra ajudar.
Teste inicialmente um usuário com uma senha simples (sem caracteres especiais), e se possível, que seja membro de um grupo de AD onde o caminho da arvore não tenha espaços ou caracteres especiais.
Isso me atrapalhou bastante no inicio.
Até breve