FreeIPA клиент на Ubuntu 20.04

09/05/2021

freeipa client img

Обычная аутентификация на современных системах под управлением ОС Linux, как правило, подразумевает использование файлов /etc/passwd и /etc/shadow, в которых содержится информация о пользователях и их паролях. Однако, недра операционной системы Linux поддерживают с помощью механизма PAM гораздо больше возможностей по аутентификации и авторизации пользователей. PAM (Pluggable Authentication Modules) — низкоуровневые библиотеки, работающие на уровне операционной системы, позволяющие задействовать различные способы идентификации пользователей. Сценарии использования модулей PAM в операционной системе Ubuntu 20.04 находятся в директории — /etc/pam.d/. Другим важным компонентом операционной системы, задействованным в вопросах аутентификации является Name Service Switch. С помощью данного сервиса ОС в том числе определяет источник данных для пользователей и их паролей. Конфигурация данной службы находится в файле — /etc/nsswitch.conf.

FreeIPA клиент в Linux позволяет интегрировать отдельные операционные системы серверов и виртуальных машин в общую управляемую среду с централизованной базой пользователей и правил безопасности. Центральной частью всей подобной системы, безусловно, является сервер FreeIPA, который требует отдельной установки и настройки. Непосредственно на клиентских операционных системах кроме самого freeIPA клиента необходим также System Security Services Daemon (SSSD), который напрямую интегрируется с модулями PAM. При этом сервис SSSD может задействовать различные способы идентификации и аутентификации пользователей — такие как LDAP, Kerberos. Конфигурация демона SSSD находится в файле /etc/sssd/sssd.conf.

Конфигурация

Вместе с установкой базового образа системы Ubuntu Linux, Вы уже получите работающие пакеты PAM и nsswitch, которые обеспечивают встроенные фреймворки аутентификации и идентификации пользователей. Для того, чтобы мы смогли подключить данную ОС к централизованной системе аутентификации, нам в первую очередь нужно установить пакет freeipa-client и соответствующие зависимости. Это делается с помощью следующих команд в консоли.

# sudo apt-get update
# sudo apt-get install freeipa-client

Также мы перед дальнейшей настройкой должны убедиться, что имя хоста прописано правильно в /etc/hostname, а также корректно сконфигурированы DNS сервера и файл /etc/hosts. Непосредстенно настройка freeipa-client происходит при запуске в консоли следующей команды.

# sudo ipa-client-install --mkhomedir --hostname=xxx.andreyus.com

В данном примере мы используем значение hostname — xxx.andreyus.com и явно это указываем при запуске команды. В процессе выполнения директивы нам нужно будет указать домен и имя сервера FreeIPA, к которому будет проходить продключение. После окончания выполнения команды останется последний штрих, чтобы обеспечить создание домашних директорий пользователей FreeIPA. Для этого добавляем в конец файла /etc/pam.d/common-session следующую строчку.

session required  pam_mkhomedir.so  skel=/etc/skel  umask=0022

После этого непосредственная установка и настройка клиентской части в ОС Ubuntu 20.04 завершается, и мы можем проверить работоспособность и задейстовать централизованную аутентификацию на данном хосте. В частности, чтобы проверить, что аутентификация с сервера FreeIPA проходит успешно, выполним команду kinit для пользователя admin. После этого проверим полученные kerberos тикеты через klist. Пример с выводом данных команд представлен ниже.

# kinit admin
Password for admin@ANDREYUS.COM:
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: admin@ANDREYUS.COM

Valid starting     Expires            Service principal
05/09/21 17:29:34  05/10/21 17:29:22  krbtgt/ANDREYUS.COM@ANDREYUS.COM

По умолчанию при установке freeipa агента в Ubuntu 20.04 система настраивается таким образом, что возможно использование централизованной аутентификации, как для аутентификации ssh сессий, так и при вызове sudo. Кроме этого дефолтные правила позволяют использовать локальных пользователей и пользователей центральной базы. Содеражние файла /etc/nsswitch.conf после установки freeipa клиента приведено далее.

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files systemd sss
group:          files systemd sss
shadow:         files sss
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files sss
ethers:         db files
rpc:            db files

netgroup:       nis sss
sudoers: files sss

automount:      sss

Из содержания файла видно, что для файлов passwd, shadow, sudoers будут задействованы как локальные файлы в операционной системе, так и данные из SSSD демона. Данный демон в нашей конфигурации будет обращаться к серверу FreeIPA. На этом установку и настройку freeipa клиента на ОС Ubuntu Linux можно считать завершенной.

Резюме

Желание использовать централизованную идентификацию и аутентификацию на серверах и различных приложениях в сети свойственно большинству системных администраторов. Для инфраструктуры на базе MS Windows многие специалисты используют решение MS Active Directory. Оно стало де-факто стандартом для большинства сетей в мире. Аналогичное решение для Linux среды — система FreeIPA. Она поддерживает большое количество различных дистрибутивов, стабильно работает и продолжает развиваться. Как заставить ОС Ubuntu Linux интегрироваться в эту среду, я постарался показать в этой статье.

FreeIPA клиент на Ubuntu 20.04: 1 комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *