Стремление к истинной интеграции Active Directory
Прежде чем посмеяться надо мной и сказать: "Если вы хотите Active Directory, используйте Windows" или сказать мне, чтобы использовать Google, выслушайте меня.
Моя компания очень сильно зависит от AD. Нет, на данный момент мы женаты на нем, и как компания из списка Fortune 10, это не меняется. Тем не менее, в нашей среде много систем *nix (в основном RHEL и SLES), и мне еще предстоит найти хороший механизм для интеграции с Active Directory в качестве источника идентификаторов. По крайней мере, мне нужно что-то, чтобы обеспечить следующее:
- Аутентификация через учетные данные AD (позволяя пользователю войти)
- Авторизация после проверки подлинности (предоставление пользователю доступа к областям системы)
- Аудит (возможность привязать действия пользователя к их учетным данным AD)
- Поддержка групп AD (не только простой LDAP и необходимость добавлять / удалять отдельных пользователей в системах)
- Не дублированный / зеркальный источник идентификации, основанный на доверии AD (мне не нужны две огромные системы)
Лучшие решения, которые я нашел, следующие:
- Centrify
- PowerBroker Open (PBIS Open, ранее аналогично Open)
- SSSD+SELinux
Центрифугировать,, просто безобразно Я никогда не был настоящим фанатом. Кроме того, для нужд моей компании мы не можем использовать Centrify-Express, поэтому она не бесплатна и не имеет неограниченной лицензии. Тем не менее, это лучшее решение, которое мы нашли, и я отчаянно пытаюсь найти что-то еще.
PBIS Open - это то, к чему я склоняюсь. Это то, что VMware использует в бэкэнде vShield, и это работает довольно хорошо. Для настройки требуется всего несколько команд, он поддерживает группы AD и не существует вторичной системы управления идентификацией - он напрямую общается с AD. Единственная причина, по которой я не пошел по этому пути, в том, что мне нравятся нативные решения, и если есть лучший способ сделать это, который уже включен в современные дистрибутивы, я полностью за это.
SSSD+SELinux звучало великолепно. Это неприятно в настройке, но оно гибкое, встроенное и поддерживается большинством современных дистрибутивов. Единственное, чего ему не хватает (насколько я понимаю), это поддержка групп AD. Многие статьи предлагают использовать FreeIPA или что-то подобное для добавления этой функциональности, но при дальнейшем чтении это нарушает требование 5 и в основном создает службу идентификации среднего уровня. Меня не интересует в основном дублирование AD или настройка доверия для вторичной службы идентификации.
Другие варианты kludge, которые я выбрасывал, включают использование Puppet (который мы используем) для выталкивания /etc/password,shadow, группирования файлов на конечные точки, но это требует разработки, это невероятно косвенно, и я мог видеть, что что-то идет на юг плохо. Лучшим вариантом было бы добавить SSSD+SELinux к идее Puppet. Хотя это упростит катастрофу, это все равно катастрофа.
Что мне не хватает, что вы используете, и что такое "новая горячность", которую я не учел в решении головной боли интеграции с AD AD в Linux?
6 ответов
Ваши решения здесь - это либо FreeIPA, либо Centrify/PowerBroker. FreeIPA является частью вашей стандартной подписки RHEL, так что уже есть некоторая экономия.
FreeIPA может работать в режиме, когда все пользователи и группы могут приходить из Active Directory. Вы бы сохраняли привязку этих пользователей и групп только к средам POSIX в FreeIPA, таким как правила SUDO, открытые ключи SSH, определения управления доступом на основе хоста, назначения контекста SE Linux и так далее. Для этого вам необходимо сопоставить некоторых ваших пользователей / групп AD с некоторыми группами в FreeIPA, но это не является дублированием информации, а дополнением ее частями, не относящимися к AD.
FreeIPA реализует совместимость с Active Directory, представляя себя как своего рода совместимый с Active Directory лес. Этого достаточно для того, чтобы пользователи FreeIPA могли использовать ресурсы AD через доверие между лесами, но недостаточно для того, чтобы пользователи FreeIPA имели доступ к системам Windows по другую сторону доверия. Вы, кажется, заинтересованы в первой части, так что все должно быть в порядке.
С FreeIPA 4.1, которая уже является частью бета-версии RHEL 7.1 (надеюсь, RHEL 7.1 выйдет "в ближайшее время"), у нас есть мощный механизм, позволяющий сохранять переопределения для пользователей и групп AD во FreeIPA, и SSSD способен обнаруживать их все на степень детализации для каждого сервера
Мне бы очень хотелось услышать, что вы подразумеваете под "настоящими группами AD", когда говорите о SSSD. Более новые версии SSSD не требуют, чтобы группы имели атрибуты POSIX, и в основном считывают членство в группах из TokenGroups, если используется поставщик AD.
Кроме того, в RHEL-7.1 (восходящий поток 1.12+) SSSD получил возможность выполнять проверки контроля доступа с использованием политик GPO.
Не стесняйтесь приходить и писать в список sssd-пользователей, если у вас есть конкретный вопрос.
Предложение Redhat хорошо освещено здесь:
Мудрость в отношении аутентификации Active Directory для серверов Linux?
В моих недавних установках это было сделано через встроенные фильтры SSSD и ldap или sssd.conf.
Что именно ваши пользователи Linux должны делать в системах?
Я использую версию PBIS с открытым исходным кодом. В 6-й версии я обнаружил, что, если я не буду входить в систему какое-то время (например, месяцы), то при входе в систему истечет время ожидания. По крайней мере, так было на многих машинах. У меня не было этой проблемы с версией 8.
Я нашел PBIS достаточно хорошим. Это позволило мне установить опции, которые меня волновали (домашний каталог по умолчанию, домен для входа в систему, установить группу с доступом и т. Д.).
Я никогда не пробовал ничего другого. Но я могу сказать, что я доволен PBIS.
Существует модуль Puppet для его установки (моя версия: https://github.com/etlweather/puppet-pbis).
Я также использую Winbind + Kerberose и отлично работает в течение многих лет, но теперь я перевожу все на Pbis, так как уже несколько лет использую его на некоторых машинах, и я доволен этим. но, как и вам, я хотел бы также иметь нативные решения, поэтому я начну тестировать интеграцию sssd, как упомянуто в этом документе от RedHat. https://www.redhat.com/en/files/resources/en-rhel-intergrating-rhel-6-active-directory.pdf
у него разные сценарии интеграции AD.
Как насчет winbind + samba + kerberos?
- Аутентификация через учетные данные AD (позволяя пользователю войти)
проверено
- Авторизация после проверки подлинности (предоставление пользователю доступа к областям системы)
проверено
- Аудит (возможность привязать действия пользователя к их учетным данным AD)
/ Вар / Журнал / безопасности? проверено
- Поддержка групп AD (не только простой LDAP и необходимость добавлять / удалять отдельных пользователей в системах)
он позволяет группам объявлений или пользователям объявлений в локальных группах, проверено
- Не дублированный / зеркальный источник идентификации, основанный на доверии AD (мне не нужны две огромные системы)
Freeipa не требуется, проверено