Protegendo o OpenLDAP e o AD

4

Estamos usando o servidor OpenLDAP como um proxy para o AD adicionando o AD como subordinado ao OpenLDAP.

Eu assegurei o tráfego do OpenLDAP usando a conexão StartTLS. Agora me disseram para usar o protocolo LDAPS para a ligação que fazemos para nos conectar ao servidor do AD (estamos usando a conexão simples).

Então, minha pergunta foi: é necessário usar o LDAPS para comunicação com o AD, já que o OpenLDAP já está usando o StartTLS?

Eu não tenho muito conhecimento sobre o OpenLDAP e o AD, então só queria as sugestões.

Eu usei a configuração abaixo para adicionar o banco de dados backend ldap [back-end do Lightweight Directory Access Protocol (Proxy)].

dn: olcDatabase=ldap,cn=config
objectClass: olcDatabaseConfig
objectClass: olcLDAPConfig
olcDatabase: ldap
olcSuffix: ou=xyz,dc=xyz,dc=xyz
olcSubordinate: TRUE
olcAccess: to dn.subtree="ou=xyz,dc=xyz,dc=xyz"  by * read
olcAddContentAcl: FALSE
olcLastMod: FALSE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcSyncUseSubentry: FALSE
olcMonitoring: FALSE
olcDbURI: "ldap://xx.xx.xx.xx"
olcDbStartTLS: none starttls=no
olcDbACLBind: bindmethod=simple timeout=0 network-timeout=0 binddn="cn=xyz,ou=xyz,dc=xyz,dc=xyz" credentials="xxxxxxxxxxxxxxxxxxxxxx"
olcDbIDAssertBind: mode=legacy flags=prescriptive,proxy-authz-non-critical bindmethod=simple timeout=0 network-timeout=0 binddn="cn=xyz,ou=xyz,dc=xyz,dc=xyz" credentials="xxxxxxxxxxxxxxxxxxxxxx"
olcDbRebindAsUser: TRUE
olcDbChaseReferrals: TRUE
olcDbNoRefs: FALSE
olcDbNoUndefFilter: FALSE
    
por Vishal 06.12.2017 / 17:43

2 respostas

3

Ligações simples LDAP que não são protegidas por SSL / TLS são muito inseguras, pois envolve o envio de credenciais de nome de usuário e senha em texto puro pela rede.

Ligações simples LDAP são aceitáveis somente sobre SSL / TLS / LDAPS.

Tudo o que você precisa fazer para ativar o LDAPS em um controlador de domínio do Active Directory é instalar um certificado adequado com chave privada no controlador de domínio do AD:

link

Verifique e leia a seção de requisitos do artigo acima para ver o que constitui um certificado aceitável.

Depois de instalar um certificado aceitável no controlador de domínio, o Active Directory detectará automaticamente sua presença e ativará os LDAPS pela porta 636.

Você pode obter o certificado de qualquer Autoridade de Certificação que desejar, contanto que seja de confiança de todas as partes que participarão da comunicação. Pode ser uma PKI integrada ao AD existente ou pode ser uma CA que não é da Microsoft em sua rede corporativa ou pode até ser uma CA pública e confiável globalmente, como a GoDaddy, Symantec, etc., desde que seja capaz de produzir um certificado que atenda aos requisitos:

  • O certificado LDAPS está localizado no armazenamento de certificados Pessoal do computador local (programaticamente conhecido como o armazenamento de certificados MY do computador).
  • Uma chave privada que corresponde ao certificado está presente no armazenamento do computador local e está corretamente associada ao certificado. A chave privada não deve ter proteção strong de chave privada ativada.
  • A extensão Enhanced Key Usage inclui o identificador de objeto Server Authentication (1.3.6.1.5.5.7.3.1) (também conhecido como OID).
  • O nome de domínio totalmente qualificado do Active Directory do controlador de domínio (por exemplo, DC01.DOMAIN.COM) deve aparecer em um dos seguintes locais:
    • O nome comum (CN) no campo Assunto.
    • Entrada de DNS na extensão de nome alternativo do assunto.
  • O certificado foi emitido por uma autoridade de certificação na qual o controlador de domínio e os clientes LDAPS confiam. A confiança é estabelecida configurando os clientes e o servidor para confiar na CA raiz para a qual as cadeias de CA de emissão.
  • Você deve usar o provedor de serviços de criptografia Schannel (CSP) para gerar a chave.

(Tecnicamente, pode até ser um certificado autoassinado, embora isso não seja uma solução segura.)

Depois de instalar este certificado, o controlador de domínio ativará automaticamente o serviço LDAPS na porta 636. (E o serviço de catálogo global no 3269).

Até agora, descrevi apenas LDAPS, mas não especificamente StartTLS.

Você pode usar o startTLS em um servidor LDAP da Microsoft, se desejar:

link

Não requer nenhuma configuração adicional no servidor. Apenas envolve o cliente enviando os controles LDAP corretos (comandos) para o servidor. (O controle OID para startTLS é "1.3.6.1.4.1.1466.20037".)

    
por 06.12.2017 / 18:05
0

Existem dois segmentos de rede que você precisa proteger:

  • de clientes para o OpenLDAP;
  • do OpenLDAP para o AD.

Ambos precisam ser seguros.

A primeira parte já foi feita com StartTLS .

Você só precisa colocar segurança no segundo salto de rede. Eu acho que seria necessário modificar:

olcDbURI: "ldap://xx.xx.xx.xx"
olcDbStartTLS: none starttls=no

para:

olcDbURI: "ldaps://xx.xx.xx.xx"
olcDbStartTLS: false

(porque é claro que não é possível ter StartTLS e LDAPS )

    
por 29.12.2017 / 10:48