Административные ограничения LDAP
Служба каталогов предоставляет возможность задания ограничений на запросы к серверу LDAP для тонкой настройки взаимодействия с клиентами с учетом требований к производительности, надежности и безопасности.
См. подробное описание доступных подкоманд samba-tool ldap policy
в разделе «Администрирование ограничений LDAP».
|
Реализация ограничений
В службе каталогов ограничения на запросы к серверу LDAP реализуются в виде политик, представляющих собой объекты класса queryPolicy.
Данные объекты размещаются в контейнере CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=domain,DC=name.
Каждая политика состоит из набора пар ограничение-значение, хранящегося в атрибуте lDAPAdminLimits объекта queryPolicy.
По умолчанию при развертывании службы каталогов создается и применяется политика Default Query Policy.
Для изменения значений с целью оптимизации работы отдельных контроллеров домена или группы контроллеров домена в пределах сайта рекомендуется:
-
Создать новую политику (объект
queryPolicy) в контейнереQuery-Policiesв корневом домене леса. -
Добавить политику в атрибут
queryPolicyObjectобъектаNTDS Settingsсайта (объектntDSSiteSettings) и контроллера домена (объектnTDSDSA). -
Изменить значения ограничений на уровне сайта и контроллера домена.
Контроллер домена обрабатывает и применяет ограничения в следующей последовательности:
-
Если в дочернем объекте
NTDS SettingsобъектаnTDSDSAприсутствует атрибутqueryPolicyObject, применяются заданные в нем ограничения. Обработка прекращается. -
Если для контроллера домена не задана отдельная политика, проверяется дочерний объект
NTDS SettingsобъектаntDSSiteSettingsтого сайта, в котором находится контроллер домена. Если он содержит атрибутqueryPolicyObject, применяются заданные в нем ограничения. Обработка прекращается. -
Если на уровне сайта также отсутствует отдельный объект
queryPolicy, применяются ограничения, заданные вDefault Query Policy.
Поддерживаемые ограничения
Пакет inno-samba поддерживает обработку следующих ограничений для операций LDAP:
-
InitRecvTimeout— максимальное время (в секундах), в течение которого контроллер домена ожидает от клиента первый запрос к серверу LDAP после создания нового входящего подключения (значение по умолчанию —120);Если при первом подключении клиент не присылает запрос в течение заданного промежутка времени, сервер LDAP разрывает соединение.
-
MaxConnIdleTime— максимальное время бездействия клиента (в секундах), по истечении которого сервер LDAP разрывает соединение с ним (значение по умолчанию —900);Если клиент не использует установленное ранее подключение дольше заданного промежутка времени, сервер LDAP возвращает нотификацию о разрыве соединения.
-
MaxPageSize— максимальное количество объектов, возвращаемых в ответ на один поисковый запрос к серверу LDAP (значение по умолчанию —1000);Если в результате поиска нашлось больше объектов, чем задано ограничением, возвращается только количество, удовлетворяющее ограничению, с кодом результата LDAP
4и сообщением "Size Limit Exceeded". В этом случае для получения полного набора объектов клиент должен использовать запросы с постраничным выводом результата (paged search).При использовании клиентом запросов с постраничным выводом ограничение задает максимальный размер одной страницы с результатами. Если клиент в параметрах запроса передает размер страницы, превышающий данное ограничение, при формировании ответа вместо переданного параметра используется значение ограничения.
-
MaxValRange— максимальное количество значений одного атрибута одного объекта, возвращаемое в ответ на запрос к серверу LDAP, независимо от того, сколько атрибутов объекта и сколько объектов найдено при обработке запроса (значение по умолчанию —1500);Данное ограничение применяется к атрибутам, которые могут иметь множество значений. Для получения полного списка значений атрибута при превышении заданного ограничения должен использоваться механизм инкрементального извлечения подмножеств значений путем задания диапазона (с помощью опции
range) в каждом отдельном запросе.Подмножество задается в следующем формате:
range=<low range>-<high range>
В подмножестве:
-
<low range>— индекс первого запрашиваемого атрибута, начиная с нуля; -
<high range>— отсчитываемый от нуля индекс последнего запрашиваемого значения атрибута; для указания всех оставшихся значений может использоваться специальный символ*.
Примеры задания подмножества значений атрибута:
Пример Возвращаемые значения range=0-*Сервер возвращает все значения атрибута в рамках заданного ограничения
MaxValRangerange=0-500Сервер возвращает значения атрибута с 1 по 501 включительно
range=2-3Сервер возвращает третье и четвертое значения атрибута
range=501-*Сервер возвращает 502-е значение и все последующие значения атрибута в рамках заданного ограничения
MaxValRange -
-
MaxNotificationPerConn— максимальный размер очереди запросов клиента в рамках одного подключения (значение по умолчанию —5);При достижении заданного предельного значения сервер возвращает ошибку в ответ на любой новый запрос, поступающий в рамках того же подключения.
-
MaxQueryDuration— максимальное время (в секундах) обработки контроллером домена одного поискового запроса (значение по умолчанию —120).Время считается с момента поступления запроса.
При достижении заданного предельного значения контроллер домена код результата LDAP
3с сообщением "Time Limit Exceeded".
Просмотр списка политик LDAP
Для просмотра списка объектов queryPolicy в контейнере CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=doman,DC=name в корневом домене леса используйте команду:
samba-tool ldap policy object list
Например:
-
просмотр списка объектов
queryPolicy:samba-tool ldap policy object list
-
просмотр списка объектов
queryPolicyc указанием сайтов и контроллеров доменов, которым они назначены:samba-tool ldap policy object list --with-links
Просмотр значений ограничений LDAP
Для просмотра значений ограничений LDAP, установленных политикой по умолчанию (Default Query Policy) или политикой на уровне сайта либо контроллера домена в сайте, используйте команду:
samba-tool ldap policy show <all | ldap-limit-name>
Например:
-
просмотр значений всех ограничений, установленных политикой по умолчанию:
samba-tool ldap policy show all --default
-
просмотр значений всех ограничений, установленных политикой на уровне контроллера домена в сайте:
samba-tool ldap policy show all --dc-name=DC01 --site-name=Site1
-
просмотр значения определенного ограничения, установленных политикой по умолчанию:
samba-tool ldap policy show MaxValRange --default
-
просмотр значения определенного ограничения, установленных политикой на уровне сайта:
samba-tool ldap policy show MaxPageSize --site-name=Site1
Создание/удаление политики LDAP
Для создания нового объекта queryPolicy в контейнере CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=doman,DC=name используйте команду:
samba tool ldap policy object create <policy-name>
Например:
samba tool ldap policy object create "Custom Policy"
Для удаления объекта queryPolicy из контейнера CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=doman,DC=name используйте команду:
samba tool ldap policy object delete <policy-name>
Например:
samba tool ldap policy object delete "Custom Policy"
Назначение / отмена назначения политики LDAP сайту и контроллеру домена в сайте
Для добавления объекта queryPolicy в атрибут queryPolicyObject объекта NTDS Settings сайта (объект ntDSSiteSettings) и контроллера домена в сайте (объект nTDSDSA) используйте команду:
samba-tool ldap policy object link <policy-name> <site-name> [<dc-name>]
Например:
-
назначение политики сайту:
samba-tool ldap policy object link "Custom Policy" Site1
-
назначение политики контроллеру домена в сайте:
samba-tool ldap policy object link "Custom Policy" Site1 DC01
Для удаления объекта queryPolicy из атрибута queryPolicyObject объекта NTDS Settings сайта (объект ntDSSiteSettings) и контроллера домена в сайте (объект nTDSDSA) используйте команду:
samba-tool ldap policy object unlink <policy-name> <site-name> [<dc-name>]
Например:
-
отмена назначения политики сайту:
samba-tool ldap policy object unlink "Custom Policy" Site1
-
отмена назначения политики контроллеру домена в сайте:
samba-tool ldap policy object unlink "Custom Policy" Site1 DC01
Изменение значений ограничений LDAP
Для изменения значения ограничения LDAP, установленного политикой по умолчанию (Default Query Policy) или политикой на уровне сайта либо контроллера домена в сайте, используйте команду:
samba-tool ldap policy set <ldap-limit-name> <value>
Например:
-
изменение значения ограничения
MaxValRangeв политике по умолчанию:samba-tool ldap policy set MaxValRange 1000 --default
-
изменение значения ограничения
MaxValRangeв политике на уровне контроллера домена в сайте:samba-tool ldap policy set MaxValRange 1000 --dc-name=DC01 --site-name=Site1
-
изменение значения ограничения
MaxValRangeв политике на уровне сайта:samba-tool ldap policy set MaxValRange 1000 --site-name=Site1