Linux

Насколько практично аутентифицировать сервер Linux с помощью AD?

В нашей компании, занимающейся разработкой программного обеспечения, мы используем серверы Windows и Linux. Одна из проблем, связанных с этой установкой, заключается в том, что у нас нет решения для единого входа. Будучи скорее магазином Microsoft, нежели Linux, мы хотим аутентифицироваться в AD.

Я прочитал пару статей в интернете и понял, что это возможно.

В настоящее время мы используем следующие службы на Linux, которые требуют аутентификации:

1. git-сервер (через SSH).

2. Sendmail.

3. Веб-сервер Apache, в настоящее время использующий файлы .htaccess.

4. Файловые ресурсы SAMBA.

Я хочу знать, насколько практична такая установка? Это действительно работает или подвержено ошибкам?

Ответ 1

Это несложно и вполне практично.

У нас есть несколько сотен настольных машин с двойной загрузкой, которые используют AD auth, а также несколько серверов, которые используют AD auth, чтобы позволить клиентам windows использовать их общие ресурсы samba без явной авторизации пользователей.

Главное вам нужно настроить kerberos, winbind, nss и pam.

Затем вы делаете kinit и net ads join, и все готово.

Вы можете настроить pam на использование нескольких методов для аутентификации, если хотите, так что, если один не работает, он будет переходить к следующему варианту.

Мы обычно используем файлы, winbindd и ldap для серверов, обслуживающих файловые хранилища на серверах windows.

Если возможно, я бы использовал LDAP для информации об учетной записи и winbindd строго для аутентификации, но я полагаю, что вы можете сопоставить атрибуты в /etc/ldap.conf, если вам нужно. Если вы используете winbindd для информации об учетной записи, можно использовать RID (метод хеширования) для генерации uids/gids, но можно использовать и другие методы. Мы использовали RID на одном большом файловом сервере, и это было серьезной проблемой, поэтому я бы попробовал изучить один из других вариантов, если это возможно. В нашем случае все пользователи и группы AD отражаются в LDAP с помощью IDM-системы, поэтому мы используем LDAP для информации об учетной записи на новых серверах и используем winbindd исключительно для аутентификации.

Ответ 2

Вам не нужно использовать Samba, AD поддерживает Kerberos и LDAP напрямую. В большинстве дистрибутивов нет причин использовать какое-либо внешнее программное обеспечение.

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

/etc/ldap.conf

# Конфигурация LDAP для libnss-ldap и libpam-ldap.

# Разрешить хосту продолжать процесс загрузки без обращения к серверу LDAP

bind_policy soft

# Определите серверы LDAP, которые будут использоваться для запросов, это должны быть серверы Глобального каталога

uri ldap://ldap.site.company.local

# Определите корневое место поиска для запросов

base dc=company,dc=local

#debug 1

# Версия LDAP, почти всегда будет v3, она достаточно зрелая.

ldap_version 3

# Имя пользователя, используемое для прокси-аутентификации. Вы можете иметь его в отдельном файле, принадлежащем root, для безопасности ИЛИ использовать TLS/SSL (см. man-страницу).

# НЕ используйте LDAP для аутентификации, если вы используете обычные текстовые привязки, вместо этого используйте Kerberos (и LDAP только для авторизации). См. libpam-krb5.

binddn cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local

# Пароль для прокси-сервера

bindpw SooperSekeretPazzwerd

# TCP порт для выполнения запросов, 3268 - порт глобального каталога, который будет отвечать для всех пользователей в *.company.local

port 3268

# Диапазон поиска (sub = all)

scope sub

# Скажите клиенту закрыть TCP соединения через 30 секунд, Windows будет делать это на стороне сервера в любом случае, это предотвратит появление ошибок в журналах.

 idle_timelimit 30

# Ожидайте, что запросы на членство в группе будут возвращать DN членов группы вместо имен пользователей (позволяет вам легко использовать членство в группе MSAD).

nss_schema rfc2307bis

# Фильтры - Учетные записи пользователей должны иметь UID >= 2000, чтобы быть распознанными в этой конфигурации, и должны иметь определенный unixHomeDirectory.

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=*)

# Сопоставления классов объектов. Вы можете захотеть сопоставить posixAccount с "mail", чтобы пользователи входили в систему, используя свои адреса электронной почты, т. е. "nss_map_objectclass posixAccount mail".

nss_map_objectclass posixAccount user

nss_map_objectclass shadowAccount user

nss_map_objectclass posixGroup group

# Сопоставление атрибутов.

nss_map_attribute uniqueMember member

nss_map_attribute uid sAMAccountName

nss_map_attribute homeDirectory unixHomeDirectory

nss_map_attribute shadowLastChange pwdLastSet

# Атрибут в LDAP для запроса на соответствие имени пользователя, используемого PAM для аутентификации

pam_login_attribute sAMAccountName

# Фильтр для объектов, которым разрешено входить в систему через PAM

pam_filter objectclass=User

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

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

Ответ 3

Аутентификация абсолютно проста с помощью Likewise Open. 

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

Почти вся моя инфраструктура Linux имеет централизованную аутентификацию и управление пользователями благодаря Likewise Open. Он потрясающе прост в установке и внедрении. В качестве примечания, UID и GID назначаются в соответствии с хеш-функцией, поэтому они идентичны во всей инфраструктуре, так что монтирование NFS работает идеально.

Схожие статьи

Linux

Как запустить сценарий оболочки при запуске системы

Linux

Использование точного, незащищенного источника времени

Для чего нужны открытые CAD программы для Linux, какие они бывают
Linux

Для чего нужны открытые CAD программы для Linux, какие они бывают

Linux

Как обнаружить скрытый процесс в Linux?

×