Привет, Хабр! Меня зовут Никита, и я из тех, кого принято называть импортозамещенцами. Я работаю в компании-интеграторе по ИБ «Экстрим безопасность», которая помогает заказчикам как с банальным PaperSec'ом, так и в вопросах результативного кибербеза. В нашем арсенале широкий спектр решений: начиная с SecretNet Studio, Dallas Lock, защищённых сетей, и до NGFW и продуктов из экосистемы Positive Technologies. И тем не менее, не смотря на ИБ-шный профиль компании, нам все-таки не удалось увернуться от тотального импортозамеса, который начался в 2022 году.

С каждым годом проблема санкций становилась все острее: сначала с рынка ушли зарубежные вендоры и патчи безопасности оказались за семью VPN'ами, затем начали протухать купленные ранее лицензии; поэтому отечественные компании, руководствуясь здравым смыслом требованиями регуляторов, стали пытаться внедрять Open Source решения. И тут совершенно неожиданно оказалось, что в стране не так много сильных Linux-админов, которых можно было бы легко переманивать набирать с рынка, просто поднимая зарплаты, что увеличило спрос на аутсорс. К нам стали обращаться за помощью наши постоянные заказчики, и руководство решилось впрягаться в такие проекты; а для инженеров начались темные интересные времена…

Учитывая текущий уровень информатизации, проекты импортозамещения затрагивают практически всех сотрудников предприятий и замещение рабочих станций становится одним из самых больших вызовов. Операционные системы и клиентское ПО — это первое, о чем задумываешься, когда слышишь про импортозамещение. К счастью на удивление, системным администраторам доступен огромный выбор софта: уже сейчас в реестре российского ПО более 50 записей только по классу «02.09 Операционные системы общего назначения», и с каждым годом их становится только больше.

Динамика регистрации новых операционных систем в реестре российского программного обеспечения для ЭВМ и БД за последние 10 лет
Динамика регистрации новых операционных систем в реестре российского программного обеспечения для ЭВМ и БД за последние 10 лет

Если посмотреть на отечественные ОС внимательнее, то можно заметить, что все они работают на ядре Linux. И это логично, поскольку ядро GNU Hurd, на которое многие возлагали надежды, не имеет перспектив, т. к. этот долгострой до сих пор не дошел до промышленной эксплуатации; реальной альтернативой могло бы стать, пожалуй, только ядро BSD, которое не получило широкого распространения исключительно из-за того, что долгое время было обременено судебными тяжбами. Определенный интерес создал выход KasperskyOS на рынок тонких клиентов в 2025 году; но его ядро все-таки не предназначено для систем общего назначения, поэтому больше про IoT и Embedded, а не серверы и рабочие станции. Вот и получается, что выбор огромный, но все новинки, как жены футболистов, — на одно лицо, — и по характеристикам недалеко ушли от Open Source, на базе которого они сделаны. Емкость рынка и окупаемость инноваций — не, не слышали!

Просто вспомнилось

И тут мы подобрались к самому интересному: когда предприятия начали массово замещать рабочие станции, причем не на бумаге, а в продуктивной среде, возникла необходимость управления всем этим хозяйством. Строгих нормативов по количеству компьютеров на голову сисадмина не существует, но когда их становится больше 100, голова почему-то начинает гудеть и, чтобы не засвистеть флягой столь же хорошо выполнять свою работу, поневоле задумаешься о внедрении средств автоматизации.

В экосистеме Microsoft эту задачу решают в первую очередь службы домена Active Directory, которые дают централизованную базу пользователей, единую точку аутентификации и позволяют через групповые политики автоматически настраивать тысячи компьютеров. А если этого окажется недостаточно, то всегда есть возможность добавить еще System Center Configuration Manager. А какой подорожник предлагают обитателям Linux-джунглей? Тема крайне непростая, но очень интересная, и начнем мы её с того, как обеспечить в Linux централизованную аутентификацию.

Разработчики Linux много чего скопипастили умело позаимствовали у UNIX, в том числе и подходы к аутентификации и авторизации. Еще со времен Sun Microsystems аутентификация пользователей была вынесена в отдельный стек подключаемых модулей (Pluggable Authentication Modules, PAM), что позволило расширять способы входа без изменения прикладных приложений. По аналогии с PAM были реализованы и модули NSS для доступа к базам пользователей, групп, хостов и других объектов. Столь удачным опытом не побрезговали вдохновиться и разработчики Windows: у них этот механизм реализован в локальном центре безопасности (Local Security Authority, LSA). Но как ты технологию не назови, а новый метод аутентификации в современную ОС может добавить любой разработчик.

Копнув поглубже в эту тему, удалось разобраться, что сразу с выходом PAM в 1995 году стал доступен модуль аутентификации, использующий службы сетевой информации (Network Information Service, NIS), которые долго и упорно разрабатывались самой Sun, а теперь уже практически не используются. Чуть позднее, в 1996 году появился модуль для аутентификации по протоколу Kerberos от Frank Cusack, а в 1998 году стал доступен модуль для аутентификации через LDAP от PADL Software. Но всё это были довольно примитивные модули, которые работали только с указанными серверами без возможности кэширования информации, что не соответствовало реальным сценариям использования компьютеров в Enterprise-сегменте.

Первой серьезной попыткой экспансии Linux в корпоративную среду стало создание службы Winbind в рамках проекта Samba. Как файловый сервер продукт был известен еще с 1992 года, но клиентская часть, позволяющая Linux-компьютеру быть полноправным участником домена NT4, стала доступна только к выходу Линолеума Windows ME, и по словам самих разработчиков, нужна была для переосмысления технологий Microsoft в рамках открытого кода.

После Winbind было еще несколько открытых и коммерческих попыток решения данной задачки, среди которых выделяют PBIS (BeyondTrust AD Bridge Open), Vintela (Vintela Authentication Services), Likewise (Likewise Enterprise) и Centrify; но все они успешно загнулись завершили свое развитие в 2009 году с выходом нативной службы SSSD, которая стала спин-оффом проекта FreeIPA. И тут, наверно, важно подчеркнуть принципиальное отличие SSSD: эта служба является собственным проектом разработчиков Linux, на который они делают теперь основную ставку.

Хронология развития PAM- и NSS-модулей
Хронология развития PAM- и NSS-модулей

Службу SSSD выгодно отличает в первую очередь современная архитектура: это не монолит, как у Winbind, который может зависнуть по любому поводу, а набор отдельных сервисов, за работой которых следит один общий наставник. Для взаимодействия между компонентами используется шина данных, написанная по мотивам передовой системы межпроцессного взаимодействия DBUS. В службе реализована двухуровневая система кэширования: локальный кэш из папки /var/lib/sss/db доступен только для собственных компонентов службы SSSD, а быстрый кэш из папки /var/lib/sss/mc не содержит чувствительных данных, поэтому открыт для всех клиентских библиотек, что обеспечивает многопоточный доступ к этой информации.

Устройство службы SSSD изнутри
Устройство службы SSSD изнутри

Взглянем на несколько функциональных преимуществ службы SSSD в сравнении с Winbind:

  • Динамическое обновление DNS-записей. Служба SSSD обеспечивает динамическое обновление DNS-записей через интеграцию с утилитой nsupdate. Вы сможете автоматически изменять A-, AAAA- и PTR-записи по инициативе компьютера, постоянно поддерживая информацию DNS в актуальном состоянии. В случае Winbind обновление DNS-записей возможно только средствами DHCP-сервера.

  • Нативный контроль доступа к хостам. Служба SSSD предоставляет нативный контроль доступа к хостам через тесную интеграцию с PAM-стеком. С помощью HBAC-правил (Host Based Access Control), которые настраиваются в домене FreeIPA, вы можете управлять доступом пользователей к любому приложению, если оно использует PAM-контекст для авторизации. Стоит отметить, что этот контроль доступен (в усеченном виде) даже когда компьютер находится в домене Active Directory, т. к. служба SSSD умеет извлекать объекты групповых политик из AD и транслировать отдельные параметры, такие как «Allow/deny log on locally», в свои HBAC-правила. В службе Winbind нет централизованного управления доступом и вам будут доступны только локальные параметры для PAM-модуля.

  • Является поставщиком правил для утилиты sudo. Служба SSSD поставляет правила для утилиты sudo, что позволяет делегировать права на выполнение отдельных команд от имени других пользователей, в том числе и root'а. Правила для утилиты sudo централизованно настраиваются в LDAP-каталоге, извлекаются утилитой sudo через NSS-модуль и кэшируются службой SSSD на диске.

  • Имеет тесную интеграцию с приложениями из проекта OpenSSH При установке SSSD на компьютере появляются утилиты sss_ssh_knownhostsproxy и sss_ssh_authorizedkeys, с помощью которых клиент и сервер OpenSSH в момент удаленного подключения извлекают из домена открытые ключи для проведения взаимной аутентификации, что исключает возможность кибератак методом «человек посередине» (Man in the middle, MITM).

  • Поддержка autofs. Служба SSSD поддерживает работу с файловой системой autofs и позволяет настроить на рабочих станциях пространство имен для общего доступа к файлам, что в Windows называется DFS Namespace.

  • Продвинутый оффлайн-режим. У службы SSSD более продвинутый оффлайн-режим, который позволяет не только обеспечить вход пользователей в автономном режиме, но и получение TGT-билета при выходе в онлайн. При этом пароль пользователя хранится в связке ключей Linux, откуда его не сможет выцарапать даже root, если запрещен системный вызов ptrace.

  • Защита аутентификации по технологии Kerberos Armoring. Kerberos Armoring позволяет устранить угрозу кибератак методом полного перебора (brute force). В мире Linux эту технологию обычно называют FAST (Flexible Authentication Secure Tunneling), и она позволяет дополнительно шифровать данные Kerberos-запросов с помощью сессионных ключей компьютера. При использовании Kerberos Armoring взломать ответ сервера с TGT-билетом будет практически невозможно, даже если пользователь использует очень простой пароль.

  • Поддержка двухфакторной аутентификации HOTP и TOTP. Еще SSSD поддерживает двухфакторную аутентификацию по одноразовым паролям HOTP и TOTP, если компьютер находится в домене FreeIPA. Собственно, возможность реализации этой функции напрямую связана с поддержкой FAST.

  • Правильное сопоставление идентификаторов безопасности. Ну и немаловажно, что служба SSSD реализует правильное сопоставление идентификаторов безопасности Windows (SID) с идентификаторами безопасности операционных систем POSIX (UID и GID), что обеспечивает согласованность значений на всех хостах при работе в домене Active Directory. При использовании службы Winbind у одного и того же пользователя на разных хостах могли быть совершенно разные идентификаторы.

Если всё вышеперечисленное перевести на простой язык, то это вам не какой-то ржавый жигуль раритетный Fiat 124, а вполне современный УАЗ-3163.

Благодаря указанным выше причинам служба SSSD из проекта FreeIPA ныне стала мировым лидером в корпоративном сегменте, и ее рекомендуют все отечественные разработчики, будь то ALD Pro на базе FreeIPA или Эллес, у которой под капотом Samba. Даже в случае Avanpost DS, где разработка ведется практически с нуля, в качестве клиентской части предлагается SSSD. Кэширование учетных данных и политик, беспрецедентный уровень безопасности, надежность и отказоустойчивость в крупных инсталляциях, — это именно те качества, которые нужны современным предприятиям для обеспечения работы ИТ-инфраструктуры в режиме постоянной доступности, и служба SSSD успешно справляется с этими вызовами.

Комментарии (14)


  1. gotch
    05.05.2026 07:49

    как обеспечить централизованную аутентификацию в Linux

    Где же ответ на этот вопрос?

     SSSD: эта служба является собственным проектом разработчиков Linux

    Разработчиков RedHat.

    позволяющая Linux-компьютеру быть полноправным участником домена NT4

    Linux-компьютер не является членом домена так, как это понимается в Windows.


    1. nikkitab0 Автор
      05.05.2026 07:49

      Где же ответ на этот вопрос?

      В рамках первой статьи ответ пока краткий: через службу SSSD. В следующей статье я более подробно рассмотрю доступные бэкенды.

      Разработчиков RedHat.

      Насколько я знаю, компания RedHat является основным спонсором проекта, но все-таки не владельцем. По крайней мере, они так заявляют.

      Linux-компьютер не является членом домена так, как это понимается в Windows.

      Как мне кажется, компьютер становится участником домена, когда ему создается отдельная учетная запись. Соглашусь с вами, что Linux-компьютер пользуется не всем доменным инструментарием, который использует Windows, но права доступа в домене у него точно такие же.


      1. gotch
        05.05.2026 07:49

        Насколько я знаю, компания RedHat является основным спонсором проекта

        SSSD - часть FreeIPA. FreeIPA = upstream Red Hat Identity Management. The sssd-devel mailing list: sssd-devel@lists.fedorahosted.org

        Как мне кажется, компьютер становится участником домена, когда ему создается отдельная учетная запись. Соглашусь с вами, что Linux-компьютер пользуется не всем доменным инструментарием, который использует Windows, но права доступа в домене у него точно такие же.

        Это очень большое упрощение. Принципиальная разница, например в том, что Windows может быть присоединена к одному домену, а Linux может одновременно иметь учетную запись в нескольких доменах. При этом доверительные отношения доменов корректно обрабатываются в Windows, но не Linux.

        Присоединение Windows к домену это не только привязка к учетной записи компьютера, но и применение общих политик безопасности. В Linux это как минимум опционально.
        Кроме политик, в Windows так же реализуется общая концепция безопасности, такая как добавление Domain Admins в локальных администраторов.

        Локальные пользователи в Linux остаются локальными пользователями, только у них появляется возможность аутентификации из сторонней системы, а в Windows доменные пользователи это другая сущность.

        В общем можно долго искать отличия, но наличие keytab (и обвязки adcli, sssd) ещё не делают Linux концептуально членом домена.


        1. nikkitab0 Автор
          05.05.2026 07:49

          Локальные пользователи в Linux остаются локальными пользователями, только у них появляется возможность аутентификации из сторонней системы, а в Windows доменные пользователи это другая сущность.

          При использовании службы SSSD доменные пользователи тоже являются отдельной сущностью. Информации о доменных пользователях нет в файлах /etc/passwd и /etc/shadow. Физически доменные пользователи хранятся в службе каталога, а на рабочих станциях информация о доменных пользователях кэшируется в службе SSSD, при необходимости вместе с хешем пароля для возможности автономного входа.

          Сопоставление локальных пользователей на доменных происходит только при использовании PAM-модуля для Kerberos. В этом случае аутентификация выполняется через MIT KDC, но в систему пользователь попадает фактически под локальной учетной записью, имя которой сопоставляется с именем Kerberos-принципала.


          1. gotch
            05.05.2026 07:49

            Допускаю, что всё так, но

            id
            uid=1002(mgotch) gid=1002(mgotch) группы=1002(mgotch),10(wheel),755800513(domain users)
            sudo grep mgotch /etc/shadow
            mgotch:$y$j


            1. nikkitab0 Автор
              05.05.2026 07:49

              Вывод команды grep (sudo grep mgotch /etc/shadow) показывает, что у вас пользователь mgotch действительно является локальным пользователем системы. При правильной настройке результат команды id должен быть, например, таким:

              admin@dc-1:~$ id
              uid=1244600000(admin) gid=1244600000(admins) группы=1244600000(admins),1001(astra-admin),1005611117(ald trust admin),1244600003(print_admins)


              1. gotch
                05.05.2026 07:49

                Не могу назвать мою настройку неправильной, так как просто пользователь был создан до работы скрипта join-to-domain. В итоге я могу аутентифицироваться по ключу, по локальному паролю, по доменному паролю. Поэтому модель безопасности Linux радикально отличается от Windows, и сравнивать их нет смысла.

                Для веселых экспериментов можно попробовать сделать "доменную" машину с пользовательской учетной записью вместо компьютерной или с MSA.


      1. MrBotikkk
        05.05.2026 07:49

        В рамках первой статьи ответ пока краткий: через службу SSSD. В следующей статье я более подробно рассмотрю доступные бэкенды.

        Зачем? Часть 2. ALD Pro Модуль 5. Работа Linux-компьютера в домене

        Насколько я знаю, компания RedHat является основным спонсором проекта, но все-таки не владельцем.

        Это полигон для Red Hat Identity Manager


  1. maks0077
    05.05.2026 07:49

    Хорошая и доступная статья, без лишней воды и с понятным уклоном в практику (особенно хорошо разложено про SSSD). Местами посмеялся в голос :))) материал полезный и вполне читабельный, жду продолжения


    1. gotch
      05.05.2026 07:49

      Вам не стыдно этим заниматься?

      https://habr.com/ru/users/maks0077/comments/


      1. maks0077
        05.05.2026 07:49

        Нет, ровно как и вам писать свои статьи)


        1. gotch
          05.05.2026 07:49

          Не уверен, что слово "ровно" в этом случае уместно.


          1. maks0077
            05.05.2026 07:49

            Ваше право)


  1. Granulex
    05.05.2026 07:49

    Честная история провала коммерческих решений – редко кто её рассказывает без умолчаний. Маленькая ложка дёгтя к "беспрецедентному уровню безопасности": offline_credentials_expiration = 0 по умолчанию означает, что уволенный сотрудник с ноутбуком без VPN аутентифицируется хоть до пенсии. УАЗ-3163 едет хорошо, но ручник надо проверять отдельно.