иллюстрация к статье SSH-АУТЕНТИФИКАЦИЯ
  1. ПРОТОКОЛЫ
  2. ПРИЛОЖЕНИЯ СЕРВЕРА АУТЕНТИФИКАЦИИ
    1. ПРИЛОЖЕНИЯ АУТЕНТИФИКАЦИИ С ОТКРЫТЫМ ИСТОЧНИКОМ
    2. СОБСТВЕННЫЕ ПРИЛОЖЕНИЯ АУТЕНТИФИКАЦИИ
    3. ОБЛАЧНЫЕ ПРИЛОЖЕНИЯ АУТЕНТИФИКАЦИИ
  3. КЛИЕНТСКИЕ ПРИЛОЖЕНИЯ АУТЕНТИФИКАЦИИ
  4. СРАВНИТЕЛЬНАЯ ТАБЛИЦА САМЫХ ПОПУЛЯРНЫХ ПРИЛОЖЕНИЙ ЦЕНТРАЛЬНОЙ АУТЕНТИФИКАЦИИ КЛИЕНТОВ
  5. КАК МЫ ТЕСТИРУЕМ И НАСТРАИВАЕМ ЦЕНТРАЛЬНЫЙ СЕРВЕР АУТЕНТИФИКАЦИИ ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ
  6. ЗАКЛЮЧЕНИЕ

ПРОТОКОЛЫ

LDAP

LDAP (Lightweight Directory Access Protocol) - это открытый протокол, используемый для хранения и извлечения централизованно хранимых данных в иерархическом и категоризированном виде с помощью структуры каталога, называемой деревом информации о каталоге по сети. LDAP в основном используется для хранения и управления информацией об организации, ее активах и пользователях. Это гибкое, легкое в написании кода решение для определения любого типа сущности и ее качеств. Обычно он реализуется в виде компонента клиент-серверной системы для управления конфиденциальной информацией о деталях учетной записи.

LDAP как протокол связи определяет методы способа доступа к службе каталогов. LDAP представляет данные пользователям в службе каталогов и определяет требования к компонентам, используемым для создания записей данных.

RADIUS

Remote Authentication Dial-In User Service (RADIUS) - это протокол аутентификации, авторизации и учета (AAA), который в основном используется для контроля доступа пользователей. Обычно он используется в сетевых сервисах, таких как беспроводные сети, VPN и сетевое инфраструктурное оборудование. Клиенты RADIUS связываются с серверами с учетными данными пользователя с сообщением Access-Request, а серверы в свою очередь отвечают сообщением Accept, Reject или Challenge. Для минимизации трафика авторизация и аутентификация обычно выполняются одним шагом.

RADIUS поддерживает двухфакторную аутентификацию или сервис одноразовых паролей и более сложные формы аутентификации, такие как те, которые описаны расширяемым протоколом аутентификации (EAP). Учетные услуги также могут выполняться RADIUS для обеспечения правильного отслеживания информации о пользователе. Используйте RADIUS для: беспроводных сетей, VPN, сетевого инфраструктурного оборудования.

SAML

Security Assertion Markup Language (SAML) - это протокол аутентификации и авторизации, который чаще всего используется для решений однократного входа (SSO), обычно в веб-приложениях. Все необходимые для авторизации данные обмениваются цифрово подписанными XML-документами. Такой вид реализации обеспечивает бесшовную аутентификацию между бизнесом и предприятиями.

SAML определяется двумя сущностями: поставщиком услуг и поставщиком идентификации. Поставщик услуг - это обычно веб-приложение, к которому могут получить доступ пользователи. Он запрашивает аутентификацию пользователя у поставщика идентификации. В свою очередь, поставщик идентификации генерирует утверждение об аутентификации, которое будет указывать, что доступ для пользователя разрешен.

SAML имеет улучшенный пользовательский опыт, такой как однократное подписание для доступа к нескольким сервисам. Исключая любую дополнительную аутентификацию, это позволит более быстро и лучше опыт для поставщиков услуг и избежать проблем с восстановлением и сбросом паролей.

Увеличенная безопасность также является одним из преимуществ SAML, которая приходит чрезвычайно важной для корпоративных приложений. Одна точка аутентификации обеспечивает безопасную передачу идентичности поставщикам услуг. Это обеспечивает, что конфиденциальные данные, такие как учетные данные, всегда будут находиться в зоне брандмауэра.

Используйте SAML для веб-приложений.

KERBEROS

Kerberos - это сетевой протокол аутентификации, который обеспечивает технологию шифрования секретным ключом для обеспечения сильной аутентификации для клиент-серверных приложений в открытой сети. Существует бесплатная реализация Kerberos, а также часть многих коммерческих продуктов.

Аутентификация в Kerberos выполняется для того, чтобы избежать передачи паролей в открытом виде по проводам. Он использует общий секрет и доверенный третий арбитр для проверки личности клиентов. В серверах Kerberos пользователи или части программного обеспечения могут быть клиентами. Арбитром является центр распределения ключей (KDC) на стороне сервера, который запускает демоны Kerberos. Общий секрет - это пароль пользователя, преобразованный в криптографический ключ.

Система, основанная на Kerberos, состоит из самого программного обеспечения Kerberos, защищенных серверов аутентификации, централизованного хранилища данных и систем, настроенных на аутентификацию по протоколу Kerberos. Это позволит вам избежать хранения конфиденциальных данных локально на машине, уменьшая вероятность того, что одна машина может подвергнуть опасности всю инфраструктуру. Это также снизит расходы на администрирование большого количества баз данных учетных записей и предоставит инструменты для решения проблем безопасности сети, таких как перехват паролей или кража из базы данных.

ПротоколМетод шифрованияПроверка личности сервераТуннельное шифрованиеСпособ транспортировкиНагрузка на сеть
LDAPEnd-to-EndПроверка X.509ПолныйTCPУмеренный
RADIUSHop-to-HopОбщий ключ и проверка X.509ЧастичноUDPМинимальный
SAMLEnd-to-EndПроверка X.509ПолныйTCPУмеренный
КERBEROSEnd-to-EndNTLM, Kerberos v5ЧастичноUDPМинимальный

ПРИЛОЖЕНИЯ СЕРВЕРА АУТЕНТИФИКАЦИИ

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

  1. Приложения для аутентификации с открытым исходным кодом.
  2. Собственные приложения для аутентификации.
  3. Службы облачной аутентификации.

Смотрите обзор ниже

ПРИЛОЖЕНИЯ АУТЕНТИФИКАЦИИ С ОТКРЫТЫМ ИСТОЧНИКОМ

OPENLDAP

OpenLDAP — это реализация протокола LDAP с открытым исходным кодом, разработанная проектом OpenLDAP. Он был создан на основе LDAP и предназначен для работы по TCP/IP. OpenLDAP поддерживает LDAPv3, который обеспечивает поддержку простого уровня аутентификации и безопасности (SASL) и безопасности транспортного уровня (TLS). OpenLDAP также поддерживает IPv6. OpenLDAP обеспечивает большую безопасность за счет межпроцессного взаимодействия (IPC) вместо обмена данными по сети.

Как следует из названия, это облегченный клиент-серверный протокол для доступа к службам каталогов, в частности к службам каталогов на базе X. 500. LDAP работает через TCP/IP или другие службы передачи, ориентированные на соединение. Все данные в службе каталогов хранятся и организованы в формате типа «ключ-значение». Каталоги хорошо оптимизированы для поиска и операций чтения, а не операций записи. Поэтому они прекрасно работают с информацией, которую обычно гораздо чаще читают, чем пишут.

Данные, хранящиеся в службе каталогов, часто представляют собой описание, используемое для определения качеств объекта. Хорошим примером представления в физическом объекте службы каталогов является адресная книга. Для каждого пользователя/человека в каталоге может быть представлено множество записей, таких как номер телефона, адрес, место работы или любая другая информация, описываемая парами ключ-значение. Службы каталогов очень полезны и полезны, если вы хотите сделать доступной хорошо классифицированную и описательную информацию.

Особенности OpenLDAP:

  • Поддержка LDAPv3: простая аутентификация, уровень безопасности и безопасность транспортного уровня;
  • Поддерживает Интернет-протокол версии 6;
  • Обновлен C API: улучшается способ подключения и использования программистами серверов каталогов LDAP;
  • DIFv1: полное соответствие формату обмена данными LDAP (LDIF);
  • Улучшенный автономный сервер LDAP: обновленная система контроля доступа, пул потоков, улучшенные инструменты;
  • LDAP Over IPC: повышенная безопасность за счет межпроцессного взаимодействия (IPC), устраняющая необходимость взаимодействия по сети.

389 DIRECTORY SERVER

389 Directory Server — это корпоративное решение с открытым исходным кодом, основанное на облегченном протоколе доступа к каталогам (LDAP). Это высоконадежная и безопасная реализация сервера, предназначенная для управления большими каталогами пользователей и ресурсов с возможностью обработки нескольких тысяч операций в секунду.

389 DS имеет несколько расширенных функций, включая асинхронную репликацию с несколькими хозяевами для горизонтального масштабирования и поддерживает TLS и SASL для аутентификации и транспортировки. В дополнение к этому python-ldap предоставляет объектно-ориентированный API для доступа к серверам каталогов LDAP из программ Python.

389 DS включает систему центров сертификации (CA) Mozilla с набором корневых сертификатов X.509v3. Включенные сертификаты имеют свои «биты доверия», установленные для различных целей, поэтому программное обеспечение может использовать сертификаты CA для закрепления цепочки доверия для сертификатов, используемых серверами SSL и пользователями электронной почты S/MIME, без необходимости запрашивать у пользователей дополнительное разрешение или информация.

Ключевые особенности 389 Directory Server:

  • Высокая производительность и отличная масштабируемость;
  • Синхронизация пользователей и групп Active Directory;
  • Четырехсторонняя репликация с несколькими хозяевами;
  • Безопасная аутентификация и транспортировка (TLS и SASL);
  • Поддержка LDAPv3;
  • Графическая консоль управления;
  • Обширная документация;
  • Поддерживает API openLDAP из Python.

Минусы:

  • Написание консоли на Java;
  • Немного информативная веб-консоль, написанная на Java.

FREEIPA

FreeIPA — это инструмент управления идентификацией с открытым исходным кодом для сетевых сред Linux/Unix, который обеспечивает централизованное решение для управления авторизацией учетных записей и аутентификацией. Он построен на основе хорошо известных компонентов и стандартных протоколов с упором на управление и автоматизацию задач установки и настройки, а также на хранение данных о пользователях, группах, хостах и ​​других объектах. FreeIPA предоставляет простые в установке и использовании инструменты командной строки и веб-управления для пользователей и администраторов в среде Linux.

Данные на сервере LDAP можно изменить с помощью платформы FreeIPA. И серверная, и клиентская части написаны на Python. Framework обеспечивает подключение через CLI или веб-интерфейс пользователя, а также доступ к нему можно получить программным способом через соединение HTTPS. FreeIPA можно расширять на нескольких уровнях, поскольку основные части платформы реализованы в виде подключаемых модулей.

Для подписи и публикации сертификатов для хостов и сервисов FreeIPA существует интегрированная служба PKI, реализованная через проект Dogtag. Для проверки программного обеспечения сертификатов также могут быть предоставлены услуги CRL и OCSP. Запрос, отображение и поиск сертификатов, доступных с использованием API, предоставляемого платформой.

Инфраструктуре также необходимо обрабатывать обновление сертификатов, используемых клиентами и службами, из-за их ограниченного срока действия. Эту функцию выполняет демон Certmonger, работающий на всех клиентах.

FreeIPA представляет собой комбинацию различных технологий с открытым исходным кодом с интерфейсами CLI и веб-интерфейсом:

  • Инфраструктура LDAP на базе 389 Directory Server;
  • KDC — реализация MIT Kerberos;
  • PKI на основе центра сертификации Dogtag;
  • Библиотеки Samba для интеграции с Active Directory;
  • DNS-сервер на основе BIND;
  • SSSD: набор демонов для управления доступом к удаленным каталогам и механизмом аутентификации;
  • FreeIPA можно легко интегрировать в среду Active Directory посредством межобластного доверия Kerberos или синхронизации пользователей.

Возможности:

  • В домене можно настроить несколько серверов;
  • Масштабируемость от небольших офисов до крупных корпоративных установок;
  • Полная мультимастерная инфраструктура на основе сервера LDAP в качестве основного хранилища данных;
  • Аутентификация с единым входом обеспечивается через MIT Kerberos KDC;
  • Управление доменными именами на основе Bind DNS-сервера;
  • Централизованное управление механизмами безопасности, такими как пароли, открытые ключи SSH, правила SUDO, правила контроля доступа и т. д.
  • Расширенные механизмы группировки для ограничения доступа к сети к сервисам для конкретных пользователей;
  • Делегирование административных задач опытным пользователям;
  • Интеграция в среду Active Directory; 
    Доступ ко всем машинам с одинаковыми учетными данными и настройками безопасности для всех пользователей;
  • Возможность для пользователей прозрачного доступа к личным файлам с любого компьютера с аутентификацией и безопасностью;
  • Веб-интерфейс и интерфейс командной строки для обеспечения полностью централизованного управления административными задачами и всеми аспектами безопасности, связанными с контролем доступа;
  • Python Framework для управления сервером LDAP.

Минусы:

  • Для установки и работы требуется минимум 4 ГБ оперативной памяти;
  • Написание консоли на Java.

FREERADIUS

FreeRADIUS — это модульный высокопроизводительный бесплатный пакет RADIUS.

Это программное обеспечение обеспечивает централизованную аутентификацию и авторизацию в сети и сводит к минимуму количество изменений, которые необходимо внести при добавлении или удалении новых пользователей в сети. FreeRADIUS может аутентифицировать пользователей в таких системах, как 802.1x (WiFi), коммутируемое соединение, PPPoE, VPN, VoIP и многих других.

Пакет RADIUS — это стандартный пакет с многочисленными операционными системами. У него есть бинарные пакеты для многих других пакетов и доступный исходный код, который, как известно, может быть основан практически на чем угодно. Производственные развертывания включают крупномасштабные установки, включающие несколько серверов AAA с более чем десятью миллионами пользователей и миллионами запросов в день. Он поддерживает запросы прокси, балансировку нагрузки и аварийное переключение, а также возможность доступа к различным внутренним базам данных. Многие классы запросов аутентификации могут инициировать доступ к базам данных авторизации (с каскадным возвратом). Учетные данные могут одновременно записываться и храниться в нескольких базах данных и каталогах.

Особенности включают в себя:

  • Множество атрибутов, специфичных для конкретного поставщика;
  • Поддерживает все распространенные протоколы аутентификации;
  • Аутентификация по системному паролю, SQL, Kerberos, LDAP, файлу пользователя или PAM;
  • Инструмент веб-администрирования пользователей на основе PHP;
  • Запросить проксирование с отказоустойчивостью и балансировкой нагрузки;
  • Доступ ко многим типам баз данных, таких как MySQL, PostgreSQL, Oracle, Microsoft Active Directory, OpenLDAP и многим другим;
  • Различные классы запросов аутентификации могут инициировать доступ к разным базам данных аутентификации и авторизации;
  • Виртуальные серверы;
  • Поддержка IPv6;
  • Проксирование и репликация запросов по любым критериям;
  • Поддержка VMPS;
  • Ограниченная поддержка HUP;
  • Ядро сервера основано на событиях;
  • Простой язык политики;
  • Несколько конфигураций по умолчанию;
  • Группы поиска на основе доступа;
  • Кэширование всех конфигурационных файлов в памяти;
  • Сопоставление регулярных выражений в строковых атрибутах.

СОБСТВЕННЫЕ ПРИЛОЖЕНИЯ АУТЕНТИФИКАЦИИ

ACTIVE DIRECTORY 
Active Directory (AD) — это продукт компании Microsoft, состоящий из нескольких служб, работающих на Windows Server. Это помогает управлять разрешениями и доступом к различным ресурсам в сети.

Данные в Active Directory хранятся в виде объектов. Все объекты в AD, такие как пользователь, группа, приложение или устройство, представляют собой один элемент. Объекты обычно определяются как ресурсы (например, принтеры или компьютеры) или субъекты безопасности (например, пользователи или группы).

Все объекты в AD классифицированы по имени и атрибутам. Имя пользователя может включать строку имени, а также информацию, связанную с пользователем, например пароли и ключи Secure Shell (SSH).

Доменные службы Active Directory (AD DS) — это основные функции Active Directory. Служба домена (AD DS) является основной. Он хранит информацию о каталоге и помогает обрабатывать взаимодействие пользователя с доменом. Когда пользователь входит в систему на устройстве или пытается подключиться к серверу через сеть AD DS, отвечающему за проверку доступа. AD DS управляет доступом пользователей к указанным ресурсам. Например, администратор обычно имеет больше уровней доступа к данным, чем конечный пользователь.

Использование AD DS для базового управления сетевыми пользователями и компьютерами дает несколько преимуществ:

  • Возможность настроить организацию ваших данных в соответствии с потребностями вашей компании;
  • Возможность управлять AD DS с любого компьютера в сети;
  • Встроенная репликация и резервирование: если один контроллер домена (DC) выйдет из строя, нагрузку возьмет на себя другой контроллер домена;
  • Доступ к сетевым ресурсам, проходящим через AD DS, что делает управление вашей сетью централизованным.

Вот службы, которые AD DS предоставляют в качестве основных функций:

  • Доменные службы: управляют связью между пользователями и контроллером домена и хранят данные;
  • Службы сертификации: обслуживание цифровых сертификатов, подписей и шифрования с открытым ключом;
  • Облегченные службы каталогов: обеспечивают поддержку LDAP для кроссплатформенных доменных служб, таких как любые компьютеры Linux;
  • Службы федерации каталогов: обеспечение аутентификации SSO для нескольких приложений в одном сеансе для пользователей;
  • Управление правами: контроль прав и политик доступа к данным, а также определение доступа к папке или отправке электронного письма.

RED HAT DIRECTORY SERVER 
Red Hat Directory Server состоит из нескольких компонентов. Сервер, реализованный по протоколу LDAP, является ядром каталога. Red Hat DS поддерживает клиентский графический интерфейс поверх сервера LDAP, который позволяет пользователям искать и изменять записи в каталоге. Различные клиенты LDAP, сторонние и специальные программы, написанные с использованием Mozilla LDAP SDK или OpenLDAP SDK, могут использоваться с Red Hat DS или интегрироваться в него как приложения.

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

Установленный сервер каталогов Red Hat состоит из нескольких элементов:

  • Основной сервер каталогов LDAP-сервер: сетевой демон, совместимый с LDAP v3, со соответствующими плагинами, инструментами CLI, а также файлами конфигурации и схемы;
  • Сервер администрирования: веб-сервер для управления различными порталами, имеющими доступ к серверу LDAP;
  • Консоль сервера каталогов: графическая консоль управления, позволяющая упростить настройку и обслуживание службы каталогов;
  • Агент SNMP: мониторинг DS с использованием простого протокола сетевого управления (SNMP).

Обзор возможностей:

  • Централизованное управление пользователями и их профилями для снижения административных расходов;
  • Репликация данных с несколькими хозяевами в среде с централизованным, согласованным источником данных, доступным для корпоративных приложений;
  • Доступ по системе единого входа (SSO);
  • Централизованное хранилище профилей и предпочтений пользователей с включенной персонализацией приложений и систем;
  • Масштабируемость для огромного числа пользователей за счет контроля данных для разработки приложений экстрасети.

ЛУЧШЕЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ОБЛАЧНЫХ СПРАВОЧНИКОВ

Облачные службы каталогов — это облачные службы для авторизации, управления и аутентификации доступа пользователей к ИТ-ресурсам в зависимости от типа устройства, операционной системы или любых веб-приложений. Как правило, это реализация управления идентификацией и служб каталогов. Эта услуга подключает сотрудников и пользователей к ИТ-ресурсам и помогает компаниям хранить и управлять информацией об отдельных личностях в рабочем процессе.

Решения облачных служб каталогов поддерживают все основные платформы операционных систем и обеспечивают безопасное подключение к единому облачному каталогу. С помощью облачного решения Directory администраторы могут упростить подключение своих сотрудников к ИТ-ресурсам. Службы каталогов обычно находятся в центре сети и имеют решающее значение для общего успеха компании, поскольку являются основной сетевой инфраструктурой.

Развертывание программного обеспечения как управляемой услуги, предоставляемой через облако, означает снижение затрат на обслуживание, увеличение времени безотказной работы, более быстрое развертывание функций и снижение потребности в оборудовании на месте. Это лишь некоторые из причин, по которым облачные SaaS-решения быстро и глубоко проникают в задачи, которые раньше выполнялись исключительно собственным ИТ-персоналом.

ОБЛАЧНЫЕ ПРИЛОЖЕНИЯ АУТЕНТИФИКАЦИИ

AWS: ПЛЮСЫ И ПРОТИВ 
AWS может похвастаться огромным, постоянно растущим ассортиментом продуктов и услуг и, возможно, самой обширной сетью центров обработки данных, которую в настоящее время может предложить рынок.

Сильные стороны
Слабые стороны
Широкий спектр инфраструктурных приложений
Диапазон вариантов инфраструктуры может оказаться ошеломляющим для более традиционных предприятий
Очень гибкий
Гибридные варианты доступны, но не являются приоритетом
Легкий переход для пользователей с существующей цифровой инфраструктурой
Организации, работающие на устаревших системах, могут столкнуться с более длительным процессом миграции
Часто обновляется и поддерживается
 
Доступен бесплатный уровень
 
Больший контроль над безопасностью
 
Масштабируемость
 
Экономически эффективная модель ценообразования
 
Быстрое развертывание
 
Поддержка крупных предприятий
 

MICROSOFT AZURE: ПЛЮСЫ И ПРОТИВ 
Как продукт Microsoft, Azure, несомненно, выигрывает от знакомства пользователей с брендом, что сразу же создает предпочтение Azure среди лояльных клиентов Microsoft.

Сильные стороны
Слабые стороны
Высокая доступность
Требует серьезного управления
Особое внимание безопасности
Требуется знание платформы
Масштабируемость
Более ограниченная обратная совместимость
Экономично
Сравнительно дороже, чем у других ведущих поставщиков
Мощные варианты IaaS и PaaS
Дополнительная плата за вариант оплаты по факту использования
Поддержка открытого исходного кода
Обслуживание клиентов
Гибридное облако
Меньшая готовность к корпоративному использованию

GOOGLE CLOUD: ПЛЮСЫ И ПРОТИВ 
Он предоставляет клиентам узкоспециализированные услуги по трем основным направлениям: большие данные, машинное обучение и аналитика, с хорошим масштабированием и стабильной балансировкой нагрузки, а также с известным низким временем отклика.

Сильные стороны
Слабые стороны
Отличная интеграция с другими сервисами Google
Большинство компонентов основано на собственной технологии Google; нет реального контроля над виртуальными машинами
Быстрый ввод-вывод
Ограниченный выбор языков программирования
Надежная аналитика и хранение данных
Сложный переход с платформы на другого вендора
Облегчает сотрудничество
Меньше функций/услуг
Создан для облачного бизнеса
Меньше глобальных центров обработки данных
Хорошая мобильность и интеграция с открытым исходным кодом
 

 

СРАВНИТЕЛЬНАЯ ТАБЛИЦА САМЫХ ПОПУЛЯРНЫХ СЕРВЕРНЫХ ПРИЛОЖЕНИЙ ЦЕНТРАЛЬНОЙ АУТЕНТИФИКАЦИИ

 OpenLDAP389 ДСFreeIPAСвободный РадиусМС АД
SELinuxчастичнополныйполныйнетнет
Ключи SSHнеобязательнонеобязательнодадада
Правила Судодада, схемы sudoда, схемы sudoдада
Политика паролейдадададада, политика домена
Обработка сертификатов (TLS)дадададада
Многофакторная аутентификациядадададада

КЛИЕНТСКИЕ ПРИЛОЖЕНИЯ АУТЕНТИФИКАЦИИ

SSSD-КЛИЕНТ 
Демон служб безопасности системы (SSSD) — это системная служба, обеспечивающая доступ к удаленным каталогам и механизмам аутентификации. Его основная функция — обеспечение связи между локальной системой и внешней серверной системой. Это предоставляет клиенту SSSD доступ к удаленным службам идентификации и аутентификации с использованием поставщика SSSD. Например, это может быть каталог LDAP, домен управления идентификацией (IdM) или Active Directory (AD) или область Kerberos. Он также может обеспечить кэширование и автономную поддержку системы с помощью переключателя службы имен (NSS) или подключаемых модулей аутентификации (PAM).

Для этого SSSD:

  • Обеспечивает подключение клиента к хранилищу удостоверений для получения аутентификационной информации;
  • Получить информацию аутентификации для создания локального кэша пользователей и учетных данных на клиенте;
  • Обеспечивает возможность аутентификации пользователей в локальной системе с использованием учетных записей, хранящихся во внешней внутренней системе;
  • Вместо создания учетных записей пользователей в локальной системе SSSD использует удостоверения из внешней базы данных для предоставления доступа к локальной системе.

Некоторые преимущества:

  • Снижена нагрузка на серверы идентификации и аутентификации. При выполнении запросов клиенты SSSD обращаются к SSSD, который проверяет свой кеш. SSSD связывается с серверами только в том случае, если информация недоступна в кеше;
  • Возможность автономной аутентификации. SSSD может дополнительно хранить кэш идентификаторов пользователей и учетных данных, полученных от удаленных служб. Эта настройка дает возможность успешной аутентификации на ресурсах, даже если удаленный сервер или SSSD-клиент находятся в автономном состоянии;
  • Одна учетная запись пользователя. Центральную учетную запись и локальную учетную запись пользователя не обязательно поддерживать для автономной аутентификации с помощью SSSD;
  • Благодаря поддержке кэширования и автономной аутентификации удаленные пользователи могут подключаться к сетевым ресурсам, просто пройдя аутентификацию на своем локальном компьютере. Их сетевые учетные данные будут храниться SSSD.

SSSD можно запускать на разных платформах Linux:

  • Проект Fedora — платформа, используемая первоначальными разработчиками;
  • Red Hat Enterprise Linux;
  • Убунту;
  • Дебиан;
  • ЦентОС;
  • OpenSUSE;
  • Мандрива;
  • Генту;
  • Arch Linux через AUR.

OPENLDAP DAEMONS

Еще один демон, который можно вставить между клиентом и сервером LDAP, — это демон соединений LDAP службы имен (nslcd). Он специально разработан как интерфейс между клиентами и серверами LDAP; ничего больше. Принципиальное отличие от SSSD заключается в том, что это не демон кэширования.

Набор библиотек и инструментов OpenLDAP для управления каталогами LDAP:

  • Openldap — необходимые библиотеки для запуска сервера OpenLDAP и клиентских приложений;
  • Openldap-клиенты — инструменты командной строки для просмотра и изменения каталогов на LDAP-сервере;
  • Openldap-серверы — серверы и другие утилиты, необходимые для настройки и запуска LDAP-сервера.

Установки пакета openldap-clients используются для добавления, изменения и удаления записей в каталоге LDAP.

СРАВНИТЕЛЬНАЯ ТАБЛИЦА САМЫХ ПОПУЛЯРНЫХ ПРИЛОЖЕНИЙ ЦЕНТРАЛЬНОЙ АУТЕНТИФИКАЦИИ КЛИЕНТОВ

 НСБОНСЛКДСССР
ССОдадада
Офлайн-входнетнетда
Подключайтесь к нескольким различным источникам аккаунтовнетнетда
Безопасное соединение LDAPдадада
Фильтр поддержки (кто может подключиться)нетнетда

КАК МЫ ТЕСТИРУЕМ И НАСТРАИВАЕМ ЦЕНТРАЛЬНЫЙ СЕРВЕР АУТЕНТИФИКАЦИИ ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ

Мы начинаем думать о внутренних централизованных системах аутентификации, когда количество серверов начинает увеличиваться до больших значений. Очень часто вам приходится управлять множеством ssh-ключей на большом количестве серверов, когда сотрудники уходят или приходят в компанию, и это занимает много времени. Также пользователи могут лично создавать несколько учетных записей на внутренних или внешних серверах, и проблема часто заключается в отсутствии информации о правах доступа пользователя, когда он покидает компанию. В таких ситуациях администраторам приходится проверять все серверы на наличие личных учетных записей пользователей и удалять их. Центральный сервер аутентификации значительно помогает системным администраторам в повседневной работе, поскольку вся необходимая информация хранится в одном централизованном месте.

Наши требования к ПО для централизованной авторизации

  1. Возможность хранить все учетные записи пользователей в одном месте.
  2. Управление ключами SSH.
  3. Контроль доступа к серверам через SSH.
  4. Возможность отключить доступ пользователей к серверам в одном месте.
  5. Хранение журналов аутентификации в одном месте.
  6. Управление правами доступа sudo.

ТЕСТ СЕРВЕРА FREEIPA 
Процесс установки сервера FreeIPA очень прост в системах Fedora, Centos и Ubuntu, поскольку все пакеты размещаются в репозиториях. Минимальные системные требования к аппаратному обеспечению для установки сервера FreeIPA — 4 ГБ ОЗУ. Сервер FreeIPA включает в себя каталог openldap для хранения пользовательских данных.

Ограничение или предоставление прав доступа пользователей к определенным ресурсам в сети управляется ACL (списком контроля доступа). ACL предоставляет гибкий механизм управления правами доступа к сетевым ресурсам с возможностью объединения пользователей и серверов в группы. Таким образом, настройки разрешений можно применять ко всей группе, а не только к одному пользователю или серверу.

Мы протестировали сервер FreeIPA на системах Ubuntu и CentOS. Система CentOS показала лучшую производительность.

Чтобы установить серверные пакеты FreeIPA в Ubuntu, выполните следующие шаги:

  1. Установить имя хоста;
  2. Обновление системы;
  3. Установите и настройте rng-tools для достижения высокой энтропии из-за большого количества криптографических операций, выполняемых на работающем сервере Freeipa. Ваша виртуальная машина должна иметь достаточную энтропию, чтобы гарантировать, что криптографические операции FreeIPA не остановятся. Чтобы настроить rng-tools: в файле /etc/default/rng-tools необходимо добавить строку HRNGDEVICE=/dev/urandom, чтобы использовать источник ввода /dev/urandomas для случайных данных;
  4. Включить и запустить rng-tool;
  5. Установите сервер FreeIPA командой:
  6. Чтобы настроить сервер FreeIPA, выполните следующую команду, это предложит вам ряд параметров конфигурации для установки сервера FreeIPA:
sudo ipa-server-install
  1. Когда настройка сервера FreeIPA завершена, откройте необходимые порты для служб сервера FreeIPA через брандмауэр. Если ufw уже установлен, включите его и начните с команды:
sudo systemctl enable ufw 
sudo systemctl start ufw
  1. Далее откройте все необходимые TCP-порты для FreeIPA:
for i in 80 443 389 636 88 464; do sudo ufw allow proto tcp from any to any port $i; done
  1. Также сделайте то же самое для портов UDP:
for i in 88 464 123; do sudo ufw allow proto udp from any to any port $i; done
  1. После завершения настройки необходимых открытых портов перезагрузите ufw:
sudo ufw reload

После установки и настройки FreeIPA все машины в сети можно легко подключить к серверу с помощью клиентского приложения. Имя хоста будет автоматически добавлено в каталог, когда клиентский компьютер подключается к серверу FreeIPA. Все хосты можно просматривать и управлять ими через консоль FreeIPA.

Установочный пакет Freeipa-клиента уже включает зависимости от приложений sssd, krb5 и nsswitch. SSSD обеспечивает доступ с клиентского компьютера к каталогу FreeIPA и возвращает данные аутентификации с сервера. Пакет Krb5 предоставляет механизм аутентификации для протокола Kerberos, если он включен в конфигурации сервера FreeIPA.

Для настройки freeip-клиента вам необходимо выполнить следующую команду, которая предложит вам ряд параметров конфигурации для настройки freeipa-клиента для подключения к серверу FreeIPA:

ipa-client-install --mkhomedir --force-ntpd


Пакеты Nsswitch, sssd и krb5 будут установлены автоматически в процессе установки без какой-либо дополнительной настройки.

После завершения тестирования функционала FreeIPA мы проанализировали всю полученную информацию и пришли к выводу, что часть функционала очень требовательна к используемым ресурсам.

FreeIPA — это гибкое программное обеспечение с полезной функциональностью и подходящим приложением командной строки, но имеет тяжелую Java-консоль, которая слишком требовательна к аппаратному обеспечению.

ТЕСТ 389 СЕРВЕР СПРАВОЧНИКОВ

Сервер каталогов 389 имеет очень простой процесс установки в дистрибутивах на базе Fedora и CentOS. Для системы CentOS 7 прежде всего выполните предварительные шаги для настройки базовой системы:

  1. Настройте имя хоста и добавьте запись имени хоста в /etc/hostsfile ;
  2. Создайте /etc/sysctl.d/10-ldap.conffile и добавьте в него строки конфигурации:
net.ipv4.tcp_keepalive_time = 300 
net.ipv4.ip_local_port_range = 1024 65000 
fs.file-max = 64000
  1. Отредактируйте файл /etc/security/limits.conf , добавьте строки внизу:

* soft nofile 8192 
* hard nofile 8192
  1. Отредактируйте файл /etc/profile, добавьте в его конец строку:
ulimit -n 8192
  1. В конце файла /etc/pam.d/login добавьте строку:
session required /lib/security/pam_limits.so
  1. Перезагрузите сервер. 
    Чтобы установить пакеты сервера каталогов 389, выполните следующие действия:
  • Установите репозиторий epel и remi:
yum install -y epel-release 
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 
rpm -Uvh remi-release-7.rpm
  • Добавьте пользователя LDAP с установленным паролем:
useradd ldapadmin 
passwd ldapadmin
  • Установите 389-ds и необходимые пакеты зависимостей:
yum install -y \ 
389-ds-base \ 
openldap-clients \ 
idm-console-framework \ 
389-adminutil \ 
389-admin \ 
389-admin-console \ 
389-console \ 
389-ds-console
  1. Настройте 389-ds и серверы администрирования, выполнив сценарий perl: setup-ds-admin.pl . Это предложит вам несколько вариантов конфигурации для настройки 389 DS и серверов администрирования;
  2. После завершения настройки серверов администратора и каталогов включите и запустите их командами:
systemctl enable dirsrv.target 
systemctl enable dirsrv-admin 
systemctl start dirsrv.target 
systemctl start dirsrv-admin
  1. После запуска служб 389-ds проверьте, доступен ли каталог ldap, с помощью команды:
ldapsearch


Далее необходимо включить и настроить безопасность для соединения ldap. Это можно сделать двумя способами:

  • Из консоли 389-ds.
  • С помощью команды ldapmodify из терминала.
  1. Чтобы запустить безопасное соединение ldap, добавьте сертификат CA на сервер каталогов ldap. Сертификаты CA можно настроить с помощью служебной программы Let's Encrypt;
  2. Добавьте недавно созданные сертификаты CA в определенный каталог сертификатов, и по соображениям безопасности этот каталог должен быть защищен PIN-кодом или паролем;
  3. На собственных серверах клиента мы используем демон SSSD. У демона SSSD очень простой процесс установки, просто нужно установить следующие пакеты:
sssd 
sssd-client 
libpam-sss 
libnss-sss
  1. После завершения установки пакетов отредактируйте файл /etc/nsswitch.conf , необходимо добавить директиву ldap в базы данных passwd, group и Shadow;
  2. После завершения настройки nsswitch отредактируйте файл /etc/sssd/sssd.conf . В разделе домен укажите настройки подключения к ldap-серверу. Добавьте путь к файлу сертификата coulddap_tls_cacertfield, чтобы использовать безопасное соединение ldap;
  3. Когда файл конфигурации sssd будет готов, перейдите к файлу /etc/ldap/ldap.conf для внесения некоторых изменений. Добавьте в него поле TLS_CACERT с путем к файлу сертификата;
  4. Чтобы включить PAM (подключаемые модули аутентификации) для демона SSSD: 
    Отредактируйте /etc/pam.d/password-authfile , добавьте строки ниже:
auth sufficient pam_sss.so use_first_pass 
account [default=bad success=ok user_unknown=ignore] pam_sss.so 
password sufficient pam_sss.so use_authtok 
session optional pam_sss.so
  1. Отредактируйте файл /etc/pam.d/system-auth, добавьте строки ниже:
auth sufficient pam_sss.so use_first_pass 
account [default=bad success=ok user_unknown=ignore] pam_sss.so 
password sufficient pam_sss.so use_authtok 
session optional pam_sss.so
  1. Чтобы начать подключение к серверу с пользователем ldap, просто перезапустите службу sssd:
systemctl restart sssd.service

ЗАКЛЮЧЕНИЕ

В нашей компании мы выбрали для работы 389 Directory Server (389DS), поскольку это легкое по объему написанного кода решение, полностью отвечающее нашим требованиям. Мы используем 389DS для управления учетными записями и предоставления пользователям доступа к серверам по протоколу безопасности ssh. 389DS имеет правила ACL (список управления доступом), которые предоставляют механизмы управления правами доступа для каждого пользователя. Он также имеет поддержку GUI и CLI для управления базами данных LDAP.

Со стороны клиента мы используем SSSD (System Security Services Daemon). После настройки он обеспечивает доступ к клиентскому компьютеру с использованием базы данных пользователей LDAP. В SSSD вы можете добавить функцию архивирования пользовательских данных в течение программируемого времени. Если эта функция включена, пользователи могут авторизоваться на сервере с использованием заархивированных учетных записей 389DS, даже если сервер не отвечает.

Мы добавили новый объект «sshPublicKey» в базу данных 389DS для добавления открытых ключей пользователей для записей учетных записей LDAP. На стороне клиента написанный вручную скрипт bash получает открытые ключи ssh от 389DS и добавляет новые строки конфигурации в sshd_config с помощью команды ldapsearch.