Estou tendo um problema com o smbpasswd, um servidor backend LDAP e certificados SSL / TLS. A máquina cliente que eu executo o smbpasswd é uma máquina Debian Etch, e o servidor Ldap é o Sun DS em execução no Solaris. Tudo o que acontece no cliente.
Quando desabilito o SSL, definindo "ldap ssl = no" em smb.conf, o programa smbpasswd funciona sem erros.
Quando eu defino "ldap ssl = start tls", as seguintes mensagens são impressas por smbpasswd e há um longo período de tempo limite antes que qualquer senha seja solicitada por ele
Failed to issue the StartTLS instruction: Connect error
Connection to LDAP server failed for the 1 try!
..... long delay .....
New SMB password:
Retype new SMB password:
Failed to issue the StartTLS instruction: Connect error
Connection to LDAP server failed for the 1 try!
smbpasswd: /tmp/buildd/openldap2-2.1.30/libraries/liblber/io.c:702: ber_get_next: Assertion '0' failed.
Aborted
Eu realizei alguns testes com "ldapsearch -ZZ". Ele não estava funcionando no começo, mas depois que adicionei a linha TLS_CACERT ao /etc/ldap/ldap.conf, /etc/libnss-ldap.conf e /etc/pam_ldap.conf, ele começou a funcionar. Portanto, as seções TLS relevantes em todos esses arquivos são:
ssl start_tls
tls_checkpeer no
tls_cacertfile /path/to/ca-root.pem
TLS_CACERT /path/to/ca-root.pem
Mas o programa smbpasswd continuou dando o erro.
Eu tentei criar o arquivo /etc/smbldap-tools/smbldap.conf com o seguinte conteúdo (depois de consultar os documentos debian para o pacote smbldap-tools) Mas, como eu vejo, o smbpasswd vem com o pacote samba-common e não usa a configuração para Utilitários smbldap-tools.
verify="optional"
cafile="/path/to/ca-root.pem"
A minha pergunta é: Como posso definir qual Certificado CA SSL é usado pelo programa smbpasswd?