Зачем подключать LDAP к TrueNAS SCALE и когда это нужно
Локальные учётные записи на каждом сервере - это ручное управление, дублирование данных и риск рассинхронизации паролей. Подключение TrueNAS SCALE к LDAP-каталогу решает эти проблемы: пользователи заводятся один раз на LDAP-сервере, а права доступа к файловым шарам назначаются централизованно. Результат - единая точка аутентификации для всех корпоративных систем, упрощение аудита доступа и соответствие внутренним политикам безопасности.
Типовой сценарий - офисная инфраструктура, где несколько десятков или сотен сотрудников работают с общими сетевыми папками. Отдел маркетинга видит свои документы, бухгалтерия - свои, а у администраторов есть доступ ко всему. Без LDAP пришлось бы создавать пользователей вручную в веб-интерфейсе TrueNAS и синхронизировать пароли с рабочими станциями. С LDAP вы один раз настраиваете подключение к каталогу, а затем просто указываете группы в ACL-редакторе шар.
LDAP предпочтительнее прямого подключения к Active Directory в трёх случаях. Первый - в инфраструктуре уже используется OpenLDAP, 389 Directory Server или FreeIPA, и миграция на AD не планируется. Второй - требуется аутентификация Linux-клиентов без Kerberos и доменных политик Windows. Третий - нужна максимально простая и легковесная схема, где TrueNAS выступает как рядовой LDAP-клиент. Если же у вас уже развёрнут Active Directory, используйте встроенный коннектор AD - он корректно обрабатывает Kerberos-билеты и групповые политики.
Архитектура LDAP в TrueNAS SCALE: что нужно знать перед настройкой
TrueNAS SCALE использует службу SSSD (System Security Services Daemon) для взаимодействия с LDAP-сервером. SSSD кэширует учётные данные локально, что позволяет пользователям аутентифицироваться даже при временной недоступности каталога. Под капотом это работает так: при попытке входа система через SSSD отправляет LDAP-запрос к серверу, проверяет учётные данные бинд-пользователя, а затем ищет запись пользователя по заданному фильтру. Если запись найдена и пароль верен, доступ разрешается.
Сеть между TrueNAS и LDAP-сервером должна быть стабильной. Убедитесь, что порты 389 (LDAP) или 636 (LDAPS) открыты на файрволе. Задержка выше 50 мс может вызывать таймауты при загрузке списка пользователей в ACL-редакторе. Настройте увеличенные таймауты в расширенных параметрах, если сервер каталога физически удалён.
Необходимые данные от LDAP-сервера
Перед началом настройки запросите у администратора LDAP-каталога следующие параметры. Без любого из них подключение не заработает.
- Hostname - IP-адрес или FQDN LDAP-сервера. Например,
ldap.example.comили10.0.1.50. - Port - 389 для незашифрованного соединения, 636 для LDAPS. Рекомендуем использовать 636.
- Base DN - корневой узел каталога для поиска. Пример:
dc=example,dc=com. - Bind DN - DN учётной записи, от имени которой TrueNAS будет выполнять поиск. Пример:
cn=readonly,dc=example,dc=com. - Bind Password - пароль бинд-пользователя.
- User Base DN - ветка с учётными записями пользователей. Может совпадать с Base DN или быть вложенной:
ou=users,dc=example,dc=com. - Group Base DN - ветка с группами:
ou=groups,dc=example,dc=com.
Для типовой схемы OpenLDAP с objectClass posixAccount и posixGroup дополнительно потребуются шаблоны маппинга атрибутов: uid для логина, uidNumber для числового идентификатора, gidNumber для основной группы, homeDirectory для домашнего каталога.
Поддерживаемые LDAP-серверы и ограничения
TrueNAS SCALE официально поддерживает OpenLDAP и совместимые реализации: 389 Directory Server, Red Hat Directory Server, FreeIPA (в режиме LDAP-провайдера). Интеграция с Active Directory через LDAP-интерфейс технически возможна, но не рекомендуется. Причина - AD использует нестандартные схемы и требует Kerberos для полной функциональности. Для AD используйте защищённое подключение через SSL/TLS со встроенным коннектором.
Основное ограничение - схема каталога должна включать POSIX-атрибуты (uidNumber, gidNumber, homeDirectory). Если ваш LDAP-сервер использует только стандартную схему inetOrgPerson без расширений POSIX, TrueNAS не сможет сопоставить LDAP-объекты с системными пользователями. В этом случае потребуется доработка схемы на стороне LDAP-сервера или использование промежуточного прокси, например, OpenLDAP как прокси для AD.
Пошаговая настройка LDAP-подключения в веб-интерфейсе TrueNAS SCALE
Все действия выполняются в веб-интерфейсе TrueNAS SCALE версии 24.10 (Dragonfish) и новее. Интерфейс может незначительно отличаться в более старых версиях, но логика полей остаётся неизменной. Инструкция проверена на сборке от июня 2026 года.
Шаг 1: Доступ к настройкам LDAP
В боковом меню перейдите: Credentials → Directory Services → LDAP. Если пункт LDAP неактивен, проверьте, что служба Active Directory не запущена одновременно - TrueNAS SCALE разрешает только один провайдер каталога. Остановите AD-сервис в том же разделе Directory Services перед настройкой LDAP.
Шаг 2: Заполнение основных параметров подключения
Форма настройки содержит обязательные и опциональные поля. Разберём каждое.
- Hostname - IP-адрес или полное доменное имя сервера LDAP. Используйте FQDN, если в сети настроен DNS. Для отказоустойчивости можно указать несколько серверов через пробел, но только первый используется для первичного подключения.
- Port - 636 для LDAPS (рекомендуется), 389 для LDAP без шифрования. Порт 389 допустим только в изолированных тестовых средах.
- Base DN - корень поиска. Пример:
dc=company,dc=local. От этого узла TrueNAS будет искать пользователей и группы, если не указаны отдельные User Base DN и Group Base DN. - Bind DN - DN учётной записи для подключения. Пример:
cn=admin,dc=company,dc=local. Анонимный бинд (пустое поле) возможен, но крайне не рекомендуется - каталог должен быть настроен на приём анонимных запросов, что снижает безопасность. - Bind Password - пароль бинд-пользователя. Хранится в зашифрованном виде в конфигурационной базе TrueNAS.
Рекомендация: создайте в LDAP-каталоге отдельную учётную запись только для чтения (read-only). Это ограничит возможный ущерб при компрометации TrueNAS. Бинд-пользователю достаточно прав на чтение атрибутов пользователей и групп, запись не требуется.
Шаг 3: Настройка маппинга пользователей и групп
Этот шаг определяет, как TrueNAS сопоставит LDAP-объекты с системными учётными записями. Ошибка здесь - основная причина, по которой LDAP-пользователи не отображаются в интерфейсе.
- User Base DN - ветка с пользователями. Если не указана, используется Base DN. Пример:
ou=people,dc=company,dc=local. - Group Base DN - ветка с группами. Пример:
ou=groups,dc=company,dc=local. - User Object Class - класс объекта для поиска пользователей. Для OpenLDAP с nis.schema это
posixAccount. Для FreeIPA -posixAccountтакже работает. - Group Object Class - класс объекта для поиска групп. Обычно
posixGroup. - User ID Attribute - атрибут с логином. Стандартно
uid. - Group ID Attribute - атрибут с именем группы. Стандартно
cn.
Пример для типовой схемы OpenLDAP: пользователи хранятся в ou=users с objectClass posixAccount, uid - логин, uidNumber - числовой ID, gidNumber - ID основной группы, homeDirectory - путь к домашнему каталогу. Группы - в ou=groups с objectClass posixGroup, cn - имя группы, memberUid - список участников.
Шаг 4: Расширенные параметры и сохранение
Раскройте секцию Advanced. Здесь настраиваются критичные для стабильности параметры.
- Timeout - таймаут LDAP-запроса в секундах. Значение по умолчанию 10 секунд. Если сервер каталога отвечает медленно, увеличьте до 30.
- DNS Timeout - таймаут разрешения имени хоста. Оставьте 5 секунд, если не используете медленные DNS-серверы.
- TLS Protocol - выберите минимальную версию TLS. Для порта 636 установите TLS 1.2 или 1.3.
- CA Certificate - загрузите корневой сертификат центра сертификации, которым подписан сертификат LDAP-сервера. Без этого подключение по LDAPS завершится ошибкой проверки сертификата.
После заполнения всех полей нажмите Save. TrueNAS проверит подключение к серверу и применит настройки. В правом верхнем углу появится индикатор статуса службы. Зелёный - служба запущена, красный - ошибка подключения. При ошибке проверьте логи командой systemctl status sssd в shell TrueNAS.
Проверка LDAP-аутентификации: как убедиться, что всё работает
Сохранение настроек без ошибок не гарантирует, что пользователи корректно импортированы. Выполните несколько проверок, прежде чем настраивать права доступа к шарам.
Использование getent и id для проверки видимости пользователей
Откройте Shell в веб-интерфейсе TrueNAS (System → Shell) и выполните команды.
getent passwd
Вывод должен содержать не только локальных пользователей (root, admin), но и LDAP-записи. Пример строки LDAP-пользователя:
ivanov:*:10001:10000:Ivan Ivanov:/home/ivanov:/bin/bash
Аналогично для групп:
getent group
LDAP-группы отобразятся с gid, превышающими 1000 (если локальные группы используют диапазон ниже 1000). Для проверки конкретного пользователя:
id ivanov
Вывод покажет uid, gid и список групп, в которых состоит пользователь. Если команда возвращает «no such user», проблема в маппинге атрибутов или фильтрах.
Диагностика через логи и ldapsearch
Если пользователи не отображаются, начните с логов SSSD:
journalctl -u sssd -f
Ошибки бинда (invalid credentials) укажут на неверный Bind DN или пароль. Ошибки таймаута - на сетевую недоступность или блокировку порта файрволом.
Для тестового запроса к LDAP-серверу используйте ldapsearch прямо из shell TrueNAS:
ldapsearch -x -H ldaps://ldap.example.com -D "cn=readonly,dc=example,dc=com" -W -b "dc=example,dc=com" "(objectClass=posixAccount)"
Ключ -x - простая аутентификация, -H - URL сервера, -D - DN бинд-пользователя, -W - запрос пароля интерактивно, -b - база поиска. Если запрос возвращает записи пользователей, сервер доступен и схема корректна. Проблема на стороне конфигурации SSSD в TrueNAS.
Протестируйте вход через SSH под LDAP-пользователем (если SSH включен) или подключитесь к SMB-шаре с клиентской машины, указав LDAP-логин и пароль. Успешный вход подтверждает полную работоспособность цепочки аутентификации.
Назначение прав доступа к SMB и NFS шарам на основе LDAP-групп
После успешного подключения LDAP-пользователи и группы становятся доступны в ACL-редакторе TrueNAS. Теперь можно гибко разграничить доступ к данным, не создавая локальные учётные записи.
Настройка ACL для SMB-шар
Перейдите в Sharing → SMB, выберите существующую шару или создайте новую. В строке с шарой нажмите три точки и выберите Edit ACL. Откроется редактор списка управления доступом.
Нажмите Add Item. В поле Who выберите Group, затем начните вводить имя LDAP-группы - TrueNAS предложит автодополнение из каталога. Выберите нужную группу, например, accounting. В поле Permissions установите уровень:
- Full Control - чтение, запись, изменение прав, удаление.
- Modify - чтение, запись, удаление, без изменения прав.
- Read - только чтение и выполнение.
Установите флаг Apply permissions recursively, чтобы применить права ко всем вложенным папкам и файлам. Сохраните изменения. Проверьте доступ с Windows-клиента: подключитесь к шаре под учётной записью пользователя из группы accounting, создайте тестовый файл. Если файл создаётся, права работают.
Настройка ACL для NFS-шар
NFS использует POSIX ACL, которые также поддерживают LDAP-группы. Принцип аналогичен SMB, но есть важный нюанс: UID и GID пользователя в LDAP должны совпадать на клиенте и сервере TrueNAS. Расхождение идентификаторов - частая причина, когда NFS-клиент получает доступ не к тем файлам или получает отказ.
В настройках NFS-шары (Sharing → NFS) укажите маппинг пользователей. Рекомендуемый вариант - оставить поля Maproot User и Maproot Group пустыми, если ACL настроены на уровне файловой системы. Затем через Shell или ACL-редактор назначьте права на dataset:
setfacl -m g:accounting:rwx /mnt/pool/finance
Где accounting - имя LDAP-группы, rwx - права на чтение, запись, выполнение. Проверьте монтирование с Linux-клиента и создайте тестовый файл от имени LDAP-пользователя, входящего в группу.
Типичные ошибки при настройке LDAP и их решение
Собрали семь распространённых проблем, с которыми сталкиваются администраторы при интеграции TrueNAS SCALE с LDAP. Для каждой - симптом, причина и способ исправления.
Ошибка: «LDAP connection timeout»
Симптом: после сохранения настроек индикатор службы красный, в логах sssd - «connection timed out».
Причина: сетевой экран блокирует порт 389/636, LDAP-сервер недоступен по сети, или указан неверный IP-адрес.
Решение: проверьте связь командой ping ldap.example.com и доступность порта telnet ldap.example.com 636. Убедитесь, что файрвол TrueNAS (System → Firewall) разрешает исходящие соединения на эти порты. Увеличьте таймаут в расширенных настройках до 30 секунд.
Ошибка: «Invalid credentials» или «Bind failed»
Симптом: в логах sssd - «authentication failed», «invalid credentials».
Причина: неверный Bind DN, пароль бинд-пользователя или учётная запись заблокирована в LDAP-каталоге.
Решение: выполните тестовый бинд ldapsearch (команда приведена в разделе проверки). Если бинд не проходит, сбросьте пароль бинд-пользователя на LDAP-сервере и обновите его в настройках TrueNAS. Проверьте, что DN указан полностью, без опечаток в cn, ou, dc.
Пользователи LDAP не отображаются в ACL
Симптом: getent passwd показывает LDAP-пользователей, но в ACL-редакторе при вводе имени группы или пользователя автодополнение не срабатывает.
Причина: кэш SSSD не обновился после изменения состава групп в LDAP-каталоге.
Решение: очистите кэш командой sss_cache -E и перезапустите службу systemctl restart sssd. Подождите 10-15 секунд и повторите поиск в ACL-редакторе.
Ошибка: «TLS certificate verification failed»
Симптом: подключение по порту 636 не устанавливается, в логах - ошибка проверки сертификата.
Причина: не загружен CA-сертификат в настройки LDAP, либо сертификат LDAP-сервера просрочен или выпущен для другого доменного имени.
Решение: загрузите корневой сертификат ЦС в раздел Credentials → Certificates → CA, затем выберите его в настройках LDAP в поле CA Certificate. Проверьте срок действия сертификата сервера командой openssl s_client -connect ldap.example.com:636.
Неверный Base DN или фильтры поиска
Симптом: getent passwd не показывает LDAP-пользователей, хотя бинд успешен.
Причина: User Base DN или Group Base DN указывают на несуществующую ветку каталога, либо objectClass не совпадает с реальной схемой.
Решение: выполните ldapsearch с теми же параметрами, что указаны в настройках TrueNAS. Убедитесь, что запрос возвращает записи. Если нет - уточните у администратора LDAP корректные DN и objectClass.
Конфликт UID/GID с локальными пользователями
Симптом: LDAP-пользователь не может получить доступ к файлам, хотя состоит в правильной группе.
Причина: UID или GID LDAP-пользователя совпадает с локальной учётной записью в TrueNAS. Система отдаёт приоритет локальной записи.
Решение: проверьте диапазоны UID/GID. Локальные пользователи обычно используют значения ниже 1000. Настройте LDAP-каталог так, чтобы UID/GID начинались с 10000 и выше. Если конфликт уже есть, измените UID на LDAP-сервере и очистите кэш SSSD.
Служба LDAP не запускается после сохранения
Симптом: индикатор статуса не становится зелёным, в интерфейсе нет сообщений об ошибке.
Причина: синтаксическая ошибка в конфигурационном файле, сгенерированном TrueNAS, или конфликт с другой службой каталога.
Решение: проверьте, что служба Active Directory остановлена. Просмотрите полный лог journalctl -xe на предмет ошибок sssd или ldap. Если ошибка неочевидна, удалите настройки LDAP (кнопка Clear), перезагрузите TrueNAS и настройте заново.
Рекомендации по безопасности и обслуживанию LDAP-интеграции
LDAP-интеграция - это не разовая настройка, а компонент инфраструктуры, требующий обслуживания. Следуйте этим практикам, чтобы избежать проблем в будущем.
Всегда используйте LDAPS (порт 636). Передача учётных данных открытым текстом через порт 389 недопустима в production-среде. Даже в тестовом окружении привыкайте работать с шифрованием - это исключит случайную утечку паролей при сниффинге трафика. Загрузите актуальный CA-сертификат в TrueNAS и следите за сроком его действия.
Ограничьте права бинд-пользователя. Учётная запись, от имени которой TrueNAS подключается к LDAP, должна иметь минимально необходимые права - только чтение атрибутов пользователей и групп. Никаких прав на запись, сброс паролей или изменение членства в группах. При компрометации TrueNAS злоумышленник не сможет модифицировать каталог.
Создайте резервного бинд-пользователя. Если основная учётная запись будет заблокирована или удалена, TrueNAS потеряет связь с каталогом. Держите вторую учётную запись с аналогичными правами в документации, чтобы быстро переключиться при инциденте.
Мониторьте логи аутентификации. Настройте отправку логов SSSD в централизованную систему мониторинга. Критические события: ошибки бинда, таймауты подключения, блокировки учётных записей. Регулярный аудит логов выявит попытки подбора паролей и проблемы с сетевым подключением до того, как они повлияют на пользователей.
План действий при недоступности LDAP-сервера. SSSD кэширует учётные данные, поэтому кратковременный сбой (до 30 минут) не нарушит доступ. Для длительных отключений создайте локального административного пользователя в TrueNAS с правами на критичные шары. Храните его учётные данные в защищённом месте. Этот fallback-доступ позволит управлять системой, пока LDAP-сервер восстанавливается.
Обновляйте CA-сертификаты заблаговременно. Сертификаты LDAP-сервера и ЦС имеют срок действия. Заведите напоминание за 30 дней до истечения срока. Просроченный сертификат приведёт к полной недоступности LDAP-аутентификации для всех пользователей TrueNAS.
Для комплексной настройки файлового доступа после интеграции с LDAP изучите руководство по настройке SMB, NFS и FTP. Если выбираете между LDAP и другими провайдерами, сравните Active Directory и FreeIPA для интеграции с TrueNAS.