Настройка ldap windows server 2016 с нуля

First published on MSDN on Apr 10, 2017 Step-by-step guide for setting up LDAPS (LDAP over SSL) The guide is split into 3 sections : Create a Windows Server VM in Azure Setup LDAP using AD LDS (Active Directory Lightweight Directory Services) Setup LDAPS (LDAP over SSL) NOTE : The following ...


First published on MSDN on Apr 10, 2017


Step-by-step guide for setting up

LDAPS

(LDAP over SSL)

The guide is split into 3 sections :

  1. Create a Windows Server VM in Azure
  2. Setup LDAP using AD LDS (Active Directory Lightweight Directory Services)
  3. Setup LDAPS (LDAP over SSL)

NOTE : The following steps are similar for Windows Server 2008, 2012, 2012 R2 , 2016. In this article, we will use Windows Server 2012 R2.

Create a Windows Server VM in Azure

Create a VM named “ldapstest” Windows Server 2012 R2 Datacenter Standard DS12 using the instructions here:

Create a Windows virtual machine with the Azure portal

Connect to the VM ldapstest using Remote Desktop Connection.

Setup LDAP using AD LDS

Now let us add AD LDS in our VM ldapstest

Click on Start —> Server Manager —> Add Roles and Features. Click Next.

Choose Role-based or feature-based installation. Click Next.

Select ldapstest server from the server pool. Click Next.

Mark Active Directory Lightweight Directory Services from the list of roles and click Next.

From the list of features, choose nothing – just click Next.

Click Next.

Click Install to start installation.

Once installation is complete, click Close.

Now we have successfully set up AD LDS Role. Let us create a new AD LDS Instance “CONTOSO” using the wizard. Click the “Run the Active Directory Lightweight Directory Services Setup Wizard” in the above screen. And then Click Close.

Choose Unique Instance since we are setting it up for the first time.

Type “CONTOSO” in Instance Name and click Next.

By Default, LDAP Port is 389 and LDAPS port is 636, let us choose the default values — click Next.

Create a new Application Directory Partition named “CN=MRS,DC=CONTOSO,DC=COM”. Click Next.

Using the default values for storage location of ADLDS files- Click Next.

Choosing Network Service Account for running the AD LDS Service.

You will receive a prompt warning about data replication. Since we are using a single LDAP Server, we can click Yes.

Choosing the currently logged on user as an administrator for the AD LDS Instance. Click Next.

Mark all the required LDIF files to import (Here we are marking all files). Click Next.

Verify that all the selections are right and then Click Next to confirm Installation.

Once the instance is setup successfully, click Finish.

Now let us try to connect to the AD LDS Instance CONTOSO using ADSI Edit.

Click on Start —> Search “ADSI Edit” and open it.

Right Click on ADSI Edit Folder (on the left pane) and choose Connect To.. . Fill the following values and Click OK.

If the connection is successful, we will be able to browse the Directory CN=MRS,DC=CONTOSO,DC=COM :

Setup LDAPS (LDAP over SSL)

The Certificate to be used for LDAPS must satisfy the following 3 requirements:

• Certificate must be valid for the purpose of Server Authentication. This means that it must also contains the Server Authentication object identifier (OID): 1.3.6.1.5.5.7.3.1

• The Subject name or the first name in the Subject Alternative Name (SAN) must match the Fully Qualified Domain Name (FQDN) of the host machine, such as Subject:CN=contosoldaps. For more information, see How to add a Subject Alternative Name to a secure LDAP certificate .

• The host machine account must have access to the private key.

Now, let’s use Active Directory Certificate Services to create a certificate to be used for LDAPS. If you already have a certificate satisfying the above requirements, you can skip this step.

Click on Start —> Server Manager —> Add Roles and Features. Click Next.

Choose Role-based or feature-based installation. Click Next.

Select ldapstest server from the server pool. Click Next.

Choose Active Directory Certificate Services from the list of roles and click Next.

Choose nothing from the list of features and click Next.

Click Next.

Mark “Certificate Authority” from the list of roles and click Next.

Click Install to confirm installation.

Once installation is complete, Click Close.

Now let’s create a certificate using AD CS Configuration Wizard. To open the wizard, click on “Configure Active Directory Certificate Services on the destination server” in the above screen. And then click Close. We can use the currently logged on user azureuser to configure role services since it belongs to the local Administrators group. Click Next.

Choose Certification Authority from the list of roles. Click Next.

Since this is a local box setup without a domain, we are going to choose a Standalone CA. Click Next.

Choosing Root CA as the type of CA, click Next.

Since we do not possess a private key – let’s create a new one. Click Next.

Choosing SHA1 as the Hash algorithm. Click Next.

UPDATE : Recommended to select the most recent hashing algorithm since

SHA-1 deprecation countdown

The name of the CA must match the Hostname (requirement number 2). Enter “LDAPSTEST” and Click Next.

Specifying validity period of the certificate. Choosing Default 5 years. Click Next.

Choosing default database locations, click Next.

Click Configure to confirm.

Once the configuration is successful/complete. Click Close.

Now let us view the generated certificate.

Click on Start à Search “Manage Computer Certificates” and open it.

Click on Personal Certificates and verify that the certificate “LDAPSTEST” is present:

Now to fulfill the third requirement, let us ensure host machine account has access to the private key. Using the Certutil utility, find the Unique Container Name. Open Command Prompt in Administrator mode and run the following command: certutil -verifystore MY

The private key will be present in the following location C:ProgramDataMicrosoftCryptoKeys<UniqueContainerName>

Right Click C:ProgramDataMicrosoftCryptoKeys874cb49a696726e9f435c1888b69f317_d3e61130-4cd8-4288-a344-7784647ff8c4 and click properties —> Security and add read permissions for NETWORK SERVICE.

We need to import this certificate into JRE key store since our certificate “CN=LDAPSTEST” is not signed by any by any trusted Certification Authority(CA) which is configured in you JRE keystore e.g Verisign, Thwate, goDaddy or entrust etc. In order to import this certificate using the keytool utility, let us first export this cert as a .CER from the machine certificate store:

Click Start —> Search “Manage Computer Certificates” and open it. Open personal, right click LDAPSTEST cert and click “Export”.

This opens the Certificate Export Wizard. Click Next.

Do not export the private key. Click Next.

Choose Base-64 encoded X .509 file format. Click Next.

Exporting the .CER to Desktop. Click Next.

Click Finish to complete the certificate export.

Certificate is now successfully exported to “C:UsersazureuserDesktopldapstest.cer”.

Now we shall import it to JRE Keystore using the keytool command present in this location:

C:Program FilesJavajre1.8.0_92binkeytool.exe.

Open Command Prompt in administrator mode. Navigate to “C:Program FilesJavajre1.8.0_92bin” and run the following command:

keytool -importcert -alias «ldapstest» -keystore «C:Program FilesJavajre1.8.0_92libsecuritycacerts» -storepass changeit -file «C:UsersazureuserDesktopldapstest.cer»

Type “yes” in the Trust this certificate prompt.

Once certificate is successfully added to the JRE keystore, we can connect to the LDAP server over SSL.

Now let us try to connect to LDAP Server (with and without SSL) using the ldp.exe tool.

Connection strings for

LDAP:\ldapstest:389

LDAPS:\ldapstest:636

Click on Start —> Search ldp.exe —> Connection and fill in the following parameters and click OK to connect:

If Connection is successful, you will see the following message in the ldp.exe tool:

To Connect to LDAPS (LDAP over SSL), use port 636 and mark SSL. Click OK to connect.

If connection is successful, you will see the following message in the ldp.exe tool:

REFERENCES

https://technet.microsoft.com/en-us/library/cc770639(v=ws.10)

https://technet.microsoft.com/en-us/library/cc725767(v=ws.10).aspx

http://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate….

https://blogs.technet.microsoft.com/askds/2008/03/13/troubleshooting-ldap-over-ssl/

http://javarevisited.blogspot.com/2011/11/ldap-authentication-active-directory.html

This article is based on best practice which we need to follow during the implementation of Active Directory and authentication of it with other software in presence of SSO (Single Sign on). So, what actually ldap means? The Lightweight Directory Access Protocol (LDAP) is used to read from and write to Active Directory. By default, LDAP traffic is transmitted unsecured. You can make LDAP traffic confidential and secure by using Secure Sockets Layer (SSL) / Transport Layer Security (TLS) technology. You can enable LDAP over SSL (LDAPS) by installing a properly formatted certificate from either a Microsoft certification authority (CA) or a non-Microsoft CA. so on this blog I will be sharing my knowledge on how to configure secure LDAP connection on Server 2016.

In default, communication between client and server application are not encrypted for LDAP which means it is possible to monitor device or software and view the communications traveling between LDAP client and Server Computers. But that doesn’t mean it can expose the Kerberos, SASL and even NTLM authentication or authorization, because they do have their own encryption methods. So only the data communication between Client and servers do have possibility of getting compromised. Hence let’s work on the securing the communication.

The port that uses by the LDAP for the normal communication is TCP/UDP 389 whereas for the secure communication it will be using 636 port. So, first let’s know how to check it.

Open your machine, go to run, type ‘ldp’ and click on ‘OK’.

 

Once this is done, a new window will get open. On the ‘Connection’ click ‘Connect’ and provide the server name and port as 636.

So, if you see this kind of error than this means you do not have configured secure LDAP. Then let’s start configuring it.

Configuring secure LDAP:

To configure the secure LDAP, we first need to install Certificate Authority on our Domain Controller. To get install Certificate Authority, please follow this blog. After completion of installing Local CA, open it. Right click on ‘Certificate template’, and select ‘Manage’. On ‘Action’, select ‘View Object Identifiers’.

Now scroll down and verify if you do have Server Authentication with object Identifier 1.3.6.1.5.5.7.3.1, this is the thing which allows us to configure secure ldap.

After verifying Object identifier, now open  ‘Microsoft Management Console’ (MMC).

On ‘Microsoft Management Console (MMC)’, ‘Add or Remove Snap-ins’ using computer Certificates

Add certificate for the local computer and click ‘OK’, once this is done.

After adding the Local Certificate, expand the Personal below the Certificates.

You will see a new folder name ‘Certificates’ right-click on it and navigate to ‘Request New Certificate’ and select it.

A new window will get open for the Certificate Enrollment, click ‘Next’ on this.

On ‘Select Certificate Enrollment Policy’ click on ‘Next’.

At ‘Certificate Enrollment’, select ‘Domain Controller’ and click on ‘Enroll’.

It will take a while to get install the ‘Domain certificate’ on your Domain Controller. After completion click on ‘Finish’.

Now you can see the certificate issued to your domain controller on your certificate page.

Testing:

Once you verified the certificate has been installed on your machine, try to get connect to your machine as we did earlier

If the configuration is good, you will receive this kind of message on your LDP console. If it didn’t you might need to restart your machine once.

Hope this was quite helpful blog for the integrating AD authentication with your Application using Secure channel. Keep posting for any comments J

About Author

pdhewjau

Prashant is a Microsoft MVP for Office Servers and Services. He works as Technical Lead on Thakral One and a Microsoft Certified Trainer for Windows Server, Exchange Server and office 365.

After installing and configuring Certification Authority (CA) server, Next step is use it to generate SSL certificate for LDAPS configuration on Domain Controller.

The Lightweight Directory Access Protocol (LDAP) is used to read from and write to Active Directory. By default, LDAP traffic is transmitted unsecured. You can make LDAP traffic confidential and secure by using Secure Sockets Layer (SSL) / Transport Layer Security (TLS) technology. You can enable LDAP over SSL (LDAPS) by installing a properly formatted certificate from either a Microsoft certification authority (CA) or a non-Microsoft CA according to the guidelines in this article.

This will help to install certificates, which are digital credentials used to connect to wireless networks, protect content, establish identity, and do other security-related tasks. 

To enable LDAPS, you must install a certificate that meets the following requirements:

  • A private key that matches the certificate is present in the Local Computer’s store and is correctly associated with the certificate. The private key must not have strong private key protection enabled.
  • The LDAPS certificate is located in the Local Computer’s Personal certificate store (programmatically known as the computer’s MY certificate store).
  • The Active Directory fully qualified domain name of the domain controller (for example, ad001.vcloud-lab.com) must appear in one of the following places:
    • DNS entry in the Subject Alternative Name extension.
    • The Common Name (CN) in the Subject field.
  • The Enhanced Key Usage extension includes the Server Authentication (1.3.6.1.5.5.7.3.1) object identifier (also known as OID).
  • The certificate was issued by a CA that the domain controller and the LDAPS clients trust. Trust is established by configuring the clients and the server to trust the root CA to which the issuing CA chains.
  • You must use the Schannel cryptographic service provider (CSP) to generate the key.

Part 1: Install and configure certificate authority (CA) on Microsoft Windows server with Group Policy
Part 2: Configuring Secure LDAPs on Domain Controller
                       ldp.exe LDAPS Cannot open connection Error 81
Part 3: Install and Configure Active Directory Federation Service (ADFS)

My CA server is hosted on AD server for lab purpose as there are resource constraints in the lab, so properly design your Active directory and Certification Authority server infrastructure. To go ahead, I logged onto Windows server (Already Domain Controller with Certification Services installed), Open either Server Manager >> Tools >> Certification Authority or Search for Certification Authority. This opens certsrv mmc management console. Here expand CA server and right click on Certificate Template. Click Manage from the context menu.

Server Manager DashBoard Certification Authority CA server revoked certificates Issued Certificates Pending requests failed Requests Certificate Template Manage vmware vsphere 7 ad authentication ldaps configuration.png

This opens another Management Console for Certificate Templates separately in another window. Find Kerberos Authentication from Template Display Name list and right click on it. Choose Duplicate Template from context menu. On the New Template Properties on General tab provide Template display name LDAPs and choose Publish certificate in Active Directory. Go to Request Handling tab and choose Allow private key to be exported. Next in the Subject Name, choose both User principal name (UPN) and Service principal name (SPN) and click OK.

Certificate Template Console Duplicate Template general LDAPs Publish certificate in Active Directory Allow Private Key to be exported UPN SPN user service principal name vsphere 7 adfs.png

This newly generated copy of Kerberos Authentication certificate template will show as LDAPs in the templates list. Close Certificate Template Console.

vmware vsphere 7 certificate Templates Console LDAPs web server workstation authentication configure Ldaps on active directory domain controller adds certification authority CA sever adfs federation services.png

After closing certificate template console, It will return to certsrv (Certification Authority) mmc console. On the Certificate Template right click and choose New >> Certificate Template to Issue. In the Enable Certificate Templates choose LDAPs name. and click OK.

certsrv certification Authority CA server active directory certificate services adfs federation services vsphere 7 vmware vcenter identity federation certificate template to issue LDAP light weight access protocol.png

Newly enabled certificate template will show on the list.

certsrv certification Authority CA server active directory certificate services services vsphere 7 vmware vcenter identity federation certificate template to issue LDAPs over ssl enable certificate template.png

Certificate templates is configured, its time to use it. Now new SSL certificate need to be generated on Active Directory Domain Controller. Search and open mmc.exe, Go to File >> Add/Remove Snap-in then click Certificates and click Add. The certificates snap-in allows you to browse the contents of the certificate stores for yourself, a service, or a computer.

mmc.exe console root add remove Snap-in Certificates add CA server certification authority Computer services Active directory Domain services certificate services adcs LDAPs over SSL configuration vsphere 7.png

First select Computer account on Certificates snap-in and in the Select Computer keep default Local computer (the computer this console is running on) and press Finish. Repeat same process again click Certificates and click Add, but this time choose Service account and in the Select Computer keep default Local computer (the computer this console is running on), on the next select Active Directory Domain Services. In the last click Finish. Now under selected snap-ins you will see two certificates snap-ins, Click OK to proceed.

This will help to install certificates, which are digital credentials used to connect to wireless networks, protect content, establish identity, and do other security-related tasks.

vmware vsphere certificates snap-in select computer local active directory domain services account computer ADFS vmware vCenter vsphere 7 ldaps over ssl configuration.png

Next go to Certificates (Local Computer) mmc console — it is a LocalMachine certificate stores (Computer Account). Under Personal >> right click Certificates and choose All Tasks, then Request New Certificate. On the Certificate Enrollment Wizard, click Next on Before you Begin and Select Certificate Enrollment Policy, Request LDAPs certificate from list, the earlier created one by clicking check box. Check if Certificate Installation status is succeeded and press Finish (If it is failing restart Certificate Authority services and try again).mmc certicates plug-in active directory certificate enrollment policy ldaps over SSL kdc authentication kereberos server authentication vsphere 7 identity federation adfs digital signature, request certificates install.png

New certificate will be listed with Certificate Intended Purposes is KDC Authentication, Samrt Card Logon, Server Authentication, Client Authentication. and Issued to is FQDN of domain controller computer where this certificate was installed. Note down Thumbprint

Create a new Folder with below command.

New-Item -Path C: -Name Certs -ItemType Directory

Next from the LocalMachine >> Personal certificates store list all the certificates specially with ThumbPrint. Match the thumbprint on the cert, and use it to export it as PFX certificate with password.

Get-ChildItem Cert:LocalMachineMy | Select-Object ThumbPrint, Subject, NotAfter, EnhancedKeyUsageList

#Change Password and Certificate ThumbPrint accordingly.
$password = ConvertTo-SecureString -String "123456" -Force -AsPlainText
Get-ChildItem -Path Cert:LocalMachineMy0F388654F85C5E1A3934B18293C0FFAB6BD464DF | Export-PfxCertificate -FilePath C:CertsLDAPs.pfx -Password $password

My new certificate is generated unde path C:Certs with name LDAPs.

console root mmc localmachine personal my kdc authentication thumbprint certificate authority ca server LDAPs over SSL vmware vsphere identity federation adfs adcs.png

Next copy the certificate from LocalMachine Personal store to the Active Directory Domain Services Service Account Certificate store under NTDSPersonal Certificates, using below command. 

#Change Certificate ThumbPrint accordingly.
Move-Item "HKLM:SOFTWAREMicrosoftSystemCertificatesMYCertificates0F388654F85C5E1A3934B18293C0FFAB6BD464DF" "HKLM:SOFTWAREMicrosoftCryptographyServicesNTDSSystemCertificatesMYCertificates"

Verify certificates in MMC console or on registry location HKLM:SOFTWAREMicrosoftCryptographyServicesNTDSSystemCertificatesMYCertificates whether they are added successfully.

move-Item certificate system certificate authority hklm active directory domain services KDC server authentication Export-pfxcertificate import-certificate enroll LDAPS ad ssl.png

This is last step in the article, verify LDAPs is correctly setup/configured buy connecting it. For this we need ldp.exe tool, Make sure RSAT AD tools are installed before using it. (It is already installed on Active directory if AD tools are selected for installation)

Install-WindowsFeature RSAT-AD-Tools -IncludeAllSubFeature -IncludeManagementTools

Search for ldp and open it. On the Connection menu select connect choose server, make sure FQDN is selected, Port is 636 and SSL is checked, Click OK to proceed. Once succeeded It shows Established connection to selected domain controller.

Install-WindowsFeature RSAT-AD-Tools ldp.exe connection connect port 636 ssl ldaps over ssl vmware vsphere 7 federated identity new feature adfs.png

Useful Articles
Generate new self-signed certificates for ESXi using OpenSSL
Push SSL certificates to client computers using Group Policy
Replacing a default ESXi certificate with a CA-Signed certificate
Troubleshooting replacing a corrupted certificate on Esxi server
How to import default vCenter server appliance VMCA root certificate and refresh CA certificate on ESXi
How to replace default vCenter VMCA certificate with Microsoft CA signed certificate
 

Установка роли Веб-сервер (IIS 10)

Запускаем диспетчер серверов, выбираем Добавить роли и компоненты.

Выбираем роль Веб-сервер (IIS)

Выбираем компоненты:

В настройках службы ролей IIS выбираем:

Вставляем в привод установочный диск Windows Server 2016, указываем альтернативный исходный путь:

Нажимаем Установить. Завершения установки можно не ждать. После завершения установки в адресной строке браузера набираем localhost и видим веб-страницу IIS.

Установка PHP

Скачиваем PHP 7 non Thread Safe (ссылка).

Скачиваем и устанавливаем соответствующую версию распространяемого пакета VC++. Для php7 это VC++15.

Распаковываем php в папку c:PHPphp7

Скачиваем Microsoft Drivers for PHP for SQL Server 4.1.0 и распаковываем файл php_sqlsrv_7_nts.dll в папку c:PHPphp7ext

Скачиваем wincache for PHP 7 и распаковываем файл php_wincache.dll в папку c:PHPphp7ext

Файл php.ini-production сохраняем под именем php.ini. Редактируем файл php.ini

error_log = "c:PHPphp7logsphp_errors.log" ; место хранения логов об ошибках
post_max_size = 500M
extension_dir = "c:PHPphp7ext"; расположение расширений
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
max_execution_time = 300
upload_max_filesize = 500M
date.timezone = "Asia/Yekaterinburg"
memory_limit = 768M

Настройка opcache:

opcache.memory_consumption=128
opcache.max_accelerated_files=8000
opcache.revalidate_freq=60
opcache.use_cwd=1
opcache.validate_timestamps=1
opcache.save_comments=1
opcache.enable_file_override=0

Раскомментировать строки:

extension=php_fileinfo.dll
extension=php_imap
extension=php_intl.dll
extension=php_ldap

Закомментировать строки:

extension=php_mysqli.dll

Добавить строки:

extension=php_sqlsrv_7_nts.dll
extension=php_wincache.dll

Устанавливаем PHP Manager for IIS 1.4. После установки запускаем Диспетчер служб IIS, открываем Администратор PHP.

Нажимаем Зарегистрировать новую версию PHP.

Указываем путь до файла php-cgi.exe.

Проверяем в Администраторе PHP, нет ли неоптимальных настроек. Если есть — следуем указаниям.

В папке c:inetpubwwwroot создаем файл index.php с содержимым:

<?php
phpinfo();
?>

В браузере открываем URL: http://localhost/index.php

Проверяем, что подключились нужные библиотеки:

Настроим типы MIME.

Добавим новое расширение для php.

Установка PHP завершена.

Скачиваем с официального сайта zip-архив Moodle (не Moodle installer for Windows!) и языковой пакет.

Распаковываем все содержимое архива в папку c:inetpubmoodle

Устанавливаем права на папку moodle на чтение для пользователей IUSR, IIS_IUSRS.

Для хранения данных создаем дополнительную папку c:inetpubmoodledata

Она должна располагаться вне папки moodle.

Устанавливаем права на папку moodledata на изменение для пользователей IUSR, IIS_IUSRS и для пользователей домена, если планируется LDAP-аутентификация. Также дадим права на изменение для пользователей IUSR, IIS_IUSRS для следующих папок:

c:inetpubmoodletheme - установка тем
c:inetpubmoodlequestiontype - установка типов вопросов
c:inetpubmoodlemod - установка плагинов

Создаем файл конфигурации moodle – config.php, скопировав файл config-dist.php и переименовав его.

Устанавливаем ODBC Driver 13 for MS SQL Server.

Задаем в этом файле настройки для подключения к БД, которая уже создана:

$CFG->dbtype    = sqlsrv;
$CFG->dblibrary = 'native';
$CFG->dbhost    = SQLServerName;
$CFG->dbname    = 'moodle';
$CFG->dbuser    = 'moodle';
$CFG->dbpass    =password;

Значения ниже (сортировка БД и т.д.) стираем. Указываем настройки домена и путь к папке moodledata:

$CFG->wwwroot   = 'http://mysite';
$CFG->dataroot  = 'c:inetpubmoodledata';

Создаем сайт в IIS и устанавливаем Moodle

В Диспетчере служб IIS добавляем веб-сайт…

Указываем имя сайта (которое задали в config.php) и путь до папки moodle. Для сайта отключаем анонимную проверку подлинности, включаем проверку подлинности Windows.

Запускаем браузер, вводим в адресную строку доменное имя сайта. Соглашаемся с лицензионным соглашением. Проверяем, что все необходимые плагины установлены.

Далее запускается скрипт создания необходимых таблиц. Для этого у указанной в config.php учетной записи должны быть все необходимые права.

Задаем полное и короткое название сайта. Выбираем язык, страну, заканчиваем настройку.

Распаковываем языковой пакет в папку c:inetpubmoodledatalang

Настройка Moodle

Устанавливаем русскую локализацию.

Переходим в Site administration – Language – Language packs. Видим, что установлены два языка – русский и английский. Возвращаемся на уровень выше и выбираем Default language – Русский язык.

Под учетной записью администратора заходим в Личный кабинет – Preferences – User account –Preferred language, ставим русский язык.

Переходим в меню Администрирование – Уведомления. Видим предупреждение «База данных не использует режим READ_COMMITTED_SNAPSHOT, что может привести к неправильным результатам, особенно при одновременном выполнении большого количества сценариев.»

Выполняем запрос в БД:

alter database moodle
      set read_committed_snapshot on;

Администрирование – Расширенные возможности:

  • Включить комментарии – нет
  • Включить систему обмена сообщениями — нет
  • Включить статистику — Да
  • Разрешить блоги — нет

Администрирование – Значки – Настройки значков:

  • Разрешить подключение к внешним коллекциям наград — нет

Администрирование – Местонахождение – Настройки местонахождения:

  • Принудительный часовой пояс – устанавливаем свой часовой пояс
  • Страна по умолчанию – Россия
  • Город по умолчанию – устанавливаем свой город

Администрирование – Безопасность – Политика безопасности сайта:

  • Принуждать пользователей входить в систему – вкл
  • Разрешить индексирование поисковыми системами – нигде
  • Видимые роли профиля – только студент
  • Разрешить в логинах дополнительные символы – да
  • Длина пароля — 6
  • Не буквенно-цифровых символов — 0

Администрирование – Безопасность – Уведомления

  • Уведомлять об ошибках входа – да, Admin User

Администрирование – Пользователи – Учетные записи – Поля профиля пользователя:

  • Добавляем два поля профиля типа «Текстовое поле» (понадобится при составлении отчетов): fio (Фамилия Имя Отчество) и position (Должность).

Администрирование – Пользователи – Права – Политики пользователя

  • Скрыть поля пользователя – скрыть все, кроме описания, последний вход.
  • Отображать персональные данные – Адрес электронной почты, Отдел, Учреждение

Администрирование – Пользователи – Права – Определить роли

Для роли Пользователи:

  • Управлять файлами в области личных файлов – убираем права для роли Аутентифицированный пользователь

Администрирование – Курсы – Настройки курса по умолчанию:

  • Принудительный язык – Русский
  • Количество отображаемых объявлений – 0
  • Показывать журнал оценок студентам – нет

Администрирование – Курсы – Резервные копии – Настройка автоматического резервного копирования

  • Активно – Включено
  • Расписание — Воскресенье

Администрирование – Оценки – Общие настройки

  • Поля профиля пользователя в экспортируемой оценке — institution,department
  • Настраиваемые поля профиля в экспортируемой оценке — fio, position
  • Основные форматы экспорта оценок — Таблица Excel

Установим плагин Questionnaire.

Администрирование – Плагины – Установка плагинов.

Перетаскиваем в поле загрузки zip-архив с плагином.

Обновляем Moodle.

Продолжаем настройку Moodle…

Администрирование – Плагины – Аутентификация – Настройка аутентификации

  • Самостоятельная регистрация по электронной почте – отключаем (клик по глазу)

  • Сервер LDAP – включаем. (Настройку аутентификации через LDAP выполним позднее)
  • Кнопка гостевого входа — Скрыть

Администрирование – Плагины – Блоки – Управление блоками

  • Внешние RSS-ленты – выкл
  • Глобальный поиск — выкл
  • Комментарии – выкл
  • Личные файлы – выкл
  • Поиск в общественных каталогах – выкл
  • Поиск по форумам — выкл
  • Последние значки — выкл
  • Сайты сети MNet — выкл
  • Flickr — выкл

Администрирование – Плагины – Зачисления на курсы – Управление способами зачисления

  • Самостоятельная запись – выкл
  • Гостевой доступ — выкл
  • Синхронизация с глобальной группой — выкл

Администрирование – Плагины – Зачисления на курсы – Гостевой доступ

  • Добавлять этот способ для новых курсов — нет

Администрирование – Плагины- Медиаплееры – Управление медиаплеерами

  • YouTube — выкл

Администрирование – Плагины – Модули элементов курса – Управление элементами курсов — Элементы курса

  • Чат — выкл

Администрирование – Плагины – Хранилища файлов – Управление хранилищами файлов

  • Мои личные файлы — отключено

Администрирование – Внешний вид – Календарь

  • Формат времени – 24

Администрирование – Внешний вид – Навигация

  • Стартовая страница по умолчанию для пользователей. — Сайт
  • Разрешить гостевой доступ к странице «Личный кабинет» — нет
  • Отображать полные названия курсов – да
  • Показывать «Мои курсы» с категориями — да

Администрирование – Сервер – Контакты службы поддержки

  • Имя техподдержки – указываем имя поддержки

Администрирование – Сервер – Производительность

  • Предел дополнительный памяти PHP – 1024М

Администрирование – Сервер – Уведомления об обновлениях

  • Автоматически проверять наличие обновлений — выкл

Администрирование – Сервер – Электронная почта – Настройка исходящей почты

  • SMTP-серверы – указываем имя сервера
  • Логин SMTP – указываем логин
  • Пароль SMTP – указываем пароль
  • Разрешить вложения — выкл

Убираем ссылку на восстановление пароля со страницы входа в систему. Она не нужна, т.к. будет использоваться SSO-аутентификация.

Администрирование – Внешний вид – Дополнительный HTML

Добавляем в тег HEAD строку:

<style>.forgetpass {display: none;}</style>

Настройка LDAP-аутентификации

Администрирование – Плагины – Аутентификация – Сервер LDAP

  • URL сервера — ldap://domaincontroller:3268 (я использую кроссдоменную аутентификацию, поэтому указываю порт 3268. Если этого не нужно, укажите порт 389)
  • Отличительное имя — CN=username, OU=Users, DC=domain, DC=local
  • Тип учетной записи пользователя – MS ActiveDirectory
  • Контейнеры – список контейнеров, в которых хранятся учетные записи пользователей
  • Поиск в дочерних контейнерах — Да
  • Атрибут пользователя – samaccountname
  • NTLM SSO Включить – Да
  • Подсеть – 10. Обязательное значение! У меня IP-адресация в сети начинается с 10.
  • Быстрая проверка в MS IE? – Да, а в остальных браузерах использовать долгую проверку NTLM
  • Формат передаваемого логина — %domain%%username%
  • Сопоставление данных (Имя) – givenName
  • Обновить внутренних (Имя) – При каждом входе
  • Обновить внешних (Имя) – При обновлении
  • Сопоставление данных (Фамилия) – sn
  • Обновить внутренних (Фамилия) — При каждом входе
  • Обновить внешних (Фамилия) — При обновлении
  • Сопоставление данных (Адрес электронной почты) – mail
  • Сопоставление данных (Учреждение (организация)) – company
  • Обновить внутренних (Учреждение (организация)) — При каждом входе
  • Обновить внешних (Учреждение (организация)) — При обновлении
  • Сопоставление данных (Отдел) – department
  • Обновить внутренних (Отдел) — При каждом входе
  • Обновить внешних (Отдел) — При обновлении
  • Сопоставление данных (Должность) – title
  • Обновить внутренних (Должность) — При каждом входе
  • Обновить внешних (Должность) — При обновлении
  • Сопоставление данных (Фамилия Имя Отчество) – displayName
  • Обновить внутренних (Фамилия Имя Отчество) — При каждом входе
  • Обновить внешних (Фамилия Имя Отчество) — При обновлении

Теперь нужно синхронизироваться с LDAP.

Администрирование – Сервер – Планировщик задач

  • Задача синхронизации пользователей LDAP – настроить, Включить задачу.

Создаем задачу для cron

Создаем файл cron.bat с содержимым:

@echo off
set PathPHP="c:PHPphp7php.exe"
set PathCron="c:inetpubmoodleadminclicron.php"
set PathLOG="c:Setupcroncronlogs"
%PathPHP% -f %PathCron% >> %PathLOG%%date"~10,4%%date:~4,2%%date:~7,2%.log
Forfiles /P %PathLOG% /S /M *.log /D -5 /C "cmd /c del /q @path"

В планировщике задач (Меню Пуск – Средства администрирования – Планировщик задач) создаем задачу, указываем время выполнения – запускать каждые 5 минут, выполнять bat-файл c:Setupcroncron.bat, запускать скрипт от имени учетной записи, у которой есть права записи в папку c:inetpubmoodle (например, от администратора).

Проверяем работу скрипта, ошибки будут писаться в папку c:Setupcroncronlogs

При необходимости правим файл php.ini

Установка и настройка завершены.

Enable LDAP over SSL (LDAPS) for Microsoft Active Directory servers.

Microsoft active directory servers will default to offer LDAP connections over unencrypted connections (boo!).

The steps below will create a new self signed certificate appropriate for use with and thus enabling LDAPS for an AD server. Of course the «self-signed» portion of this guide can be swapped out with a real vendor purchased certificate if required.

Steps have been tested successfully with Windows Server 2012R2, but should work with Windows Server 2008 without modification. Requires a working OpenSSL install (ideally Linux/OSX) and (obviously) a Windows Active Directory server.

  • Create root certificate
  • Import root certificate into trusted store of domain controller
  • Create client certificate
  • Accept and import certificate
  • Reload active directory SSL certificate
  • Test LDAPS using ldp.exe utility
  • Reference

Create root certificate

Using OpenSSL, create new private key and root certificate. Answer country/state/org questions as suitable:

$ openssl genrsa -aes256 -out ca.key 4096
$ openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

Hold onto the resulting ca.key and ca.crt.

Import root certificate into trusted store of domain controller

  • From the active directory server, open Manage computer certificates.
  • Add the generated ca.crt to the certificate path Trusted Root Certification AuthoritiesCertificates.
  • Done.

Create client certificate

We will now create a client certificate to be used for LDAPS, signed against our generated root certificate.

From the active directory server:

  • Create a new request.inf definition with the following contents — replacing ACTIVE_DIRECTORY_FQDN with the qualified domain name of your active directory server:

     [Version]
     Signature="$Windows NT$"
    
     [NewRequest]
     Subject = "CN=ACTIVE_DIRECTORY_FQDN"
     KeySpec = 1
     KeyLength = 2048
     Exportable = TRUE
     MachineKeySet = TRUE
     SMIME = FALSE
     PrivateKeyArchive = FALSE
     UserProtected = FALSE
     UseExistingKeySet = FALSE
     ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
     ProviderType = 12
     RequestType = PKCS10
     KeyUsage = 0xa0
    
     [EnhancedKeyUsageExtension]
     OID = 1.3.6.1.5.5.7.3.1 ; Server Authentication
    
  • Run the following to create a client certificate request of client.csr (note: it’s critical this is run from the active directory server itself to ensure correct private key -> certificate association):

     C:> certreq -new request.inf client.csr

Back to our OpenSSL system:

  • Create v3ext.txt containing the following:

     keyUsage=digitalSignature,keyEncipherment
     extendedKeyUsage=serverAuth
     subjectKeyIdentifier=hash
    
  • Create a certificate client.crt from certificate request client.csr and root certificate (with private key):

     $ openssl x509 
       -req -days 3650 
       -in client.csr -CA ca.crt -CAkey ca.key -extfile v3ext.txt 
       -set_serial 01 -out client.crt
  • Verify generated certificate:

     $ openssl x509 -in client.crt -text
  • Ensure the following X509v3 extensions are all present:

    • X509v3 Key Usage: Digital Signature, Key Encipherment
    • X509v3 Extended Key Usage: TLS Web Server Authentication
    • X509v3 Subject Key Identifier

Accept and import certificate

  • From the active directory server with client.crt present, run the following:

     C:> certreq -accept client.crt
  • Open Manage computer certificates, the new certificate should now be present under PersonalCertificates. Ensure that:

    • Certificate has a private key association.
    • The «Intended Purposes» is defined as «Server Authentication».
    • Certificate name is the FQDN of the active directory server.

Reload active directory SSL certificate

Alternatively you can just reboot the server, but this method will instruct the active directory server to simply reload a suitable SSL certificate and if found, enable LDAPS:

  • Create ldap-renewservercert.txt containing the following:

     dn:
     changetype: modify
     add: renewServerCertificate
     renewServerCertificate: 1
     -
    
  • Run the following command:

     C:> ldifde -i -f ldap-renewservercert.txt

Test LDAPS using ldp.exe utility

  • From another domain controller, firstly install our generated root certificate ca.crt to the certificate path Trusted Root Certification AuthoritiesCertificates.

  • Open utility:

  • From Connection, select Connect.

  • Enter name of target domain controller.

  • Enter 636 as port number (this is the LDAPS port).

  • Click OK to confirm the connection works.

  • You’re all done!

Reference

  • Enable LDAP over SSL with a third-party certification authority: https://support.microsoft.com/en-us/kb/321051
  • LDAP renewServerCertificate: https://msdn.microsoft.com/en-us/library/cc223311.aspx
  • How to Enable LDAPS in Active Directory (similar outcome to above): http://www.javaxt.com/tutorials/windows/how_to_enable_ldaps_in_active_directory
  • DigiCert LDAPS certificate install guide: https://www.digicert.com/ssl-certificate-installation-microsoft-active-directory-ldap-2012.htm

Привет.

Я часто пишу про тюнинг Active Directory – данная тема интересна тем, что практически на каждом предприятии данная инфраструктурная служба есть, и в большинстве случаев из её возможностей используется малая толика. В данной статье я расскажу про редкий и не освещаемый в простеньких авторизованных курсах функционал – LDAP-политики или Query Policy. Причина забвения данной темы, которая существует с Windows 2000 Server, тривиальна – и без настройки LDAP-политик всё работает с Default Query Policy. Однако в высоконагруженных или требующих взаимодействия с внешними LDAP-сервисами применениях знать, как работают LDAP-политики – надо.

Я предполагаю, что вы знаете, что такое CN, DN, RDN, LDAP, DC, GC, не путаете сайты Active Directory и то, что в IE, а также прониклись Active Directory настолько, что браузер для вас – это вначале ADSI.msc и только после – всё остальное. Наличие знаний хотя бы на уровне MCSA Windows Server 2012 обязательно.

Сразу предупреждение – не надо сразу бежать и применять то, что тут написано, на практике не спланировав и не подумав. Ряд приведённых настроек при быстром и решительном применении могут превратить процесс тюнинга службы каталогов в доработку резюме на сайте хехе.ру. Подумайте, спланируйте, продумайте последовательное применение и аккуратно, понемногу проводите изменения.

Мы будем изучать все существующие в природе Query Policy – начиная с Windows 2000 Server и заканчивая доступной на данный момент версией Windows Server 2016.

LDAP-политики (Query Policy) в Active Directory

  • Что такое политики LDAP в Active Directory и зачем они нужны
  • Базовые операции с политиками
  • Как узнать, какие политики Query Policy поддерживаются
  • Настраиваем параметры фильтрации доступа к LDAP
  • Параметры функционирования LDAP
  • Настраиваем параметры функционирования LDAP в Windows Server 2016
  • Формат Query Policy
  • Параметры, существующие с Windows 2000 Server
    • Параметр Query Policy – MaxActiveQueries
    • Параметр Query Policy – InitRecvTimeout
    • Параметр Query Policy – MaxConnections
    • Параметр Query Policy – MaxConnIdleTime
    • Параметр Query Policy – MaxDatagramRecv
    • Параметр Query Policy – MaxNotificationPerConn
    • Параметр Query Policy – MaxPoolThreads
    • Параметр Query Policy – MaxReceiveBuffer
    • Параметр Query Policy – MaxPageSize
    • Параметр Query Policy – MaxQueryDuration
    • Параметр Query Policy – MaxResultSetSize
    • Параметр Query Policy – MaxTempTableSize
  • Параметры, существующие с Windows Server 2003
    • Параметр Query Policy – MaxValRange
  • Параметры, существующие с Windows Server 2008 R2
    • Параметр Query Policy – MaxResultSetsPerConn
    • Параметр Query Policy – MinResultSets
  • Параметры, существующие с Windows Server 2012
    • Параметр Query Policy – MaxBatchReturnMessages
  • Параметры, существующие с Windows Server 2016
    • Параметр Query Policy – MaxDirSyncDuration
  • Отключаем жестко заданные лимиты настроек
  • Создаём новую Query Policy

Начнём.

Что такое политики LDAP в Active Directory и зачем они нужны

Под термином “политики” в связи с Active Directory обычно имеются в виду групповые политики – мощное и легко расширяемое средство для централизованного управления многими настройками ОС и приложений. Некоторые ещё вспоминают “политики паролей” – PSO, которые появились с Windows Server 2008.

Однако, есть ещё одно применение термина “политики Active Directory” – благодаря объектам, которые относятся к классу queryPolicy, существует возможность тонкой настройки работы контроллеров домена (DC) и серверов глобального каталога (GC), а также ощутимого повышения скорости, надёжности и безопасности их функционирования. Все эти параметры будут относиться именно к клиентским запросам по LDAP и ограничивать размер ответа, занимаемую память, диапазон значений, тайм-ауты и другие подобные свойства. Давайте разберёмся что это, и как это можно (и нужно) эффективно использовать.

Базовые операции с политиками

Query Policy хранятся в специальных объектах класса queryPolicy. Сам класс queryPolicy представляет из себя объект, содержащий в себе “пачку” настроек, которые читаются LDAP-серверами. Пачка реализована как многострочные атрибуты lDAPAdminLimits и lDAPIPDenyList, которые можно редактировать вручную, прямо в объекте AD, а можно “по-красивому”, через утилиту dsmgmt (ранее – через ntdsutil).

Утилита dsmgmt идеологически “более правильная” по причине, что ntdsutil изначально предназначался для работы именно с Active Directory, а dsmgmt позиционируется как более общее решение, которое должно работать со всеми службами LDAP-каталогов, включая AD LDS. А вообще, можно это всё править и через оснастку ADSI Editor. И через вкладку “Attributes” у объекта queryPolicy. И через древнюю утилиту ldp.exe. Особой разницы нет – LDAP – достаточно демократичная штука.

Объекты этого класса находятся в специальном контейнере, который расположен в разделе леса Configuration по DN-адресу CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=контекст-Вашего-леса-Active-Directory. Вы можете увидеть их глазами, если откроете стандартную оснастку Active Directory Sites and Services и не забудете включить отображение ветки лесных сервисов – View / Show Services Node:

Достаточно логично, что эти объекты находятся в разделе configuration, который реплицируется на все контроллеры в лесу. Ведь данные политики применяются не только на контроллеры конкретного домена, а и на GC, и на сайты, которые привязки к доменам не имеют.

Изначально в Active Directory создан единственный объект LDAP-политик с именем Default Query Policy, который содержит настройки “по умолчанию”. Вы его видели на первом скриншоте – а вот так выглядят его настройки для новорожденного DC на Windows Server 2016:

Этот объект надо никогда не трогать. Почему – будет видно далее, а теперь мы поговорим о том, как эти объекты применяются на свою “целевую аудиторию” (DC/GC), редактируются и создаются.

Схема применения LDAP-политик

Объекты queryPolicy могут привязываться к сайту Active Directory, а могут и (что неочевидно) к конкретному контроллеру. Какая же будет логика применения нескольких политик queryPolicy?

  1. Контроллер домена смотрит раздел леса Configuration, открывает там контейнер Sites, находит себя и в своём дочернем объекте c CN=NTDS Settings и типом nTDSDSA смотрит на атрибут queryPolicyObject. Если там есть DN политики – настройки применяются и обработка прекращается. Т.е. не как в групповой политике, когда результирующая политика представляет собой “сумму наложений” всех политик на объекте, а сразу – раз политику нашёл, то применил и обработку остановил.
  2. Если своей политики у контроллера домена нет, он берёт свой сайт, открывает его дочерний объект с CN=NTDS Settings и типом ntDSSiteSettings, находит там атрибут queryPolicyObject (у которого там может и не быть значения, он опциональный), и, в случае наличия, берёт DN объекта LDAP-политики из него. В этом случае обработка также останавливается.
  3. Если не нашлось ничего – контроллер не унывает и идёт читать дефолтный объект с именем Default Query Policy. Поэтому, если Вы придумали свои новые и отличные настройки – всегда делайте новый объект, а не редактируйте дефолтный, чтобы иметь возможность лёгкого возврата настроек (что-то не работает – удалили ссылку на свой объект, контроллер стал читать дефолтный).

Добавлю, что, несмотря на одинаковое название – NTDS Settings, у сайта и у DC объект имеет разные типы – Site Settings (nTDSSiteSettings) и Domain Controller Settings (nTDSDSA).

По сути работа Query Policy ещё проще, чем в случае с групповыми политиками, где стандартную схему применения модицифируют многочисленные дополнительные инструменты. Теперь перейдём к самим настройкам, которые будут разделяться на две части (т.к. атрибута, в которых они задаются, тоже два – lDAPIPDenyList и lDAPAdminLimits.

Как узнать, какие политики Query Policy поддерживаются

Параметры меняются от версии к версии – и каждый контроллер с удовольствием расскажет вам, какие параметры QueryPolicy он знает и умеет обрабатывать. Для этого в LDAP 3.0 объявлен специальный объект root DSA-specific Entry (RootDSE), и у него есть multivalued атрибут supportedLDAPPolicies – вы увидите эти данные, просто подключившись к контроллеру, например, при помощи ldp.exe:

У некоторых параметров есть жестко зафиксированные, на уровне программного кода ядер NT 6.0 и старше, максимальные значения. В этом случае я это адресно указываю – мол, в любом случае, что бы Вы не выставили, параметр будет интерпретироваться как такой-то.

Замечу, что аутентификация не нужна – по RFC 2251 данный объект, описывающий возможности LDAP-сервера, поддерживающего LDAP 3.0, должен быть доступен любому.

Ну а теперь можно и понастраивать.

Настраиваем параметры фильтрации доступа к LDAP

Первое и самое простое – фильтрация доступа к контроллерам. Благодаря политикам LDAP Вы можете выбрать IP-адреса, доступ с которых будет заблокирован. Делается это достаточно просто – в каждом объекте queryPolicy есть атрибут lDAPIPDenyList, в котором можно указать нужное количество блокируемых адресов. Формат атрибута – массив строк, а каждая строка должна выглядеть просто – IPv4 адрес, пробел и маска. Например строка:

172.16.0.0 255.240.0.0

заблокирует все обращения к контроллеру с частных IPv4-адресов сетей класса B. Для IPv6 данный механизм не реализован. В устаревшей документации можно встретить утверждение, что данный атрибут работает только для дефолтного объекта LDAP-политик, с CN=Default Query Policy. Это не так – работает и в других.

Думаю, что использование такого параметра вполне очевидно – в случае теоретической доступности контроллера со стороны “ненужных” сетей доступ можно заблокировать. Хотя на данный момент в Windows Server имеется Advanced Firewall, который сам может это сделать, функционал блокировки адресов именно на уровне LDAP-запроса присутствует. Во многом по причине того, что когда данный функционал появился (в 1999 году, вместе с рождением Active Directory), встроенного Firewall в Windows Server не было.

Настраиваем параметры функционирования LDAP в Windows Server 2016

Теперь перейдём к основному массиву настроек. Мы разобьём их список по версиям серверной ОС – от Windows 2000 Server до Windows Server 2016.

Формат Query Policy

Все параметры LDAP-политик имеют формат вида “Имя=Значение”. То есть если нужно присвоить атрибуту Parameter значение 7, результирующая строка будет Parameter=7.

Параметры, существующие с Windows Server 2000

Параметр Query Policy – MaxActiveQueries

Поддерживается версиями ОС

Только Windows 2000 Server; начиная с Windows Server 2003 параметр игнорируется.

Значение по умолчанию

20

Что делает

Когда использовался, указывал максимальное количество параллельно работающих операций поиска в LDAP на конкретном DC. По достижению этого числа DC выдавал при попытке “заказать” операцию поиска ошибку ERROR_DS_ADMIN_LIMIT_EXCEEDED. Сейчас не используется, потому что есть более “умная” настройка, ограничивающая количество параллельных операций не для DC, а для ядра процессора.

Параметр Query Policy – InitRecvTimeout

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

120

Что делает

Устанавливает время в секундах, за которое клиент после подключения (фактически, после bind) должен отправить первый рабочий запрос на LDAP-операцию. Если тайм-аут проходит, а клиент молчит, его отключают.

Модифицируем, например, в случае использования внешнего ПО, которое любит “подключиться и думать, что сказать для начала”. К такому ПО относится ряд продуктов IBM (например, Lotus Domino), а также продуктов Microsoft – тот же ILM 2007 и FIM 2010. Ситуация достаточно проста – если у Вас есть такое ПО, то, возможно, Вам имеет смысл увеличить тайм-аут хотя бы до 240 секунд (я увеличивал в случае с FIM 2010 до 600, это давало плюсы). Это не приведёт к какой-то дополнительной нагрузке на DC, скорее, наоборот – если ПО разработано так, что оно вначале находит ближайший/лучший DC и “цепляется” за него, после где-то у себя в голове ставит галочку “ОК, подключились, теперь будем, если что, запросы кидать”, и далее штатно делает с AD операции, то не имеет смысла держать тайм-аут таким, чтобы он регулярно сбрасывал подключение этого ПО, приводя ситуацию к “странно, вроде подключились, запрос кидать пробую – ошибка. наверное, AD нерабочая…”. Это может привести в хорошем варианте к повторной аутентикации ПО, в плохом – к неработоспособности и достаточно смутным ошибкам. Учитывайте, что существование данного параметра в не-дефолтном значении будет отрабатываться только в хорошо спроектированном ПО, которое работает с LDAP достаточно качественно. Поэтому в общем случае лучше увеличить этот параметр для “доверенного” ПО – пусть подключается и висит, нагрузки от единичных пустых LDAP-сессий нет, а траблшутить Лотус, который вначале подключается и через полчаса лезет почитать, что там интересного в Active Directory, дело очень унылое.

Данный механизм предназначен для защиты от DDoS, а не для воспитательно-карательных мер в отношении легального ПО. Не имеет смысла “наказывать” специфично спроектированное ПО тем, что сбрасывать его сессию.

Но в случае контроллера, работа с которым ведётся исключительно короткими сессиями (на нём не сидит админ с открытой консолью Active Directory Users & Computers весь день, с него лишь периодически “подкачивают” политику клиентские системы), имеет смысл понизить этот тайм-аут в целях своевременного “сброса” непонятных подключений. Нормальные клиенты подключаются и сразу же делают нужные операции. Опыт настройки в различных инсталляциях показал, что снижение до 15 секунд в такой ситуации является вполне эффективным и никак не влияет на применение групповых политик и LDAP-операции клиентов (даже географически удалённых и с медленными каналами связи).

Ещё раз – это ограничение стартового тайм-аута – т.е. ожидания первой операции клиента. Idle timeout рассматривается дальше.

Параметр Query Policy – MaxConnections

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

5000

Что делает

Обозначает максимально возможное количество одновременных LDAP-подключений на DC. Заметьте – не после ldap bind, а вообще, т.е. в случае с обычным DC это будет математическая сумма подключений по портам TCP 389 и TCP 636. Что интересно, при появлении “лишнего” подключения (в дефолтном случае – 5001го) контроллером будет сброшено какое-то из существующих. Критерий сброса в документации не указан, эксперименты показали, что вроде как сбрасывается самое “старое” подключение, однако не всегда – на одной и той же инсталляции DC иногда сходил с ума и начинал дропить без видимой логики выбора.

Меняем это значение, если думаем о безопасности Active Directory. По сути, данный параметр надо увеличивать хотя бы раз в 10 сразу, потому что иначе атака вида DoS на контроллер домена может быть вполне успешно и оперативно реализована – подключаясь в цикле (даже авторизуясь при этом – кто мешает, читать-то AD могут Authenticated Users, а RootDSE и Everyone) можно легко “догнать” суммарное количество сессий до лимита, а после, продолжая инициировать подключения, заставить контроллер сбрасывать рабочие сессии. При этом с точки зрения системы DC загружен не будет (процессор не нагружен, память не кончилась, сетевой интерфейс не загружен, очереди диска нет), а легальные клиенты испытают проблемы. Правда, когда легальный клиент переподключится, то он “выбьет” одну из фейковых сессий LDAP и, в зависимости от нагрузки, может успеть сделать что-то полезное, пока его, в свою очередь, не “выбьет” скрипт, генерящий фейковые сессии.

Параметр Query Policy – MaxConnIdleTime

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

900

Что делает

Устанавливает время бездействия, после которого подключение штатно разрывается со стороны сервера. Важно: время бездействия – это время от поступления на сервер последнего запроса клиента (т.е. если время бездействия выставить в 30 секунд, а клиент запросил выборку, которая по медленному каналу качалась бы больше 30 секунд, контроллер не даст команде корректно отработать – проверено).

В случае наличия ПО, которое постоянно держит открытой подключение на контроллеры домена (тот же Exchange) тайм-аут можно и увеличить, но 15 минут обычно вроде как достаточно. Замечу, что этот тайм-аут сбрасывает только уже аутентицированного клиента. Поэтому в случае, например, “жесткой” привязки Exchange на DC/GC вполне можно этот тайм-аут увеличить – уменьшите количество переподключений. В случае же работы с внешними сервисами (трудно придумать сходу – ну, например, реализуя публично доступный LDAP-каталог (lol)) тайм-аут можно сократить в разы, хоть до 15 секунд – обычно в таких сценариях клиент подключается, делает штучный запрос, и всё – его можно отключать. Надо – ещё раз придёт.

Параметр Query Policy – MaxDatagramRecv

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

4096 байт

Что делает

Устанавливает максимальный размер UDP-датаграммы, которую обрабатывает DC. Т.е. если придёт датаграмма размером больше указанного, контроллер должен её отбросить.

Надо ли править? Обычно нет по банальной причине – LDAP в Active Directory работает по TCP. Никакого особого КПД найти в ограничении размера UDP-пакета не получится, а раз не получится – то надо взять за правило не трогать параметры без явно подтверждённых на то причин. Есть сценарий, в котором повышение этого размера до 64K может быть позитивным, но он мало относится к теме статьи.

Кстати, ранее (в Windows 2000 Server) это значение было меньше в 4 раза, 1024 байта.

Параметр Query Policy – MaxNotificationPerConn

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

5

Что делает

Определяет максимальное количество стоящих в очереди запросов клиента. Т.е. суть проста – клиент подключается, авторизируется, и делает запрос. Клиенту подтверждают, что запрос начинает выполняться, а клиент уже запрашивает следующий. Формируется очередь LDAP-запросов, а данный параметр ограничивает её. Очередь работает по логике FIFO, а действие этого параметра – обычный tail drop, а клиент получает не подтверждение о постановке запроса в очередь, а ERROR_DS_ADMIN_LIMIT_EXCEEDED.

Модифицируем очень осторожно; с одной стороны – снижение этого числа может достаточно эффективно ликвидировать возможность хитрого DoS’а – фейковый клиент подключается, подтверждает подлинность и начинает доставать сервер запросами – “хочу всех пользователей, у которых поле X похоже на Y”, специально подбирая запросы по таким полям, которые и индексируются, и содержат наиболее обширные данные. Да и ANR тут только ухудшит ситуацию. Вопрос вообще достаточно тонкий, требует понимания и тюнинга всей системы индексации атрибутов объектов в Active Directory и в отрыве от этого рассматриваться не должен. Но в общих чертах – да, уменьшение этого числа для DC, с которыми не работают сервисы типа Exchange, а только обычные клиенты, может оказаться превентивной мерой для описаных выше специфических атак.

Параметр Query Policy – MaxPoolThreads

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

4

Что делает

Определяет количество потоков на одном логическом процессоре, доступном DC/GC. Это будут как потоки для обслуживания входящих из сети запросов, так и потоки для обработки LDAP-поиска. То есть, говоря проще, если Вы поставите DC/GC в виртуальную машину и дадите этой виртуальной машине 2 процессора, данный параметр ограничит число параллельных потоков выполнения до 2*4=8. Потоков, заметьте, а не процессов.

Вполне разумно увеличить этот параметр, если у Вас достаточно производительные процессоры. Теоретически можно придумать DoS-атаку, которая выдаст столько запросов (и достаточно “долгоиграющих”), что контроллер запустит их параллельно, и их количество будет достаточно, чтобы “положить” систему. Смотрите и думайте сами, я лишь могу предложить увеличивать этот параметр для систем с быстрыми CPU – до 10 потоков на процессор.

Параметр Query Policy – MaxReceiveBuffer

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

10,485,760 (10 МБайт)

Что делает

Это – размер буфера для одиночного запроса клиента. Если думаете, что это много, просто вспомните, что запрос – это не обязательно текстовая строчка вида (&(l=Кремль)(|(givenName=Дима)(givenName=Вова))), это может быть и масштабная выборка вида “надо все поля всех клиентов, у кого почта на .ru заканчивается”.

Данный параметр тесно связан с количеством одновременно возможных запросов. По сути, вся его оптимизация – это экономия потенциально выделенной памяти в количестве MaxReceiveBuffer * MaxConnections. Заметьте, память выделяется динамически, поэтому наличие этого буфера в 10МБ и количества подключений в 5000 не говорит о том, что DC/GC попытается выделить 50ГБ под буферизацию LDAP-запросов. Т.е. такое возможно в теории, на практике под каждый запрос сразу 10МБ не выделяется. Лучший вариант – мониторинг Вашей инсталляции Active Directory и, в случае отсутствия запросов подобных размеров, снижение этого числа (которое в реальности сделано с большим запасом). На практике в достаточно больших инсталляциях (несколько тысяч хостов, порядка 20 серверов Exchange) данный параметр, будучи установленым в 1МБ, не вызывал никаких проблем.

Кстати, в своё время (в Windows Server 2003) была ошибка, связаннае с тем, что сервер некорректно выделял память под буфер, если его размер в байтах больше странного числа 10737418. Ошибку давно поправили, лечилась она форсированной установкой буфера в 10485760 байт.

У этого параметра есть верхний лимит – 20971520 (в случае попытки выставить параметр выше по факту будет применено это значение).

Параметр Query Policy – MaxPageSize

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

1000

Что делает

Этот параметр достаточно неочевиден по своей настройке. Суть в том, что это не максимальный размер возвращаемых запросом результатов, а размер одной страницы с этими результатами. Если при поиске будет возвращено большее количество объектов, то они будут возвращаться блоками, которые и называются страницами. Сервер держит эти блоки в RAM пока клиент не заберёт их все либо не сделает unbind.

Модифицируем в случае, если хорошо понимаем LDAP и то, что этот параметр, по сути, меняет баланс между “сформировать много страниц ответа и отдавать по одной быстро” vs “сформировать мало страниц и отдавать подольше, но реже”. Интересным является тот факт, что “родной” клиент LDAP в Windows всегда делает paged-запросы, поэтому в принципе сломать что-то этим параметром трудно. Учтите, что тут есть строгая зависимость от того, какие запросы делает клиент – т.е. в случае наличия “глупого” ПО, которое делает не-paged запросы, Вы реально можете ему помешать работать. Если такого ПО нет, я бы рекомендовал снизить этот параметр до 100 исключительно по причине того, что очень малое число запросов к AD возвращают более 100 объектов, а выделять лишнюю память для буферизации смысла нет.
Верхний лимит параметра – 20000 (в случае попытки выставить параметр выше по факту будет применено это значение).

Вообще, нужно учитывать достаточно простую логику Microsoft – все ldap-запросы должны быть с поддержкой paging, поэтому не-paged запросы в общем-то являются потенциально unsupported. Подробнее, если Вы разработчик, можно найти в документации на ldap_create_page_control.

Параметр Query Policy – MaxQueryDuration

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

120

Что делает

То, что и в названии – максимальное время обработки одиночного запроса. Считается от момента поступления оного, а не от подключения клиента, что логично. Как только время закончится – запрос будет остановлен и клиенту будет возвращена ошибка ERROR_INVALID_PARAMETER.

Тонкость – это произойдёт только если запрос всё выполняется. Если же он уже выполнен, вернул много результатов и их постранично забирает клиент, то клиента не отключат. Т.е. цель этого механизма – отключать запросы, которые “перегревают” DC, а не стирать через 2 минуты результаты уже готовых, которые сформированы и лежат в буфере.

На практике этот параметр можно реально уменьшить, и сильно. Две минуты на формирование результатов запроса – это надо иметь огромный лес, сложнейший запрос к GC и очень медленный сервер. Если это не так, запрос даже в 10 секунд – сложная в реальности штука. Опять же – измеряйте Вашу реальную ситуацию и модифицируйте настройки в случае необходимости. Верхний лимит параметра: 1200 (в случае попытки выставить параметр выше по факту будет применено это значение. хотя трудно себе представляю штатный запрос к DC/GC, который в норме выполняется дольше 20 минут).

Параметр Query Policy – MaxResultSetSize

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

262,144

Что делает

Устанавливает размер памяти в байтах (в байтах, а не как иногда пишут – “в объектах”), выделяемых на все результаты всех активных сейчас paged-запросов. Т.е. ещё раз – на вообще все, которые на сервере сейчас уже выполнены, и клиенты их забирают. И именно на paged, которые постранично забирают клиенты. Если места на кэширование результатов нового запроса не хватает, то (ключевое) удаляются результаты старого. И если клиент продолжит его забирать, то надо бы его выполнить повторно.

Лучше всего увеличить этот параметр хотя бы до мегабайта. В крупных инсталляциях хорошо срабатывает увеличение до 16 (число выбрано по причине мониторинга и обнаружения ситуаций, когда в буфере лежало до 10МБ результатов и взято с небольшим запасом). Цель – отсутствие ситуации, когда результаты нового paged-запроса затирают недополученные клиентом результаты более старого paged-запроса.

Кстати, в документации Microsoft есть опечатка – там параметр иногда называется MaxResultSize. Такого параметра нет, можете проверить. Вообще, конечно, параметр логичнее было бы назвать MaxResultSetsSize или какой-нибудь MaxTotalResultSetsSize, но увы.

Параметр Query Policy – MaxTempTableSize

Поддерживается версиями ОС

С Windows 2000 Server.

Значение по умолчанию

10000

Что делает

Достаточно интересный параметр. Суть его в следующем – когда выполняете достаточно сложный запрос, в котором есть логические операции (например, объединения или пересечения множеств), то возникает необходимость в формировании промежуточных таблиц с результатами выборок. В них лежат так называемые candidate object’ы – объекты, часть из которых попадёт в результат. Если размер промежуточной таблицы превзойдёт указанное число записей, то система перестанет обрабатывать запрос пошагово (выбрать множество -> выделить подмножество -> из него выбрать по критерию -> и т.д.) а перейдёт к т.н. direct scan (будет обрабатывать потенциальные объекты по-одному). Вот этот параметр – это максимальный размер такой таблицы для каждого из запросов.

Подумайте, будут ли у Вас запросы, промежуточные результаты которых будут превышать это число, и, в случае наличия оных, увеличьте этот параметр. И обломайтесь – по факту он не увеличится. Производительность таких запросов серьёзно упадёт и Вы ничего сделать не сможете – в Windows Server 2008 R2 максимальное значение этого параметра как раз 10000. Увы, как ни странно, в Windows Server 2003 это можно было регулировать гибче. Т.е. верхний лимит параметра как раз и есть его значение по умолчанию, 10000 – в случае попытки выставить параметр выше по факту будет применено это значение.

Параметры, существующие с Windows Server 2003

Параметр Query Policy – MaxValRange

Поддерживается версиями ОС

С Windows Server 2003.

Значение по умолчанию

1500

Что делает

Устанавливает максимальное число результатов, являющихся полями одного атрибута одного объекта, которые может вернуть один LDAP запрос. В общем-то ключевое, под что параметр заточен – это атрибут members у группы. Политика появилась в Windows Server 2003 вместе с изменениями в репликации multivalued-атрибутов (если помните, именно тогда и при помощи LVR был убран штатный для Windows 2000 Server конфликт репликации multivalued-атрибутов). Ранее, в Windows 2000 Server, значение было установлено на 1000 и не могло быть изменено штатным способом.

Модифицируем, например, в случае наличия групп с количеством участников выше 1500. Хитрый DoS, блокируемый этим параметром, придумать можно, но вот проблемы с отправкой почты на адрес “Все сотрудники” в случае линейного включения всех учетных записей пользователей в группу придумываются ощутимо быстрее. Хотите упростить ситуацию – ставьте сразу на 5000 – это верхний лимит параметра.

Параметры, существующие с Windows Server 2008 R2

Параметр Query Policy – MaxResultSetsPerConn

Поддерживается версиями ОС

С Windows Server 2008 R2.

Значение по умолчанию

10

Что делает

Устанавливает максимальное число хранимых со стороны сервера результатов поисковых запросов клиента. Модифицируем в случае, если у нас очень много параллельных запросов. Фактически, в хостинговых сценариях (например, хостинг Exchange). Кстати, в случае, если Ваш домен был установлен не сразу как Windows 2008 R2, параметр будет равен нулю (что по факту опять-таки превратит его на поддерживающих этот параметр контроллерах в 10).

Параметр Query Policy – MinResultSets

Поддерживается версиями ОС

С Windows Server 2008 R2.

Значение по умолчанию

3

Что делает

Задаёт минимальное число параллельных запросов для включения режима оптимизации paged-запросов, доступного в NT 6.1. Модифицируем просто – если поставить единицу, тогда режим оптимизации будет инициироваться всегда, и отработка запросов ускорится.

Параметры, существующие с Windows Server 2012

Параметр Query Policy – MaxBatchReturnMessages

Поддерживается версиями ОС

С Windows Server 2016.

Значение по умолчанию

1100

Что делает

Задаёт максимальное число ответов при заказе расширенной операции с полем “хочу пачкой (batch)” – LDAP_SERVER_BATCH_REQUEST_OID. Эти операции – это, допустим, расширенный поиск с флагами LDAP_SERVER_DOMAIN_SCOPE_OID, LDAP_SERVER_SHOW_DELETED_OID, LDAP_SERVER_SHOW_RECYCLED_OID и подобными. В ответ на такой запрос может быть отдано много одиночных LDAP Message – вот как раз их максимальное количество, которое надо закэшировать и отдавать клиенту, здесь и задаётся. Параметр можно увеличить в больших инсталляциях – но надо, конечно, для начала мониторить происходящее, чтобы увидеть, есть ли такие запросы на практике.

Параметры, существующие с Windows Server 2016

Параметр Query Policy – MaxDirSyncDuration

Отключаем жестко заданные лимиты настроек

В многих настройках я указывал, что они жёстко ограничены – можно указать любое значение, просто если оно больше некого X, то оно будет расцениваться как X.

Это появилось с Windows Server 2008 и – что удивительно – это можно отключить. Последовательность действий для этого проста:

  1. Открываете редактор – подойдёт ADSI;
  2. Открываете редактор атрибутов для объекта CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=ваш лес – именно для него, для контейнера!
  3. Берёте атрибут dSHeuristic и выставляете ему значение 000000000100000001, если атрибут пустой; этим выставляется битовый флаг fLDAPBypassUpperBoundsOnLimits, который читается DC с Windows Server 2008 и старше;

Делайте это крайне осторожно – это атрибут масштабов леса, у него каждый бит делает что-то определённое – не ошибитесь.

Создаём новую Query Policy

Это достаточно тривиальная задача – откроем ADSI, подцепимся к разделу Configuration, откроем последовательно CN=Services, потом CN=Windows NT, потом CN=Directory Service, потом CN=Query-Policies, и, увидев одинокую политику по умолчанию, создадим новый объект queryPolicy:

У объекта надо будет только задать CN – остальные параметры правятся уже просто, редактированием соответствующего атрибута. Так как он один и в начале статьи приведён, дублировать тут не буду.

Я всё прочитал и поменял все параметры. Что теперь?

Теперь, если всё продолжает работать, можно измерить производительность того, что мы наделали. Не наоборот. Т.е. после тюнинга LDAP-политик в первую очередь всё должно продолжить функционировать, а во вторую – улучшить какие-либо характеристики.

Надеюсь, что данный материал поможет Вам эффективнее работать с инфраструктурой на базе Active Directory, а также покажет, что в данном сервисе есть достаточно много такого, что гораздо интереснее, чем унылые инструкции про “Next->Next->Finish->вроде-кое-как-заработало”.

Техники атаки и защиты LDAP-хранилищ достаточно оригинальны и разнообразны (например, неавторизованный пользователь может заказать априори огромный по количеству результатов запрос, притом запросить, чтобы он (результат запроса) ещё и был отсортирован по неиндексированному атрибуту), поэтому грамотный инженер должен хорошо понимать возможности Active Directory по тюнингу такого функционала.

Удач!

В Windows Server 2016 появились новые довольно интересные новые функции, такие как временное членство в группах AD, Privileged Access Management и т.д. Постараюсь описать их более подробно в следующих статьях. В этой статье я покажу, как установить домен Active Directory в Windows Server 2016. Для установки AD, сервер по минимальным требованиям должен соответствовать следующим условиям:

Процессор:

  • 64-битный процессор с частотой не менее 1,4 Ггц
  • поддержка NX, DEP, CMPXCHG16b, LAHF/SAHF, PrefetchW, Second Level Address Translation (EPT или NPT)

Память

  • не менее 512 Мб (для Server Core и Nano редакций), 2 Гб для версии Windows Server с GUI
  • поддержка ECC (Error Correcting Code) или аналогов

Дисковый контроллер и требования к месту:

Дисковый контроллер для установки Windows Server 2016 должен быть совместим со спецификацией PCI Express. Windows Server 2016 не позволяет использовать диски ATA/PATA/IDE/EIDE для загрузки, хранения файла подкачки или дисков с данными

Минимальный размер раздела на систему: 32 Гб

Сетевой адаптер:

  • сетевой адаптер Ethernet с пропускной способностью не менее 1 Гб/с
  • Совместимость с архитектурой PCI Express
  • поддержка PXE (-boot Execution Environment)
  • Желательна (но не обязательно) поддержка сетевой отладки (KDNet)

В этом примере я использую виртуальную машину, запущенную на сервере VMWare ESXi, на которую и уставлена Windows Server 2016.

1) Войдите на сервер под локальным администраторов. На сервер кроме роли Active Directory Domain Services также будет установлена служба DNS. Изменим настройки сетевого интерфейса, указав в качестве первичного DNS сервера собственный IP адрес севера или адрес 127.0.0.1.

dns настройки dc

2) Затем откройте Server Manager, нажав на соответствующий значок или выполнив в консоли PowerShell команду ServerManager.exe.

ServerManager.exe

3) В окне Server Manager нажмите Add roles and features

Add roles and features

4) В окне мастера добавления ролей и компонентов нажмите Next.

5) В следующем окне нажмите Next

6) Т.к. установка выполняется на локальный сервер, в следующем окне оставьте переключатель в исходном положении и нажмите Next

7) В следующем окне в списке ролей выберите Active Directory Domain Services. В открывшемся окне появится список ассоциированных компонентов, которые должны быть установлены вместе с ролью ADDS. Нажмите кнопку Add features, а затем Next.

роль Active Directory Domain Services

8) В списке компонентов уже должны быть отмечены требуемые для установки компоненты. Нажмите Next.

компоненты

9) В следующем окне приведено небольшое описание роли AD DS. Нажмите Next.

10) Ознакомьтесь со списком выбранных для установки ролей и компонентов. Для начала установки нажмите кнопку Install.

11) На экране будет отображаться текущий статус процесса установки

12) После окончания установки, нажмите на ссылку Promote this server to a domain controller.

 Promote this server to a domain controller

13) Запустите мастер настройки Active Directory. В моем случае я устанавливаю новый лес AD. В том случае, если вы добавляете дополнительный контроллер домена в существующий домен, выберите соответствующую опцию. Я же выбираю опцию Add a new forest и указывают FQDN имя домена (test.net).

новый лес Active Directory

14) В следующем окне нужно указать функциональный уровень домена и леса AD. Я выбрал последнюю версию схемы AD – Windows Server 2016. Кроме того, этот сервер будет выступать сервером DNS и являться Global Catalog. Также нужно указать пароль администратора для входа в DSRM режим.

Уровень домена и лес, пароль DSRM

15) Т.к. мой сервер будет первым DNS сервером в лесу, нет необходимости настраивать делегацию DNS. Поэтому просто нажмите Next.

16) NETBIOS имя домена оставим без изменений (TEST)

Netbios имя домена

17) На следующем экране нужно указать путь к каталогам NTDS, SYSVOL и LOG. Мы оставим все пути по-умолчанию, предполагая, что все папки будут храниться в каталоге системного диска C:Windows.

каталоги NTDS, SYSVOL и LOG на контроллере домена

18) На следующем экране можно ознакомиться со списком выбранных настроек. Если все OK, нажмите Next, если нет – вернитесь назад и внесите изменения.

19) Далее выполнится предварительная оценка выбранной конфигурации, в том случае, если критичных конфликтов не будет, станет доступна кнопка Install.

20) Запустится процесс установки контроллера домена

21) После окончания установки, сервер автоматически перезагрузится. Войдите на сервер под учетной записью администратора домена.

22) После входа, запустите привилегированную сессию powershell и выполните команду dsac.exe. Откроется окно центра администрирования Active Directory (Administrative Center). Можно начинать управлять ресурсами домена

dsac.exe

 Active Directory Administrative Center

23) С помощью следующих команду можно узнать текущий функциональный уровень домена и леса команд Get-ADDomain | fl Name,DomainMode и Get-ADForest | fl Name,ForestMode

  • Remove From My Forums
  • Question

  • I have a project going right now which one possible solution is to create an LDAP server to distribute Customer contact information via Outlook.  I have used these 2 guides to help me: https://technet.microsoft.com/en-us/library/cc770639(v=WS.10).aspx 
    |  https://blogs.msdn.microsoft.com/microsoftrservertigerteam/2017/04/10/step-by-step-guide-to-setup-ldaps-on-windows-server/

    I have secured the server using a self-signed cert and I am able to connect to it using ADSI Edit and I can create OUs, groups, users, etc.  I have connected Outlook 2016 to it, however I cannot see anything and search does not find anything. 
    I don’t know what I have done wrong.  I have a portable LDAP browser that I used to test it with and when trying to connect to it on port 636, it says the LDAP server could not be contacted.  If I try using 389, I get «operations error». 
    This is the first time I have ever tried to set this up and I wanted it to be separate from our AD DS server so I have it currently on a domain joined Server 2016 server.  Does anyone have any suggestions to what I can do or have had any experience setting
    this up? 

    Thanks in advance. 


    David Hood

Answers

    • Proposed as answer by

      Thursday, November 30, 2017 2:03 AM

    • Marked as answer by
      DHood82
      Friday, December 1, 2017 2:11 PM

Понравилась статья? Поделить с друзьями:
  • Настройка realtek pcie gbe family controller для windows 10 для игр
  • Настройка pptp server windows server 2008
  • Настройка realtek hd windows 10 для наушников для игр
  • Настройка postgresql для доступа по сети windows
  • Настройка realtek hd windows 10 для колонок