- Как определить, что сервер Linux интегрирован с Active Directory (AD)?
- Как определить, что сервер Linux интегрирован с AD с помощью команды PS?
- Как определить, что сервер Linux интегрирован с AD с помощью команды id?
- Как определить, что сервер Linux интегрирован с AD с помощью файла nsswitch.conf?
- Как определить, что сервер Linux интегрирован с AD с помощью файла system-auth?
- Active Directory integration (Русский)
- Contents
- Терминология
- Настройка
- Настройка AD
- Обновление GPO
- Настройка Linux хоста
- Установка
- Обновление DNS
- Настройка NTP
- Kerberos
- Создание ключа Kerberos
- Подтверждение ключа
- pam_winbind.conf
- Samba
- Запуск и проверка сервисов
- Запуск Samba
- Присоединение к Домену
- Перезапуск Samba
- Проверка Winbind
- Проверка nsswitch
- Проверка команд Samba
- Настройка PAM
- system-auth
- Раздел «auth»
- Раздел «account»
- Раздел «session»
- Раздел «password»
- Проверка входа
- Настройка общих файлов
- Добавление файла keytab и включение беспарольного входа на машину через Kerber и ssh
- Создание key tab файла
- Включение входа через keytab
- Подготовка sshd на сервере
- Добавление опций, нужных для клиента
- Проверка установки
- Настройка для полной аутентификации Kerberos без пароля.
- Генерирование keytab, которые будет принимать AD
Как определить, что сервер Linux интегрирован с Active Directory (AD)?
Аутентификация с использованием единого входа (SSO) реализована в большинстве организаций благодаря множественному доступу к приложениям.
Это позволяет пользователю войти в систему с одним идентификатором и паролем для всех приложений, которые доступны в организации.
Он использует централизованную систему аутентификации для всех приложений.
Некоторое время назад мы написали статью о том, как интегрировать систему Linux с AD.
Сегодня мы покажем вам, как проверить, что система Linux интегрирована с AD несколькими способами.
Это может быть сделано четырьмя способами, и мы объясним один за другим.
- Команда ps: сообщает о снимке текущих процессов.
- Команда id: выводит id пользователя.
- Файл /etc/nsswitch.conf: это файл конфигурации Name Service Switch
- Файл /etc/pam.d/system-auth: это общий файл конфигурации для служб PAMified.
Как определить, что сервер Linux интегрирован с AD с помощью команды PS?
Команда ps отображает информацию о выборке активных процессов.
Чтобы интегрировать сервер Linux с AD, нам нужно использовать либо winbind, либо sssd, либо службу ldap.
Итак, используйте команду ps для фильтрации этих сервисов.
Если вы обнаружили, что какая-либо из этих служб работает в системе, мы можем решить, что система в настоящее время интегрируется с AD, используя службу «winbind», «sssd» или «ldap».
Вы можете получить вывод, аналогичный приведенному ниже, если система интегрирована с AD с использованием службы SSSD.
Вы можете получить вывод, похожий на приведенный ниже, если система интегрирована с AD с использованием службы winbind.
Как определить, что сервер Linux интегрирован с AD с помощью команды id?
Она печатает информацию для данного имени пользователя или текущего пользователя.
Она отображает UID, GUID, имя пользователя, имя первичной группы и имя вторичной группы и т. д.
Если система Linux интегрирована с AD, вы можете получить вывод, как показано ниже.
GID ясно показывает, что пользователь исходит от AD “domain users”
Как определить, что сервер Linux интегрирован с AD с помощью файла nsswitch.conf?
Файл конфигурации переключателя службы имен (NSS), /etc/nsswitch.conf, используется библиотекой GNU C и некоторыми другими приложениями для определения источников, из которых можно получить информацию службы имен в ряде категорий, и в каком порядке. , Каждая категория информации идентифицируется именем базы данных.
Вы можете получить вывод, аналогичный приведенному ниже, если система интегрирована с AD с использованием службы SSSD.
Вы можете получить вывод, похожий на приведенный ниже, если система интегрирована с AD с использованием службы winbind.
Вы можете получить вывод, аналогичный приведенному ниже, если система интегрирована с AD с использованием службы ldap.
Как определить, что сервер Linux интегрирован с AD с помощью файла system-auth?
Это общий файл конфигурации для сервисов PAMified.
PAM расшифровывается как Pluggable Authentication Module, который обеспечивает поддержку динамической аутентификации для приложений и сервисов в Linux.
Файл конфигурации system-auth предоставляет общий интерфейс для всех приложений и сервисных демонов, вызывающих библиотеку PAM.
Файл конфигурации system-auth включается почти во все отдельные файлы конфигурации службы с помощью директивы include.
Вы можете получить вывод, аналогичный приведенному ниже, если система интегрирована с AD с использованием службы SSSD.
Вы можете получить вывод, похожий на приведенный ниже, если система интегрирована с AD с использованием службы winbind.
Вы можете получить вывод, аналогичный приведенному ниже, если система интегрирована с AD с использованием службы ldap.
Источник
Active Directory integration (Русский)
Основной задачей системных администраторов являются попытки совместного изпользования разнообразных окружений. Мы имеем в виду смешивание разных серверных операционных систем (Обычно Microsoft Windows & Unix/Linux). Управление пользователями и аутентификацией на данный момент является наиболее сложной задачей. Популярнейший способ решения это задачи — Directory Server. Существует много открытых и коммерческих решений для разный типов *NIX; однако, только немногие решают проблему взаимодействия с Windows. Активный Каталог (AD) — служба каталогов созданная Microsoft для доменных сетей Windows. Он входит в большинство операционных систем Windows Server. Сервера,на которых запущен AD, называются контроллерами доменов(domain controllers)
Активный каталог используется как главное средство администрирования сети и безопасности.Он отвечает за аутентификацию и авторизацию все пользователей и компьютеров в доменной сети Windows, назначая и следя за правилами безопасности для всех компьютеров в сети, также устанавливая и обновляя ПО на компьютерах в этой сети. Например,когда пользователь авторизуется в компьютер,который является частью доменной сети, AD проверяет его пароль и яляется он обычным пользователем или же системным администратором.
Активный католог использует Lightweight Directory Access Protocol (LDAP) версий 2 и 3, Kerberos и DNS. Эти же стандарты доступны в Linux, но их комбинирование — непростая задача. Эта статья поможет вам настроить хост ArchLinux для аутентификация в домене AD.
Эта статья объясняет, как интегрировать хост Arch Linux в сущестующий домен AD. Перед продолжением у вас должен быть существующий домен AD, и пользователь с правами на добавление пользователей и компьютерных аккаунтов. Эта сатья не предназначена ни как полное описание AD,ни как полно описание работы с Samba. Обратитесь к разделу ресурсов для дополнительной информации.
Contents
Терминология
Если вы не знакомы с AD, здесь приведены некоторые ключевые слова, которые будет полезно знать.
- Домен(Domain) : Имя,используемое для группы компьютеров и аккаунтов.
- SID : Каждый компьютер,присоединяющийся к сети должен иметь уникальный SID / Системный идентификатор.
- SMB : Блок сообщения сервера.
- NETBIOS: Network naming protocol used as an alternative to DNS. Mostly legacy, but still used in Windows Networking.
- WINS: Windows Information Naming Service. Used for resolving Netbios names to windows hosts.
- Winbind: Protocol for windows authentication. Протокол для авторизации windows.
Настройка
Настройка AD
Обновление GPO
Возможно, нужно будет отключить Digital Sign Communication (Always) в настройках групп AD. А именно:
Local policies -> Security policies -> Microsoft Network Server -> Digital sign communication (Always) -> выбрать define this policy и поставить «галочку» на disable .
Если вы используете Windows Server 2008 R2, то вам нужно настроить GPO в GPO for Default Domain Controller Policy -> Computer Setting -> Policies -> Windows Setting -> Security Setting -> Local Policies -> Security Option -> Microsoft network client: Digitally sign communications (always)
Настройка Linux хоста
Следующие несколько шагов — начало конфигурации хоста. Вам понадобиться root или sudo доступ.
Установка
Обновление DNS
AD сильно зависит от DNS. Вам нужно будет обновить /etc/resolv.conf , чтобы использовать контроллеры доменов AD:
Замените и IP адресами для сервера AD.Есили ваши AD домены не позволяют использовать DNS форвардинг или рекурсию,возможно,придётся добавить некоторые вещи. Если ваша машина имеет дуалбут Windows и Linux, стоит использовать разные имена DNS и netbios для linux,если обе операционные системы будут членами одного домена.
Настройка NTP
См. NTPd или OpenNTPD для инструкции по настройке NTP. Стоит отметить, что OpenNTPD больше не поддерживается.
При настройке используйте IP адреса серверов AD.Как альтернативу можно использовать другие NTP сервера,которые обеспечат синхронизацию AD в то же место.Тем не менее,AD обычно запускают NTP в качестве службы.
Убедитесь,что демон настроен на sync automatically on startup.
Kerberos
Допустим,что ваша AD называется example.com. Далее допустим что ваша AD управляется двумя доменными контроллерами, главным и вторичным, которые называются PDC и BDS, pdc.example.com и bdc.example.com соответственно. Их адреса будут,например, 192.168.1.2 и 192.168.1.3. Следите за написанием,верхний регистр очень важен.
Создание ключа Kerberos
Теперь во можете запросить ключи для AD (верхний регистр необходим):
Можно использовать любое имя пользователя,у которого есть права администратора домена.
Подтверждение ключа
Запустите klist чтобы проверить,получили ли вы токен,должно быть нечто подобное:
pam_winbind.conf
Если вы получаете ошибки «/etc/security/pam_winbind.conf не найден»,создайте этот файл и отредактируйте его следующим образом:
Samba
Samba — бесплатная реализация протокола SMB/CIFS. Также она включает инструменты для Linux машин,которые заставляют их вести себя будто Windows сервера и клиенты.
В этом разделе мы сначала сфокусируемся на работе аутентификации с помощью изменения секции ‘Global’. Далее, мы вернёмся к остальным.
Теперь надо «объяснить» Samba, что мы будет использовать базы даннх PDC для аутенификации.Будем использовать winbindd, который входит в поставку Samba.Winbind указывает UID и GID Linux машины для AD. Winbind использует UNIX реализацию RPC вызовов, Pluggable Authentication Modules (aka PAM) и Name Service Switch (NSS), чтобы разрешить допуск пользователей и Windows AD на Linux-машинах. Лучшая часть winbindd то,что вам не нужно размечать самому, от вас требуется только указать диапазон UID и GID! Именно их мы объявили в smb.conf.
Обновите файл настроек samba чтобы включить демона winbind
Далее, настройте samba так, для запуска вместе со стартом системы. См. Daemons для подробностей.
Запуск и проверка сервисов
Запуск Samba
Надеемся,вы ещё не перезагрузились! Хорошо. Если у вас запущена X-сессия — выходите из неё,чтобы проверить вход в другой терминал не выходя из своей сессии.
Запуск Samba (включая smbd, nmbd и winbindd):
Если вы проверите список процессов,то заметите,что на самом деле winbind не запустился. Быстрый осмотр логов говорит,что SID для этого хоста может быть получен от домена:
Присоединение к Домену
Вам нужен аккаунт администратора AD чтобы сделать это. Пусть наш логин: Administrator. Комана — ‘net ads join’
Перезапуск Samba
winbindd не смог запуститься потому,что пока что мы не домен.
Перезапустите сервис Samba и winbind тоже должен запуститься.
NSSwitch говорит Linux хосту как получить игформацию из различных источников и к каком порядке это сделать. В нашем случае мы добаим AD как дополнительный источник для пользователей, групп и хостов.
Проверка Winbind
Проверим, может ли winbind получить доступ к AD. Следующие команды возвращают список пользователей AD:
- Note мы создали пользователя AD ‘test.user’ в домменом контоллере.
Можно сделать то же самое для групп AD:
Проверка nsswitch
Дабы убедиться,что нащ хост имеет доступ к домену для пользователей и групп, мы проверим настройки nsswitch, используя ‘getent’. Следующий вывод показывает,как оно дожно выглядеть на нетронутом ArchLinux:
Проверка команд Samba
Попробуйте некоторые команды,чтобу увидеть,может ли Samba взаимодействовать с AD:
Настройка PAM
Теперь мы будем менять разные правила в PAM, чтобы допустить пользователей AD к использованию системы для входа и к sudo доступу. Когда вы меняете правила, запоминание их порядка и помечены ли они как required или как sufficient критически важно,если вы хотите,чтобы всё работало,как вы задумали.Вам не стоит отклоняться от этих правил,если только вы не знаете как писать правила для PAM
В случае со входом,PAM следует сначала запросить аккаунт AD и проверять локальные аккаунты только если аккаунту AD не соответствует локальный аккаунт.Поэтому, мы добавим записи,которые включат pam_winbindd.so в процесс аутентификации.
Главный процесс аутентификации в конфигурации PAM ArchLinux находится в /etc/pam.d/system-auth . Начав со стандартной конфигурации из pambase , измените её следующим образом:
system-auth
Раздел «auth»
Удалите её, и замените следующим:
Раздел «account»
Под ней допишите следующее:
Раздел «session»
Под ней допишите следующее:
Раздел «password»
Удалите её и замените следующими:
Проверка входа
Теперь запустите новую сессию/войдите через ssh и попробуйте войти,использую данные аккаунта AD. Имя домена опционально, так как это было задано в настройках Winbind как ‘default realm’. Заметьте,что в случае с ssh, вам нужно изменить /etc/ssh/sshd_config , чтобы он разрешал аутентификацию через kerberos: (KerberosAuthentication yes) .
Оба должны работать. Стоит подметить,что /home/example/test.user будет создан автоматически.
Войдите в другую сессию использую аккаунт Linux. Удостоверьтесь,что всё ещё можете войти как root — запомните,что вы должны быть под аккаунтом root как минимум в одной сессии!
Настройка общих файлов
Ранее мы пропустили настройку общих файлов. Теперь,когда всё работает, вернитесь к /etc/smb.conf и добавьте эксопрт для хостов,которые вы желаете сделать доступными в Windows
В примере выше, ключевое слово NETWORK. Не путайте его с именем домена. Для добавления групп,добавьте символ ‘@’ к группе. Заметьте, Domain Admins заключается в «цитаты», чтобы Samba корректно считывала их,когда просматривает файл конфигурации.
Добавление файла keytab и включение беспарольного входа на машину через Kerber и ssh
Это объясняет,как сгенерировать keytab файл,который вам нужен,например,чтобы включить беспарольный вход на машину через Kerber и ssh с другой машины в том же домене. Допустим, что у вас много компьютеров в домене и вы только что добавили сервер/рабочую станцию использую описание выше в ваш домен, в котором пользователям нужен ssh для работы — например рабочаю станция GPU или вычислительный узел OpenMP и т.д. В этом случае вам, наверное, не захочется вводить пароль каждый раз при входе. С другой стороны аутентификация с помощью ключа используется множеством пользователей, в этом случае нужных полномочий для,например,монтирования общего NFSv4 с Kerberos. Так что это поможет включить беспарольные входы на машины используя «kerberos ticket forwarding».
Создание key tab файла
Запустите ‘net ads keytab create -U administrator’ как суперпользователь дабы создать keytab файл в ‘/etc/krb5.keytab’. Она напишет ваи,что необходимо включить аутентификацию с помощью keytab в файле конфигурации, чтобы мы могли совершить следующий шаг. Иногда возникают проблемы, если файл krb5.keytab уже существует,в таком случае нужно переименовать его и запустить команду ещё раз, это должно помочь.
Проверьте содержание файла следующим образом:
Включение входа через keytab
Теперь вам нужно указать winbind,что он должен использовать keytab файлы,добавив следующий строки в /etc/samba/smb.conf:
В итоге всё должно выглядеть примерно так:
Перезапустите winbind.service с помощью ‘systemctl restart winbind.service’ с привелегиями суперпользователя.
Проверьте,всё ли работает,получив тикет для вашей системы и запустив
Эта команда не должна написать ничего в консоль,ондако ‘klist’ должен показать что-то вроде этого:
Некоторые частые ошибки : a)забывают поставить $ или b) игнорируют чувствительный регистр — он должен быть точно таким же,как записьв keytab
Подготовка sshd на сервере
Всё,что нам нужно сделать — это добавить некоторые опции в sshd_config и перезапустить sshd.service.
Измените ‘/etc/ssh/sshd_config’ чтобы он выглядел так в нужных местах:
Добавление опций, нужных для клиента
Для начала нам нужно убедиться в том, что тикеты доступны для клиента. Обычно всё работает, но, на всякий случай, используйте следующий параметр:
Далее надо добавить опции:
в наш файл .ssh/config , который говорит ssh использовать эту опцию, как альтернативу: можно использовать ‘ssh -o’ (смотрите страницу справочного руководства ssh(1) ).
Проверка установки
Убедитесь,что у вас правильный тикет, используя ‘kinit’. Затем подключитесь к своем машине через ssh
Вы должны подключится без просьбы ввести пароль
Если у вас также включна аутентификация ключем,нужно выполнить
чтобы увидеть,какой метод аутентификации используется на самом деле.
Для дебага вы можете включить DEBUG3 на сервере и посмотреть лог через ‘journalctl’
Настройка для полной аутентификации Kerberos без пароля.
Если ваши клиенты не используют доменные аккаунты на их локальных машинах (по какой бы то не было причине),довольно сложно будет научить их использовать ‘kinit’ перед тем,как ssh подключится к рабочей станции.Так что есть классный способ это решить:
Генерирование keytab, которые будет принимать AD
Пользователь должен выполнить:
Теперь провертьте файл:
Оно не должно спросить пароль, теперь просто скопируйте это в ‘
/.bashrc’, это позволит не вводит пароль каждый раз.
Источник