Как использовать Active Directory для аутентификации пользователей Linux

10

Каковы рекомендации по использованию Active Directory для проверки подлинности пользователей в системах Linux (Debian)?

Я бы хотел, чтобы это работало так, чтобы добавить пользователей AD в группу, скажем, администраторов linux или веб-сервера linux , и в зависимости от их членства в группе им будет / не будет предоставлен доступ к определенному серверу. В идеале учетная запись root должна быть единственной, поддерживаемой стандартным способом.

Мои цели в этом заключаются в следующем:

  • Разрешить смену пароля в одном месте
  • Чтобы автоматически предоставлять определенным людям доступ к серверам Linux с использованием их учетных данных AD
  • Объединить всю информацию о наших пользователях в одну базу данных.

Чего я хочу избежать:

  • что-либо сложное / нелогичное для нашего администратора Active Directory для управления
  • блокирование пользователей, если серверы AD по какой-то причине недоступны (т.е. нужно каким-то образом кэшировать учетные данные)
  • что-то слишком сложное или нестандартное, что сломается при следующем обновлении сервера.
казарка
источник

Ответы:

4

Программное обеспечение, которое вы ищете, называется также открытым.

Со своей страницы:

  • Присоединяет не-Windows системы к доменам Active Directory за один шаг из командной строки или из графического интерфейса
  • Аутентифицирует пользователей с одним именем пользователя и паролем в Windows и не Windows
  • Применяет одинаковые политики паролей для пользователей не-Windows и пользователей Windows
  • Поддержка нескольких лесов с односторонним и двусторонним доверием между лесами
  • Кэширует учетные данные в случае отказа вашего контроллера домена
  • Обеспечивает единую регистрацию для SSH и Putty
  • Механизм аутентификации следующего поколения, поддерживающий Kerberos, NTLM и SPNEGO
  • Изменения схемы в Active Directory не требуются

Мы использовали это на некоторых машинах здесь, и это, кажется, работает хорошо.

http://www.likewise.com/products/likewise_open/

Дэйв Драгер
источник
Есть ли в Likewise Open репозиторий debian? Это важно для нас для управления исправлениями безопасности.
Брент
1
Он имеет пакет Ubuntu: Пакет: likewise-open Состояние: не установлено Версия: 4.1.2982-0ubuntu1 Приоритет: необязательный Раздел: net Maintainer: Разработчики ядра Ubuntu <ubuntu-devel-discuss@lists.ubuntu.com>
jay_dubya
Из того, что я могу сказать, это проприетарное решение, и вы можете делать все перечисленное выше (без графического интерфейса) с LDAP + Kerberos, большинство из которых должны автоматически настраиваться, если вы находитесь в домене Windows.
TheFiddlerWins
4

У вас нет причин использовать какое-либо внешнее программное обеспечение в большинстве дистрибутивов.

Для Debian / Ubuntu вы можете сделать это с помощью libnss-ldap и libpam-krb5. Есть несколько хитростей, чтобы получить 100%. Это предполагает, что у вас есть "unixHomeDirectory", заполненный для пользователей Linux, ваши Linux-блоки используют NTP, общий с вашими системами Windows (требуется Kerberos), и что вы в порядке с поиском в формате NSS в виде простого текста (не пароль, а информация о членстве в группе и т. Д. - вы также можете используйте TLS, но это сложнее настроить). Вы не должны иметь pam_ldap в качестве пароля или источника аутентификации в PAM, если только вы не настроены на использование TLS.

/etc/ldap.conf

# LDAP Configuration for libnss-ldap and libpam-ldap.
# Permit host to continue boot process with out contacting LDAP server
bind_policy soft
# Define LDAP servers to use for queries, these must be Global Catalog servers
uri ldap://ldap.site.company.local
# Define root search location for queries
base dc=company,dc=local
#debug 1
# LDAP version, almost always going to be v3, it is quite mature
ldap_version 3
# Username used to proxy authentication. You can have this in a separate file owned by root for security OR use TLS/SSL (see man page)
# Do NOT use LDAP for authentication if you are using plain text binds, use Kerberos instead (and LDAP for authorization only). See libpam-krb5.
binddn cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
# Password for proxy acct
bindpw SooperSekeretPazzwerd
#  TCP port to perform queries on, 3268 is a Global Catalog port which will reply for all users in *.company.local
port 3268
# Search range scope (sub = all)
scope sub
# Tell the client to close TCP connctions after 30 seconds, Windows will do this on the server side anyways, this will prevent errors from showing up in the logs.
 idle_timelimit 30
# Expect queries for group membership to return DN for group members instead of usernames (lets you use MSAD group membership seamlessly)
nss_schema rfc2307bis
# Filters - User accounts must have a UID >= 2000 to be recognized in this configuration and must have a unixHomeDirectory defined.
nss_base_group dc=company,dc=local?sub?&(objectClass=group)(gidNumber=*)
nss_base_user dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
nss_base_shadow dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
# Object Class mappings.  You may want to have the posixAccount to map to "mail" and have users login with their email addresses, i.e.  "nss_map_objectclass posixAccount mail".
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_objectclass posixGroup group
# Attribute mappings.
nss_map_attribute uniqueMember member
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
# Attribute in LDAP to query to match the username used by PAM for authentication
pam_login_attribute sAMAccountName
# Filter for objects which are allowed to login via PAM
pam_filter objectclass=User

Вам не нужно редактировать /etc/krb5.conf, предполагая, что ваши Linux-боксы используют DNS-серверы, которые знают об AD (зоны _msdcs с соответствующими записями SRV разрешимы)

/etc/nsswitch.conf должен иметь «файлы ldap» для пользователей, групп, теней.

Для Red Hat с использованием SSSD:

/etc/sssd/sssd.conf

[domain/AD]
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = ldap

ldap_uri = ldap://ldap.company.local:3268/
ldap_search_base = dc=company,dc=com
ldap_default_bind_dn = cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
ldap_default_authtok = SooperSekeretPazzwerd
ldap_schema = rfc2307bis
ldap_user_object_class = user
ldap_group_object_class = group
ldap_user_name = sAMAccountName
ldap_user_home_directory = unixHomeDirectory
enumerate = true
ldap_tls_reqcert = never
ldap_tls_cacertdir = /etc/openldap/cacerts

ldap_id_use_start_tls = False
cache_credentials = True
krb5_realm = SITE.COMPANY.COM
case_sensitive = false
[sssd]
services = nss, pam
config_file_version = 2

domains = AD
[nss]
filter_users = root,named,avahi,nscd
TheFiddlerWins
источник
3

Я использовал Likewise-Open и обнаружил, что он глючит и не очень надежен. В прошлом году я перешел на Centrify, как для Linux, так и для Mac, и мне совсем не приходилось с ним связываться. Я предпочитаю конфигурацию conf-файла Centrify конфигурации Likewise-Open, которая требует манипуляций с внешними инструментами.

http://www.centrify.com/express/free-active-directory-tools-for-linux-mac.asp

Джереми Нельсон
источник
0

Вы должны оценить радиус. Настройте Linux-боксы для использования pam-radius и установите плагин MS radius NPS. Это будет говорить с нашей эры. Вы можете получить обзор в pdf, например, здесь: http://www.wikidsystems.com/learn-more/two-factor-authentication-white-papers (без регистрации). Просто игнорируйте биты двухфакторной аутентификации.

nowen
источник