Мы используем сервер OpenLDAP в качестве прокси для AD, добавляя AD в качестве подчиненного OpenLDAP.
Я защитил трафик OpenLDAP с помощью соединения StartTLS. Теперь мне сказали использовать протокол LDAPS для привязки, которую мы делаем для подключения к серверу AD (мы используем простую привязку).
Итак, мой вопрос был: нужно ли использовать LDAPS для связи с AD, поскольку OpenLDAP уже использует StartTLS?
Я не очень разбираюсь в OpenLDAP и AD, поэтому просто хотел получить предложения.
Я использовал приведенную ниже конфигурацию для добавления базы данных ldap [Lightweight Directory Access Protocol (Proxy) backend].
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
Простые привязки LDAP, не защищенные SSL / TLS, очень небезопасно, поскольку включает отправку учетных данных имени пользователя и пароля в открытом виде по сети.
Допускаются простые привязки LDAP только через SSL / TLS / LDAPS.
Все, что вам нужно сделать, чтобы включить LDAPS на контроллере домена Active Directory, - это установить подходящий сертификат с закрытым ключом на контроллере домена AD:
Обязательно прочтите раздел требований в статье выше, чтобы узнать, что является приемлемым сертификатом.
После того, как вы установили приемлемый сертификат на контроллер домена, Active Directory автоматически обнаружит его присутствие и включит LDAPS через порт 636.
Вы можете получить сертификат в любом Центре сертификации по своему усмотрению, если ему доверяют все стороны, которые будут участвовать в обмене данными. Это может быть существующий PKI, интегрированный в AD, или это может быть центр сертификации, не принадлежащий Microsoft, в вашей корпоративной сети, или он может быть даже общедоступным, глобально доверенным центром сертификации, таким как Godaddy, Symantec и т. Д., Если он поддерживает о производстве сертификата, соответствующего требованиям:
(Технически это может быть даже самозаверяющий сертификат, хотя это небезопасное решение.)
После установки этого сертификата контроллер домена автоматически включит службу LDAPS на порту 636. (и службу глобального каталога на 3269.)
До сих пор я описал только LDAPS, но не конкретно StartTLS.
Вы можете использовать startTLS против сервера Microsoft LDAP, если хотите:
https://msdn.microsoft.com/en-us/library/aa366997(v=vs.85).aspx
Никакой дополнительной настройки на сервере не требуется. Он просто включает в себя отправку клиентом правильных элементов управления (команд) LDAP на сервер. (Управляющий OID для startTLS - «1.3.6.1.4.1.1466.20037».)
Необходимо защитить два сегмента сети:
Они оба должны быть в безопасности.
Первая часть уже сделана с StartTLS
.
Вам нужно только установить безопасность на втором сетевом переходе. Думаю, было бы достаточно изменить:
olcDbURI: "ldap://xx.xx.xx.xx"
olcDbStartTLS: none starttls=no
кому:
olcDbURI: "ldaps://xx.xx.xx.xx"
olcDbStartTLS: false
(потому что, конечно, невозможно иметь оба StartTLS
и LDAPS
)