Активуємо LDAP over SSL (LDAPS) в Windows Server 2012 R2

За замовчуванням в Active Directory трафік по протоколу LDAP між контролерами домена і клієнтами не шифрується, тобто дані по мережі передаються у відкритому вигляді. Потенційно це означає, що зловмисник за допомогою сніфера пакетів може прочитати ці дані. Для стандартного середовища Windows середовища це в общем-то не критично, але обмежує можливості розробників сторонніх додатків, які використовують LDAP.

Так, наприклад, операція зміни пароля повинна обов'язково здійснюватися через безпечний канал (наприклад Kerberos або SSL / TLS). Це означає, що наприклад, за допомогою функції-php, що забезпечує роботу з AD по протоколу LDAP змінити пароль користувача в домені не вдасться.

Захистити дані, що передаються по протоколу LDAP між клієнтом і контролером домену можна за допомогою SSL версії протоколу LDAP - LDAPS, який працює по порту 636 (LDAP "живе" на порту 389). Для цього на контролері домену необхідно встановити спеціальний SSL сертифікат. Сертифікат може бути як стороннім, виданими 3-ої стороною (наприклад, Verisign), самоподпісанного або виданими корпоративним центром сертифікації.

У цій статті ми покажемо, як за допомогою установки сертифіката задіяти  LDAPS (LDAP over Secure Sockets Layer) на котролері домену під управління Windows Server 2012 R2. При наявності необхідного сертифіката служба LDAP на контролері домену може встановлювати SSL з'єднання для передачі трафіку LDAP і трафіку сервера глобального каталогу (GC).

Відзначимо, що LDAPS переважно використовується сторонніми додатками (маються на вигляді не-Microsoft клієнти) з метою захисту переданих по мережі даних (забезпечити неможливість перехоплення імена і паролі користувачів і інших приватних даних).

Припустимо, у вашій інфраструктурі вже розгорнуто корпоративний засвідчує сервер  Certification Authority (CA). Це може бути як повноцінна інфраструктура PKI, так і окремої-стоїть сервер з роллю Certification Authority.

На півночі з роллю Certification Authority запустіть консоль Certification Authority Management Console, виберіть розділ шаблонів сертифікатів (Certificate Templates ) І в контекстному меню виберіть Manage.

Знайдіть шаблон Kerberos Authentication certificate і створіть його копію, вибравши в меню Duplicate Template.

на вкладці General перейменуйте шаблон сертифікату в LDAPoverSSL, вкажіть період його дії та опублікуйте його в AD (Publish certificate in Active Directory).

на вкладці Request Handling поставте чекбокс біля пункту Allow private key to be exported і збережіть шаблон.

На базі створеного шаблону, опублікуємо новий тип сертифіката. Для цього, в контекстному меню розділу Certificate Templates виберемо пункт New -> Certificate Template to issue.

Зі списку доступних шаблонів, виберіть LDAPoverSSL і натисніть OK.

На контролері домену, для якого планується задіяти LDAPS, відкрийте оснащення управління сертифікатами і в сховище сертифікатів Personal запитаємо новий сертифікат (All Tasks -> Request New Certificate).

У списку доступних сертифікатів виберіть сертифікат LDAPoverSSL і натисніть Enroll (Випустити сертифікат).

Наступна вимога - необхідно, щоб контролер домену і клієнти, які будуть взаємодіяти через LDAPS довіряли засвідчувальному центру (CA), який видав сертифікат для контролера домену.

Якщо це ще не зроблено, експортуємо кореневий сертифікат, що засвідчує, в файл, виконавши на сервері з роллю Certification Authority команду:
certutil -ca.cert ca_name.cer

Порада. Файл сертифіката збережеться в профілі поточного користувача і в нашому випадку має ім'я ca_name.cer.

А потім додайте експортований сертифікат в контейнері сертифікатів Trusted Root Certification Authorities сховища сертифікатів на клієнті і контролері домену. Зробити це можна через вручну через оснащення управління сертифікатами, через GPO або з командного рядка (детальніше тут).

certmgr.exe -add C: \ ca_name.cer -s -r localMachine ROOT

Необхідно перезапустити служби Active Directory на контролері домену, або цілком перезавантажити DC.

Залишилося протестувати роботу по LDAPS. Для цього на клієнті запустимо утиліту  ldp.exe і в меню вибираємо Connection-> Connect->Вкажіть повне (FQDN) Ім'я контролера домену, виберіть порт 636 і відзначте SSL -> OK. Якщо все зроблено правильно, підключення повинно встановитися.

Примітка. Утиліта ldp.exe на клієнтах встановлюється в складі пакету Remote Server Administration Kit (RSAT): RSAT для Windows 8, для 8.1.