O certificado raiz da CA na configuração pam_ldap não funcionará sem o tls_checkpeer no

1

Os sistemas são Debian Squeeze e Ubuntu Precise com configurações idênticas. A versão do libpam-ldap é 184-8,5 em ambas as distros.

Tudo funciona bem com a seguinte configuração em /etc/pam_ldap.conf .

host 10.220.100.11
base ou=companies,ou=asp,ou=sweden,dc=domain,dc=inet
ldap_version 3
ssl on
tls_checkpeer no
binddn svc_unix_auth
bindpw secret
scope sub
timelimit 30
pam_filter objectclass=User
nss_map_attribute uid sAMAccountName
pam_login_attribute sAMAccountName
pam_password crypt
pam_groupdn CN=Linux_Authentication,OU=Groups,OU=ourcompany,OU=Companies,OU=ASP,OU=sweden,DC=domain,DC=inet

Apenas uma alteração na configuração do pam, em /etc/pam.d/common-auth .

auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_ldap.so use_first_pass

A segunda linha é o que foi adicionado para ativar os logins do ldap.

Assim que removermos tls_checkpeer no do arquivo /etc/pam_ldap.conf , ele falhará porque o servidor LDAP possui um certificado autoassinado.

Tentei exportar o certificado da CA raiz no formato base64 do servidor LDAP e colocá-lo em / etc / ssl / certs com as permissões 0644. Em seguida, adicionar tls_cacertfile /etc/ssl/certs/ldap_server.crt em pam_ldap.conf , mas isso não está ajudando.

Como posso usar a CA raiz e evitar desabilitar a verificação de certificados autoassinados?

    
por Stefan Midjich 31.01.2013 / 11:37

1 resposta

3

Tanto quanto eu posso dizer, o pam_ldap usa openssl para sua funcionalidade TLS, ou usa uma funcionalidade semelhante que é embutida no próprio pam_ldap. openssl precisa que o nome do arquivo ca seja o valor do hash do sujeito seguido por ".0" ou se já houver outro ca cert com esse hash, aumente 0 para 1 ou para 2 ou qualquer que seja o próximo número não utilizado seria. Geralmente, é recomendável deixar o nome do arquivo de certificado da CA real com um nome amigável para que você saiba o que é e criar um link simbólico para ele que tenha o nome que usa o hash do assunto seguido por ".0" ou seja qual for o próximo número disponível. Para encontrar o hash:

openssl x509 -hash -in /etc/ssl/certs/ldap_server.crt

Isso retornará um número hexadecimal, por exemplo, ea12345.

Para criar um link simbólico, openssl e pam_ldap vão gostar:

ln -s /etc/ssl/certs/ldap_server.crt /etc/ssl/certs/ea12345.0

Em seguida, remova a linha "tls_cacertfile /etc/ssl/certs/ldap_server.crt" e adicione uma linha que diz "tls_cacertdir / etc / ssl / certs /" em seu lugar. Ele irá alterar o nome do requerente da autoridade de certificação quando o servidor LDAP apresentar seu certificado de servidor e tentar localizar o arquivo de certificado de autoridade de certificação via ea12345.0 como nome, que encontrará o link simbólico e poderá abrir o arquivo.

    
por 14.09.2013 / 14:36