Publicado por: Rafael Guedes | 10 setembro 2010

Sincronização de senhas no Samba com o Backend LDAP

OpenLDAP + Samba = GRANULARIDADE

Neste artigo venho apresentar a solução encontrada para o sincronismo de senhas do Samba numa situação como a representada abaixo. Estarei usando colocações e uma linguagem específica partindo da suposição que você conheça estas aplicações e esteja passando pelo mesmo problema, minha intenção não é discutir a instalação do Samba ou OpenLDAP, mas se você deseja fazer algum questionamento fico feliz em poder ajudar ou trocar alguma experiência.

Em primeiro lugar, gostaria de deixar bem claro como funciona meu ambiente.

Tenho três sites, a Matriz e duas filiais. Sendo que o diretório LDAP da Matriz é replicado para as duas filiais. Ou seja, não importa em que lugar da rede eu esteja, todos as entradas LDAP (usuário, senha, grupo) estarão presentes lá. Além disso, como o Samba está utilizando o LDAP como backend, o domínio NT é o mesmo seja em que site eu estiver. Posso sair da Matriz e ir para a Filial01 e continuar autenticando no meu domínio, tendo minhas unidades de rede mapeadas, etc. Em cada servidor destes eu tenho Samba, LDAP, Squid e os usuários Unix também autenticando no LDAP, sendo que em cada servidor cada um destes serviços sempre consulta a sua base LDAP local para evitar problemas no caso de perda de conectividade entre os sites. Deu para entender bem?

O PROBLEMA

O problema é que numa replicação LDAP o servidor slave serve somente para consultas. Se uma alteração for feita na base LDAP de qualquer Filial, ela não será refletida de uma forma geral. Então toda e qualquer alteração que seja feita nas Filiais devem apontar para a Matriz, de forma que então a base da Matriz replique para as bases LDAP das Filiais a alteração feita. Bom vou tentar esclarecer essa afirmação. Veja os detalhes do processo abaixo.

Ok mas e onde está o problema? Se eu já mostrei como deveria funcionar!! O problema é que o Samba pode tratar as senhas de duas formas diferentes quando usado o LDAP como backend. E eu estava usando a forma errada, claro! A forma que eu estava usando alterava os atributos apenas na base LDAP local da Filial.  O usuário conseguia utilizar o seu proxy (uma vez que o Squid consulta a base LDAP local). O usuário conseguia autenticar no domínio (pois o samba está consultando a base LDAP local). Porém quando o usuário da Filial tentava acessar seu webmail, o qual está num servidor da Matriz (que por sua vez consulta a base LDAP da Matriz), ele só conseguia acessar com a senha antiga. Ou seja, a senha não foi repassada para todos os servidores.

!!! Entenda, digo forma errada para este caso, pois se eu não estivesse usando replicação ela poderia ser muito bem empregada !!!

A SOLUÇÃO

Vou mostrar agora como o Samba pode ser configurado para fazer as alterações de senha. Primeiro a maneira que eu estava usando, depois a maneira correta.

Método 01:

unix password sync = no
ldap passwd sync = yes

Método 02:

unix password sync = yes
ldap passwd sync = no
passwd program = /usr/sbin/smbldap-passwd “%u”
passwd chat = “Changing *\nNew password*” %n\n “*Retype new password*” %n\n

Na Matriz o Método 01 poderia ser usado por exemplo. Já nas Filiais deve-se usar o Método 02.

Lembrando que o servidor LDAP configurado no smbldap-tools das Filiais deve apontar para o servidor LDAP da Matriz.

Veja exemplo:

slaveLDAP=””
slavePort=””
masterLDAP=”IP_SRV_01″
masterPort=”389″

Simples assim!

CONSIDERAÇÕES FINAIS

Peço desculpas se não me fiz entender. Se alguém achou o conteúdo inútil, acredite fiquei horas tentando achar a solução entre testes e novas pesquisas! Pensando assim, resolvi escrever este post em português para colegas que tenham a mesma dificuldade que eu tive. Caso alguém não tenha entendido a situação muito bem ou eu não tenha sido claro, por favor me avise!

REFERÊNCIA (onde achei a solução)

http://download.gna.org/smbldap-tools/docs/smbldap-tools/


Responses

  1. Rafael, muito bacana sua esposição, vou utilizar parte dela em uma apresentação.
    Parabéns pela disposição.

  2. Parebéns pelo post foi de muita ajuda… aproveitando qual seria o procedimento para importar as senhas do samba para o ldap, fiz vários testes e nada de sucesso se puder me ajudar eu agradeço… abraço.

  3. Carlos, perdão pela morosidade no retorno. Estou tentando voltar a atualizar o blog.

    Infelizmente não tenho como te ajudar, pois nunca realizei esta migração. Mas na página do projeto do smbldap-tools se não me falha a memória existem scripts de ajuda.


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Categorias

%d blogueiros gostam disto: