Пользователь
0,0
рейтинг
27 марта 2013 в 16:08

Администрирование → Linux в домене Active Directory tutorial

Перед администраторами иногда встают задачи интеграции Linux серверов и рабочих станций в среду домена Active Directory. Обычно требуется:
1. Предоставить доступ к сервисам на Linux сервере пользователям домена.
2. Пустить на Linux сервер администраторов под своими доменными учётными данными.
3. Настроить вход на Linux рабочую станцию для пользователей домена, причём желательно, чтобы они могли при этом вкусить все прелести SSO (Я, например, не очень люблю часто вводить свой длинный-предлинный пароль).

Обычно для предоставления Linux системе пользователей и групп из домена Active Directory используют winbind либо настраивают библиотеки nss для работы с контроллером домена Active Directory по LDAP протоколу. Но сегодня мы пойдём иным путём: будем использовать PowerBroker Identity Services (Продукт известен также под именем Likewise).


Установка.

Есть две версии продукта: Enterprise и Open. Мне для реализации моих задач хватило Open версии, поэтому всё написанное далее будет касаться её.
Получить Open версию можно на сайте производителя, но ссылку Вам предоставят в обмен на Ваше имя, название компании и e-mail.
Существуют 32-х и 64-х пакеты в форматах rpm и deb. (А также пакеты для OS X, AIX, FreeBSD, SOlaris, HP-UX)
Исходники (Open edition) доступны в git репозирории: git://source.pbis.beyondtrust.com/pbis.git
Я устанавливал PBIS на Debian Wheezy amd64:
wget http://download.beyondtrust.com/PBISO/7.1.0/1203/pbis-open-7.1.0.1203.linux.x86_64.deb.sh
./pbis-open-7.1.0.1203.linux.x86_64.deb.sh


Содержимое пакета устанавливается в /opt/pbis. Также в системе появляется новый runscript lwsmd, который собственно запускает агента PBIS.
В систему добавляется модуль PAM pap_lsass.so.
Утилиты (большей частью консольные), необходимые для функционирования PBIS, а также облегчающие жизнь администратору размещаются в /opt/pbis/bin

Ввод в домен.

Перед вводом в домен следует убедиться, что контроллеры домена доступы и доменные имена корректно разворачиваются в ip. (Иначе следует настроить resolv.conf)
Для ввода в домен предназначены две команды: /opt/pbis/bin/domainjoin-cli и /opt/pbis/bin/domainjoin-gui. Одна из них работает в командной строке, вторая использует libgtk для отображения графического интерфеса.
Для ввода в домен потребуется указать: имя домена, логин и пароль доменного пользователя с правами для ввода ПК в домен, контейнер для размещения объекта компьютера в домене — всё то же самое, что и при вводе в домен windows ПК.

После ввода в домен потребуется перезагрузка.
Обратите внимание — PBIS умеет работать с сайтами Active Directory. Клиент PBIS будет работать с контроллерами того сайта, в котором он находится!

После перезагрузки.

После перезагрузки и id, и getent выдадут вам пользователей и группы домена (национальные символы обрабатываются корректно. Пробелы заменяются на символ "^").
В доменной DNS зоне появится запись с именем вашего ПК.
Не спешите входить от имени доменного пользователя. Сначала имеет смысл (но вовсе не обязательно) настроить PBIS.
/opt/pbis/bin/config --list

выдаст список доступных параметров.
[Eventlog]
        AllowDeleteTo
        AllowReadTo
        AllowWriteTo
        MaxDiskUsage
        MaxEventLifespan
        MaxNumEvents
[Lsass]
        DomainSeparator
        SpaceReplacement
        EnableEventlog
        LogInvalidPasswords
        Providers
[Lsass - PAM]
        DisplayMotd
        PAMLogLevel
        UserNotAllowedError
[Lsass - Active Directory provider]
        AssumeDefaultDomain
        CreateHomeDir
        CreateK5Login
        SyncSystemTime
        TrimUserMembership
        LdapSignAndSeal
        LogADNetworkConnectionEvents
        NssEnumerationEnabled
        NssGroupMembersQueryCacheOnly
        NssUserMembershipQueryCacheOnly
        RefreshUserCredentials
        CacheEntryExpiry
        DomainManagerCheckDomainOnlineInterval
        DomainManagerUnknownDomainCacheTimeout
        MachinePasswordLifespan
        MemoryCacheSizeCap
        HomeDirPrefix
        HomeDirTemplate
        RemoteHomeDirTemplate
        HomeDirUmask
        LoginShellTemplate
        SkeletonDirs
        UserDomainPrefix
        DomainManagerIgnoreAllTrusts
        DomainManagerIncludeTrustsList
        DomainManagerExcludeTrustsList
        RequireMembershipOf
        SmartcardEnabled
        SmartcardRequiredForLogin
[Lsass - Local provider]
        Local_AcceptNTLMv1
        Local_HomeDirTemplate
        Local_HomeDirUmask
        Local_LoginShellTemplate
        Local_SkeletonDirs
[User Monitor]
        UserMonitorCheckInterval
[System Initialization]
        LsassAutostart
        EventlogAutostart
        GpagentAutostart


Одно из отличий Enterprise версии — возможность управлять этими настройками через GPO.
Стоит обратить внимание на HomeDirPrefix, HomeDirTemplate.
Я также сразу задал «RequireMembershipOf» — только пользователи, члены групп или SID из этого списка могут авторизоваться на компьютеры.
Описание каждого параметра можно получить, например так:
/opt/pbis/bin/config --detail RequireMembershipOf

Значение параметра устанавливается например так:
/opt/pbis/bin/config RequireMembershipOf "Администраторы^Linux"


Обратите внимание — PBIS не использует атрибуты SFU либо иные другие атрибуты Acrive Directory для получения loginShell пользователя, а также его uid и gid.
loginShell для доменных пользователей задаётся в настройках PBIS, причём установка различных loginShell различным пользователям — возможна только в Enterprise версии.
uid формируется как хэш SID пользователя.
gid — как хэш SID primaryGroup пользователя.
Таким образом на двух ПК пользователь получит всегда одинаковые uid и gid.

Теперь можно входить в систему от имени доменного пользователя. После входа доменного пользователя обратите внимание на вывод klist — PBIS получит для пользователя необходимые билеты kerberos. После этого можно безпроблемно обращаться к ресурсам на windows ПК (Главное, чтобы используемое ПО поддерживало GSSAPI). Например: теперь я без дополнительных запросов паролей (и пароль мой нигде не сохранён!) открываю любые smb ресурсы домена в Dolphin. Также Firefox (при настройке network.negotiate-auth.trusted-uris) позволяет использовать SSO при доступе к Web-порталам с доменной авторизацией (естественно если SSO настроена на сервере)

А как же SSO при доступе к ресурсам на Linux ПК?

Можно и так! PBIS заполняет /etc/krb5.keytab и поддерживает его актуальным. Поэтому серверное ПО с поддержкой GSSAPI может быть сконфигурировано для SSO.
Например, для доступа к серверу по ssh, в конфигурационный файл /etc/ssh/sshd_config (путь в вашей системе может отличаться)
GSSAPIAuthentication yes
И при подключении указать доменное имя компьютера (присутствующее в его SPN — иначе билет kerberos не сможет быть выписан)
UsePAM yes

(PBIS предоставляет модуль для PAM в том числе)
Также логично будет добавить директиву «AllowGroups» и указать через пробел доменные группы, пользователям которых вы намерены дать доступ к ssh серверу.

На клиентском Linux ПК в конфигурацию клиента ssh достаточно включить:
GSSAPIAuthentication yes

Естественно на клиентском Linux компьютере должен быть настроен kerberos. Простейший способ выполнить это условие — так же ввести клиентский компьютер в домен и работать от имени доменного пользователя.

На клиентском Windows ПК (члене домена) при использовании Putty следует в свойствах SSH соединения установить флаг «Attempt GSSAPI authentification (SSH-2 only)» (В разных версиях этот пункт называется по-разному).

Также в секции Connection --> Data можно поставить переключатель в позицию «Use system username»

Если вы намереваетесь организовать таким образом ssh доступ администраторов к linux серверам — хорошей идеей будет запретить на них вход root по ssh и добавить linux-администраторов (а ещё лучше их доменную группу) в файл sudoers.

Это не единственные сценарии применения PBIS. если статья покажется Вам интересной — в следующей напишу как организовать samba файловый сервер в домене для доменных пользователей без winbind.

Дополнительную информацию по теме можно получить на форуме сообщества PowerBroker Identity Services: forum.beyondtrust.com

UPD. К преимуществам PowerBroker Identity Services я могу отнести:
  1. Хорошую повторяемость (сравните последовательность действий этой статье с инструкцией по настройке winbind)
  2. Кэширование данных из каталога (доменный пользователь может войти на ПК, когда домен не доступен, если его учётные данные в кэше)
  3. Для PBIS не требуется формирование в каталоге AD дополнительных атрибутов пользователя
  4. PBIS понимает сайты AD и работает с контроллерами своего сайта.
  5. Большую безопасность (samba создаёт учётку компьютера с не истекающим паролем)
  6. В платной версии (если возникнет такая необходимость) PBIS агент управляем через GPO (хотя это можно и вычеркнуть. если вы не намерены её покупать)
@Slipeer
карма
27,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

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

  • –2
    Но сегодня мы пойдём иным путём

    В статье не дан ответ зачем это делать
  • 0
    В статье не дан ответ зачем это делать

    А надо? Разве наличие двух путей к одной цели это плохо?
    Если речь идёт о преимуществах данного решения, то, навскидку, я отнесу к ним:
    1. Хорошую повторяемость (сравните последовательность действий этой статье с инструкцией по настройке winbind)
    2. Кэширование данных из каталога (доменный пользователь может войти на ПК, когда домен не доступен, если его учётные данные в кэше)
    3. Для PBIS не требуется формирование в каталоге AD дополнительных атрибутов пользователя
    4. PBIS понимает сайты AD и работает с контроллерами своего сайта.
    5. Большую безопасность (samba создаёт учётку компьютера с не истекающим паролем)
    6. В платной версии (если возникнет такая необходимость) PBIS агент управляем через GPO (хотя это можно и вычеркнуть)

    • 0
      Четвёртый пункт большой плюс. В Solaris 11.1 это работает из коробки, а в Samba только вялые упоминания о планах в мэйлистах.
  • 0
    Собственно сабжевый продукт и есть причесанным винбиндом, керберосом и т.д
    Преимущества описаны, а вот что касается минусов?.. Насколько я помню — необходимо вводить логин с доменом — это доставляет огромное неудобство для конечных пользователей (не админов).
    • +1
      сабжевый продукт и есть причесанным винбиндом

      Я бы сказал — «альтернативной реализацией» winbind.
      Насколько я помню — необходимо вводить логин с доменом

      Никак нет. есть настройка (включена по-умолчанию) позволяющая автоматически подставлять префикс к имени пользователя при входе:
      # /opt/pbis/bin/config --details AssumeDefaultDomain
      Name: AssumeDefaultDomain
      Description: Apply domain name prefix to account name at logon
      Type: boolean
      Current Value: true
      Accepted Values: true, false
      Current Value is determined by local policy.
      # /opt/pbis/bin/config --details UserDomainPrefix
      Name: UserDomainPrefix
      Description: Domain short name prefix to be used when AssumeDefaultDomain setting is enabled
      Type: string
      Current Value: "CONTOSO"
      Current Value is determined by local policy.
      
      • +1
        Видимо после поглощения Likewise BeyondTrust-ом что-то поменялось, раньше ввод логина в виде domain\user был ограничением Open версии.
        Что касается альтернативной реализации winbind — опять же незнаю что сейчас, но раньше Likewise использовал обыкновенную самбу с ее винбиндом и своими надстройками и патчами к ним.
        Собственно приятно слышать что продукт развивается и становится все дружественнее к свом пользователям.
    • НЛО прилетело и опубликовало эту надпись здесь
      • +1
        И там тоже оно. Домен пользователей по-умолчанию можно задать при вводе ПК в домен через GUI, но можно и изменить в любой момент в настройках.
  • +1
    Спасибо за статью.
    После установки likewise на ubuntu и настройки по вашему туториалу я смогу на линукс машине создавать шары с доменными правами, как в обычной windows, т.е. определенной группе или просто списку пользователей давать права на запись и изменение, а остальным только чтение (а то на работе есть AD, а файлопомойка на linux с поднятой самба и кто-то регулярно пакостит, удаляя все).
  • 0
    а еще likewise + acl + git: удобный простой гит сервер, с поддержкой групп АД.
  • 0
    Значение параметра устанавливается например так:
    /opt/pbis/bin/config RequireMembershipOf «Администраторы^Linux»

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

    opt/pbis/bin/config RequireMembershipOf "DOMAIN\\Администраторы^Linux"
    
  • 0
    а может кто подскажет — как разрешить всей группе, указанной ранее (из AD которая) выполнять команды sudo ?! какой формат записи в visudo?
    % DOMAIN\\Администраторы^Linux ALL=(ALL) NOPASSWD: ALL — не прокатывает :(
  • 0
    • Без пробела между % и названием группы
    • Скорее всего проблема с разделителем домена/группы
    • Проверьте, что у вас в опции AssumeDefaultDomain — у меня везде true и работает без указания домена
    • 0
      благодарю! дело, действительно, было в формате написания — теперь работает :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.