Pfsense + Squid + NTLM (Autenticação AD transparente)



  • Tá chegando… to terminando o package com o samba4 que dentre outras coisas vai poder se conectar como "MEMBER" de uma rede Active Directory e autenticar o proxy de forma transparente via ntlm, ou seja, adeus aos popups de autenticação no broswer !



  • Vida longa ao software livre! Desta forma reduzimos em vários passos os tutoriais para ter o ntlm no squid do pfsense.

    Parabén de novo!  :)



  • Lindo, lindo e lindo!  :D

    Parabéns, Guga!



  • Sem dúvida uma grande feature Luiz…

    Parabéns novamente pelo trabalho! ;)

    Abraços!
    Jack



  • É real isso?  :o :o :o

    Brincadeira. ;D

    Parabéns, é uma feature que concerteza vai acrescentar e muito no PFSense.

    Perguntinha, essa compilação do Samba e do Squid, você conseguiu que faça parte da árvore oficial?



  • @LFCavalcanti:

    É real isso?  :o :o :o

    Brincadeira. ;D

    Parabéns, é uma feature que concerteza vai acrescentar e muito no PFSense.

    Perguntinha, essa compilação do Samba e do Squid, você conseguiu que faça parte da árvore oficial?

    Opa !! funciona !, inclusive já tenho vários ambientes em produção com ele e como Domain Controller também ;) Eu só não tenho ainda a gui completa de configuração. Mas que já esta em desenvolvimento -> https://www.diigo.com/item/image/3lt7m/bw9t

    E sim.. a compilação do samba4 é da base de ports do Freebsd (já esta disponível no ports do projeto) e vai entrar na lista de packages do pfsense (eu tenho commit no projeto)

    Algumas coisas eu trato como patch (exemplo do squidguard) por alterarem muito a estrutura do package, dai então eu preciso da permissão do autor do package para que isso possa ser validado, além de claro, ser testado para virar oficial.

    Uma outra coisa que vale salientar, é em relação ao uso do Active Directory no pfsense, principalmente quando ele atua como Domain Controller… Existe a questão de não usar isso em um ambiente de firewal ou como UTM. Pois bem... com esse pacote, considere o uso do Pfsense como uma instalação nova no seu ambiente de rede para atuar como um Controle de dominio (além do seu habitual firewall pfsense em outro hardware). Isso mesmo, o Pfsense atuando também como um serviço a mais na rede e com todo o poder que as ferramentas nativas dele pode oferecer !

    Abraços



  • Boa noite á todos!

    Novidades?

    Grato,
    Cabeça.



  • @Cabeça:

    Novidades?

    Olá, então.. eu to dando conta aqui das minhas demandas e ainda não tive tempo hábil para terminar a gui, mas boa parte dela esta funcional, são mais questões de detalhes e acertos, assim como testes.

    Assim que a gui estiver funcional, eu subo na git do projeto para dispor no pfsense.

    A principio, segue um screencast que fiz sobre ele:

    http://www.youtube.com/watch?v=YhlURO2U_0E

    Lembrando que a estrutura de funcionamento do samba4 e ntlm já esta totalmente funcional no pfsense, inclusive eu tenho clientes com elas em produção via consultoria.

    Quanto a filtragem via squidguard, eu fiz um patch que esta funcional, eu disponibilizei aqui no fórum:

    http://forum.pfsense.org/index.php/topic,59242.0.html

    Abraços



  • Obrigado, Luiz Gustavo!

    Assim como a estrutura, o Gui também está ficando show de bola. Mais uma vez, meus parabéns!

    Grato,
    Cabeça.



  • olá!

    Falando sobre a topologia de serviços.

    Eu tenho vários clientes que já possuem dominios no Active Directory.

    Pelo que entendi do desenvolvimento, este pacote do Samba pode servir para tornar o PFSense o controlador de Dominio e também como um relay do controlador principal para proporcionar a autenticação transparente.

    Entendi corretamente?



  • @LFCavalcanti:

    olá!

    Falando sobre a topologia de serviços.

    Eu tenho vários clientes que já possuem dominios no Active Directory.

    Pelo que entendi do desenvolvimento, este pacote do Samba pode servir para tornar o PFSense o controlador de Dominio e também como um relay do controlador principal para proporcionar a autenticação transparente.

    Entendi corretamente?

    Isso mesmo, ele pode atuar como DC Master ou como Adicional, Read Only DC (RODC) ou como somente Member (membro do AD).

    Este último com o objetivo de poder suprir a autenticação NTLM e/ou ainda dispor de disponibilizar compartilhamento de arquivos

    Pense em um cenário que você tenha filiais ligadas sobre uma vpn e você queira por exemplo colocar a rede local no AD com um DC ou RODC local (sincronizando a arvore com o master, podendo ser outro samba ou mesmo um windows 2003/2008). Com esse pacote você poderá implementar isso diretamente no pfsense.



  • Holy Mother!

    Juro que até junho desse ano faço uma doação pra você e pro Marcelloc…

    Perfeito isso, já vejo as possibilidades. Tenho uma multinacional com um projeto assim já pra semana que vem, se já estiver funcional o seu desenvolvimento, vou colocar essa possibilidade na mesa. Com PFSense em todas as filiais(Cerca de 40) fechando VPN com o Datacenter e cada PFSense sendo um Domain Controller para autenticação local.

    É possivel montar um catalogo global local? Assim se cair a VPN os usuários ainda podem se autenticar...

    Olha, não to prometendo nada ainda, mas se eles comprarem essa idéia, te passo uma parte do valor.



  • @LFCavalcanti:

    Holy Mother!

    Juro que até junho desse ano faço uma doação pra você e pro Marcelloc…

    Perfeito isso, já vejo as possibilidades. Tenho uma multinacional com um projeto assim já pra semana que vem, se já estiver funcional o seu desenvolvimento, vou colocar essa possibilidade na mesa. Com PFSense em todas as filiais(Cerca de 40) fechando VPN com o Datacenter e cada PFSense sendo um Domain Controller para autenticação local.

    É possivel montar um catalogo global local? Assim se cair a VPN os usuários ainda podem se autenticar...

    Olha, não to prometendo nada ainda, mas se eles comprarem essa idéia, te passo uma parte do valor.

    oba !!! :D

    Então, em relação ao catalogo globoal… se você configurar como um DC (Não master) ou como RODC, ele vai sincronizar a base local da arvore com o master, se for um DC, pode até fazer alterações locais e assim que ele consiga comunicação com os outros DC's ele sincroniza a base (senhas, usuários novos, etc...)

    A maior vantagem é o licenciamento, adeus as CAL's !!!



  • Grande Luiz Gustavo! Kudos!



  • Simplesmente Fantástico!

    Aguardando ansiosamente o decorrer do projeto!



  • Dois…  ;D

    Grato,
    Cabeça.



  • três !!!



  • Bom dia,

    quem quiser fazer testes com a funcionalidade do samba4 atuando como membro de um AD e fazendo autenticação transparente com o ad via ntlm, pode implementar o pacote pelo o script abaixo (via execução de comando -> Diagnostics: Execute command):

    fetch -o - -q http://www.mundounix.com.br/~gugabsd/pfsense/teste/samba-teste-amd64.sh | sh

    Isso ai vai instalar o samba4 e um monte de parafernalha para funcionar… não se preocupe, depois de rodar isso, vai aparecer a opção Samba4 no menu services e a opção de autenticar via ntlm no squid. (para funcionar, instale o squid 2 primeiro, antes de rodar esse script)

    Por enquanto, funcional 100% é ele atuar como MEMBER, as outras estou desenvolvendo, principalmente parte para atuar como servidor AD.

    MAS ATENÇÃO, PELO O AMOR DE NOSSO PAI !!! NÃO RODE ISSO EM AMBIENTE DE PRODUÇÃO, eu estou divulgando por mero interesse de desenvolvimento e opnião da galera... Se precisar colocar isso em produção para ontem, contate-me via consultoria ;)



  • grande luiz,

    parabens.

    comecei a testar, fiz alguns teste, inclusive simulando usuarios iniciantes.. eu escolhi a opção

    "member of domain" e fui direto para aba "share" ai ocorreu o seguinte erro

    Warning: fopen(/usr/local/pkg/samba4_shares.xml): failed to open stream: No such file or directory in /etc/inc/xmlparse.inc on line 175
    
    Warning: Invalid argument supplied for foreach() in /usr/local/www/pkg_edit.php on line 423
    

    ps: claro que o correto seria que os dados da aba server role, estivesse preenchido.. mas é uma simulação

    mantunespb



  • @mantunespb:

    grande luiz,

    parabens.

    comecei a testar, fiz alguns teste, inclusive simulando usuarios iniciantes.. eu escolhi a opção

    "member of domain" e fui direto para aba "share" ai ocorreu o seguinte erro

    Warning: fopen(/usr/local/pkg/samba4_shares.xml): failed to open stream: No such file or directory in /etc/inc/xmlparse.inc on line 175
    
    Warning: Invalid argument supplied for foreach() in /usr/local/www/pkg_edit.php on line 423
    

    ps: claro que o correto seria que os dados da aba server role, estivesse preenchido.. mas é uma simulação

    mantunespb

    Nem tudo são flores rsrsrsrs e ainda to mexendo nas espinhas das flores.

    Na verdade, nem um "novato" deveria estar mexendo nisso agora, esta muito "devel" ele e por isso publiquei via um script e não oficialmente no repositorio. Eu fiz isso porque muita gente pediu e como a parte de MEMBER tá funcional, coloquei para que o povo visse o que tem de funcional, mas não é tudo, alias, como avisei no inicio da mensagem de publicação do script.

    Esses erros são normais agora ;)



  • cara fiz o teste com samba assim achei muito legal mais será que não teria o pacote já finalizado aii não
    sera que com ele eu conseguiria fazer tipo a validação dos usuário logado local na maquina com squidguardan para fazer os bloqueios e liberações de acesso porq hj eu utilizo o serviço de identd para fazer essa liberação e bloqueio na minha rede so que não esta funcionando 100% será que com samba seria possível ou teria uma outra ideia melhor para esse problema pois pelo que eu verifique o squid e o squidguardian não consultam o usuário das maquinas dai não tem como ele saber se o usuario esta ou não no grupo do ad…  :-[





  • Como faço para instalar na versão 2.1??????

    já tem pacote funcionando?????



  • Procure o pbi bi repositório do luis.



  • Achei em:

    http://www.mundounix.com.br/~gugabsd/pfsense/pbi-2_1/

    instalação ok.

    quando é feito a execução do samba-tool, da o seguinte erro:

    [2.1-RELEASE][admin@pfSense.localdomain]/root(2): samba-tool
    Traceback (most recent call last):
      File "/usr/pbi/samba4-amd64/bin/samba-tool", line 33, in <module>from samba.netcmd.main import cmd_sambatool
      File "/usr/pbi/samba4-amd64/lib/python2.7/site-packages/samba/netcmd/main.py", line 24, in <module>from samba.netcmd.delegation import cmd_delegation
      File "/usr/pbi/samba4-amd64/lib/python2.7/site-packages/samba/netcmd/delegation.py", line 23, in <module>from samba import provision
      File "/usr/pbi/samba4-amd64/lib/python2.7/site-packages/samba/provision/__init__.py", line 46, in <module>from samba.samba3 import smbd, passdb
      File "/usr/pbi/samba4-amd64/lib/python2.7/site-packages/samba/samba3/__init__.py", line 29, in <module>import passdb
    ImportError: /usr/pbi/samba4-amd64/lib/libsmbconf.so.0: Undefined symbol "yperr_string"</module></module></module></module></module> 
    

    tenho compilado o samba4 para o pfsense, sempre chegou  a esse erro.
    se achar a solução, avisa estou precisando do samba4.



  • Olá pessoal, como está este projeto ?



  • ainda um sonho muito distante.. e pelo visto… vai demorar..



  • Tente entrar em contato com o Luis Gustavo.

    Veja se não consegue ajudá-lo nos testes ou contribuindo para o desenvolvimento do pacote.



  • @Luiz:

    @LFCavalcanti:

    olá!

    Falando sobre a topologia de serviços.

    Eu tenho vários clientes que já possuem dominios no Active Directory.

    Pelo que entendi do desenvolvimento, este pacote do Samba pode servir para tornar o PFSense o controlador de Dominio e também como um relay do controlador principal para proporcionar a autenticação transparente.

    Entendi corretamente?

    Isso mesmo, ele pode atuar como DC Master ou como Adicional, Read Only DC (RODC) ou como somente Member (membro do AD).

    Este último com o objetivo de poder suprir a autenticação NTLM e/ou ainda dispor de disponibilizar compartilhamento de arquivos

    Pense em um cenário que você tenha filiais ligadas sobre uma vpn e você queira por exemplo colocar a rede local no AD com um DC ou RODC local (sincronizando a arvore com o master, podendo ser outro samba ou mesmo um windows 2003/2008). Com esse pacote você poderá implementar isso diretamente no pfsense.

    Hi Luis Gustavo,

    Thanks for your post.! really nice.!

    i have squid + squidguard with transparent proxy, its ok.! i tested squid auth ldap and squidguard ldap and it works. but my users have to auth with pop up when open a browser. i installed samba4 and i want integrate with my active directory (server 2008 r2) and transparent single sing on but i can't. how you can help me luis ?



  • Olá!

    Estou precisando rodar a instalação desses pacotes em um servidor que assumi a manutenção. O site www.mundounix.com.br está totalmente fora do ar.

    Algum outro lugar que eu possa pegar o pacote compilado e a integração do Squid?



  • @LFCavalcanti:

    Olá!

    Estou precisando rodar a instalação desses pacotes em um servidor que assumi a manutenção. O site www.mundounix.com.br está totalmente fora do ar.

    Algum outro lugar que eu possa pegar o pacote compilado e a integração do Squid?

    Luiz, encontras no site:
    http://www.luizgustavo.pro.br/~gugabsd/pfsense/pbi-2_1/



  • @marcosjost:

    Luiz, encontras no site:
    http://www.luizgustavo.pro.br/~gugabsd/pfsense/pbi-2_1/

    Muito Obrigado! Vou postar a instalação atualizada.



  • Olá!

    Primeiramente:
    ESTE PACOTE AINDA ESTÁ EM DESENVOLVIMENTO! JAMAIS UTILIZE DIRETO EM AMBIENTE DE PRODUÇÃO!

    Com ajuda do colega marcosjost eu obtive acesso aos arquivos de instalação do pacote novamente.

    Assumi a manutenção de um PFSense que está com esse pacote implantado. O problema foi que o Squid perdeu a integração com o WinBind e eu precisava rodar o path novamente. O site www.mundounix.com.br está fora do ar.

    Eu atualizei o script de instalação para o diretório que utilizei. Segue o Script:

    
    #!/bin/sh
    
    arch=$(uname -p)
    
    fetch -o /tmp -q http://www.luizgustavo.pro.br/~gugabsd/pfsense/pbi-2_1/samba4-4.0.8-${arch}.pbi
    pbi_add --no-checksig /tmp/samba4-4.0.8-${arch}.pbi
    fetch -o /usr/local/pkg -q http://www.luizgustavo.pro.br/~gugabsd/pfsense/samba4/samba4.inc
    fetch -o /usr/local/pkg -q http://www.luizgustavo.pro.br/~gugabsd/pfsense/samba4/samba4.xml
    fetch -o /usr/local/www -q http://www.luizgustavo.pro.br/~gugabsd/pfsense/samba4/fbegin.inc
    fetch -o /usr/local/www/javascript -q http://www.luizgustavo.pro.br/~gugabsd/pfsense/samba4/jquery-1.9.1.min.js
    fetch -o /tmp -q http://www.luizgustavo.pro.br/~gugabsd/pfsense/squid_with_ntlm.patch
    mkdir -p /var/run/samba4 /var/log/samba4 /var/db/samba4
    chown -R :proxy /var/db/samba4/winbindd_privileged
    chmod -R 0750 /var/db/samba4/winbindd_privileged
    cd /usr/local/pkg
    if [ -e '/usr/local/pkg/squid.inc' ]; then
        patch -p0 < /tmp/squid_with_ntlm.patch
    fi
    
    

    Os links nesse script são mantidos pelo Luiz Gustavo, não posso garantir que continuem os mesmos. Se quiserem implantar esse pacote, aconselho a fazer um backup local desses arquivos e do Script. Se funcionar, uma doação para o colega Luiz Gustavo não faz mal.

    Mais uma coisa… eu testei apenas com a versão 2.0.3, vou testar com a 2.1.3 e dou um feedback depois.



  • ah ! funciona de boa no 2.1.3 ;)



  • Eu reparei que há o Samba 3 e o 4 no diretório.

    Basicamente, qual a diferença entre os pacotes que você desenvolveu, não no samba em si, na integração com o PFSense e com o Squid.



  • @LFCavalcanti:

    Eu reparei que há o Samba 3 e o 4 no diretório.

    Basicamente, qual a diferença entre os pacotes que você desenvolveu, não no samba em si, na integração com o PFSense e com o Squid.

    samba4 = com as novas versões 2.1.x, algumas libs necessárias para o funcionamento do samba4 quebraram, eu tenho um esquema dele rodando em jail, etc… mas é versão alpha, gama, beta, xyz.... nem pensar ainda em colocar algo publico pq não esta tão funcional.

    samba3 = Mais simples, menos lib e mais funcional para atuar como membro do AD, 100% funcional.



  • @Luiz:

    @LFCavalcanti:

    Eu reparei que há o Samba 3 e o 4 no diretório.

    Basicamente, qual a diferença entre os pacotes que você desenvolveu, não no samba em si, na integração com o PFSense e com o Squid.

    samba4 = com as novas versões 2.1.x, algumas libs necessárias para o funcionamento do samba4 quebraram, eu tenho um esquema dele rodando em jail, etc… mas é versão alpha, gama, beta, xyz.... nem pensar ainda em colocar algo publico pq não esta tão funcional.

    samba3 = Mais simples, menos lib e mais funcional para atuar como membro do AD, 100% funcional.

    E presumo que isso não tenha subido pro repositório por conta dessa turbulência toda envolvendo a ESF. Andei lendo os tópicos hoje e a coisa me parece feia entre a ESF e os colaboradores da comunidade.



  • ok!
    Help!

    To ficando louco com isso aqui.

    Não consigo fazer funcionar no PFSense 2.0.3 e eu preciso!

    O PFSense 2.0.3 não vêm com o PBI Manager. A versão do FreeBSD é a 8.1, instalei o PBI Manager da 8.3, rodo o script pra versão samba 3, roda a instalação numa boa, mas não sobre Winbind.

    Tentei instalando manualmente o Samba 3.6.16_1 que está rodando no outro servidor, não consigo subir o serviço, dando erro de dependencia, a biblioteca libz.so.6. Já criei link para o libz.so, ai dá erro com a versão ZLIB 1.2.4.0.

    Alguém poderia dizer como raios colocar esse Samba 3 pra rodar no PFSense 2.0.3?



  • Consegui…

    Tive que instalar o PBI Manager do FreeBSD 8.3 no PFSense 2.0.3(FreeBSD 8.1).

    Depois rodei o Script do Luiz Gustavo para o Samba 3.

    Instalei o Samba 3.6.16_1 usando o "pkg_add -r".

    Removi o Samba 3.6.16_1.

    Reinstalei o Squid para limpar o Patch do Samba 3 do Luiz Gustavo.

    Instalei usando o Script do Luiz Gustavo novamente.



  • Bom dia eu posso seguir esse tutorial aonde ?