Участник:Toga/Join
Введение
Active Directory (AD) — решение позволяющее объединить различные объекты сети (компьютеры, сервера, принтера, различные сервисы) в единую систему. В данном случае AD выступают в роли каталога (базы данных), в котором хранится информация о пользователях, ПК, серверах, сетевых и периферийных устройствах.
Для реализации данного решения, необходим специальный сервер — контроллер домена. Именно он будет выполнять функции аутентификации пользователей и устройств в сети, а также выступать в качестве хранилища базы данных. При попытке использовать любой из объектов (ПК, сервер, принтер) сети, выполняется обращение к контроллеру домена, который либо разрешает это действие (есть необходимые права), либо блокирует его.
На различных портах контроллера домена находятся разные модули необходимые для работы AD(Kerberos, LDAP???)
Kerberos — сетевой протокол аутентификации, который предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними, причём в протоколе учтён тот факт, что начальный обмен информацией между клиентом и сервером происходит в незащищенной среде, а передаваемые пакеты могут быть перехвачены и модифицированы.
LDAP (англ. Lightweight Directory Access Protocol — «легкорасширяемый протокол доступа к каталогам») — протокол прикладного уровня для доступа к службе каталогов X.500.
NSS (англ. Name Service Switch) – Основная задача NSS – создать модульное окружение для управления пользователями. Реализовано это посредством загружаемых библиотек. Основные вызовы NSS реализованы в библиотеке libc. При инициализации программы, так или иначе связанной с NSS, загружаются основная библиотека libc.so, которая считывает конфигурацию из файла /etc/nsswitch.conf, после чего также загружаются те библиотеки NSS, которые указаны в этом файле.
Пример файла nsswitch.conf
passwd: files sss shadow: tcb files sss group: files [SUCCESS=merge] sss role gshadow: files hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname fallback ethers: files netmasks: files networks: files protocols: files rpc: files services: files netgroup: sss automount: files aliases: files
В последствии при работе программы, если программе требуется работать с именованными сущностями, соответствующие вызовы функций glibc будут обращаться к функциям NSS и использовать те источники данных, которые указаны в nsswitch.conf.
SSSD (англ. The System Security Services Daemon) – решение продоставляет набор демонов для управления доступом к удаленным службам каталогов и механизмам аутентификации.
Пример файла sssd.conf
[sssd] config_file_version = 2 services = nss, pam domains = DOMAIN.ALT [nss] [pam] [domain/DOMAIN.ALT] id_provider = ad auth_provider = ad chpass_provider = ad access_provider = ad default_shell = /bin/bash fallback_homedir = /home/%d/%u debug_level = 0
PAM (англ. Pluggable Authentication Modules) – это набор разделяемых библиотек, которые позволяют интегрировать различные низкоуровневые методы аутентификации в виде единого высокоуровневого API. Это позволяет предоставить единые механизмы для управления, встраивания прикладных программ в процесс аутентификации. Является одной из частей стандартного механизма обеспечения безопасности UNIX-систем. Подсистема PAM идейно очень схожа с NSS, но отличается от нее назначением. Основная задачам PAM – аутентификация пользователей (проверка паролей, прав доступ, ограничений и так далее). Необходимые модули, порядок их вызова и некоторые опциональные параметры определяются в конфигурационных файлах PAM, обычно они расположены в каталоге /etc/pam.d. Главным отличием PAM от NSS (кроме естественно назначения) является то, что PAM является не составной и неотъемлемой частью libc, а отдельным множеством библиотек.
Введение машины в домен AD
- Запрос к контроллеру домена на создание учетной записи компьютера
- Получение ключей по протоколу kerberos
- Аутентификация
- Авторизация
Запрос к контроллеру домена на создание учетной записи
Чтобы уменьшить возможное количество сбоев системы при работе вместо ip используются DNS(англ. Domain Name System «система доменных имён»). Каждый пользователь получает свой домен в виде User_Name.domain.alt.
Если учетной записи копьютера нет в контроллере домена, то она создается в соответствующем каталоге в базе данных.
Данная операция производится при помощи модулей sssd nss pam
Получение ключей по протоколу kerberos
SPN (Service Principal Name) - уникальный идентификатор экземпляра сервиса. SPN используется аутентификацией Kerberos.
Получение krb5.keytab файла, где находятся ключи для запуска сервисов. Ключи могут храниться в различных папках для разделения. Данные keytab файлы представляют собой набор из пар Kerberos принципалов и их ключей. Эти файлы используются для аутентификации в системах, использующих Kerberos, без ввода пароля. Если пароль принципала изменится, то keytab-файл необходимо будет сгенерировать заново.
Аутентификация
Аутентификация — подтверждение подлинности чего-либо или кого либо.
Авторизация
Авторизация — является функцией определения прав доступа к ресурсам и управления этим доступом.