Atualmente, o OpenLDAP precisa ser configurado com ldapmodify cn = config, como descrito aqui . Mas em nenhum lugar posso encontrar como você o configura para aceitar apenas o tráfego TLS. Acabei de confirmar que nosso servidor aceita tráfego não criptografado (com ldapsearch e tcpdump).
Normalmente, eu fecharia a porta não SSL com tabelas IP, mas o uso da porta SSL foi descontinuado, aparentemente, então não tenho essa opção.
Portanto, com os comandos de configuração SSL, assim:
dn: cn=config
changetype:modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/bla.key
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/bla.crt
-
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/ca.pem
Existe um parâmetro para forçar o TLS?
Edit: Eu tentei o olcTLSCipherSuite, mas não funciona. Saída de depuração:
TLS: could not set cipher list TLSv1+RSA:!NULL.
main: TLS init def ctx failed: -1
slapd destroy: freeing system resources.
slapd stopped.
connections_destroy: nothing to destroy.
Edit2 (quase corrigido): Consegui corrigi-lo carregando:
# cat force-ssl.tx
dn: cn=config
changetype: modify
add: olcSecurity
olcSecurity: tls=1
Mas então comandos como
ldapmodify -v -Y EXTERNAL -H ldapi:/// -f /etc/ssl/tls-required.ldif
Não funciona mais ... E altere-o para:
ldapmodify -v -x -D "cn=admin,dc=domain,dc=com" -H ldap://ldap.bla.tld/ -ZZ -W -f force-ssl.txt
me dá "ldap_bind: credenciais inválidas (49)". Aparentemente, mesmo que este binddn seja especificado como rootdn, não posso usá-lo para alterar cn=config
. Isso pode ser mudado?
TLS confidentiality required
mensagem.Isso é alcançado com a opção TLSCipherSuite . Um exemplo está documentado no capítulo de segurança LDAP do livro OpenLDAP Zytrax . Com ele, você pode informar ao OpenLDAP os conjuntos de cifras que seu servidor aceitará. Por exemplo, você pode dizer que não deseja um
NULL
conjunto de criptografia (por exemplo: sessão não criptografada).Tenha cuidado, porém, para que o OpenLDAP possa ser vinculado às bibliotecas OpenSSL ou GnuTLS. Eles usam listas de códigos diferentes para descrever seu suporte à criptografia. A lista de cifras OpenSSL pode ser obtida com um comando como
openssl ciphers -v
e a lista GnuTLS comgnutls-cli -l
.A maneira mais simples de desativar a conexão sem criptografia seria:
Uma restrição mais específica usando a sintaxe GnuTLS :
Um exemplo mais completo pode ser (usando a sintaxe OpenSSL ):
Há uma discussão na lista de discussão do OpenLDAP que vale a pena ler sobre uma pergunta semelhante .
Também é importante notar que as ferramentas CLI do OpenLDAP, como
ldapsearch
, estão automaticamente mudando para o uso do TLS ao se conectar a um servidor que proíbe as conexões não criptografadas. Isso significa que você não precisa adicionar-Z
à lista de argumentos.fonte
ALL:!NULL