Astra linux freeipa настройка

Обновлено: 05.07.2024

FreeIPA - это комплексное решение по управлению безопасностью Linux-систем, 389 Directory Server, MIT Kerberos, NTP, DNS, Dogtag. Оно состоит из веб-интерфейса и интерфейса командной строки.
FreeIPA является интегрированной системой проверки подлинности и авторизации в сетевой среде Linux, FreeIPA сервер обеспечивает централизованную проверку подлинности, авторизацию и контроль за аккаунтами пользователей сохраняя сведения о пользователе, группах, узлах и других объектах необходимых для обеспечения сетевой безопасности.

Содержание

Установим необходимые пакеты:

Зададим имя сервера:

Для ускорения установки можно установить демон энтропии haveged:

Запускаем скрипт настройки сервера:

В пакетном режиме:

Внимание! Пароли должны быть не менее 8 символов


Обратите внимание на ответы на вопросы, не совпадающие с предложенными:

остальные вопросы выбираем по умолчанию (можно просто нажать Enter). Так же при установке попросят ввести пароль администратора системы и пароль администратора каталогов.

Для возможности управлять FreeIPA сервером из командной строки необходимо получить билет Kerberos:

Добавим в DNS запись о нашем сервере времени:

Проверить работу ntp сервера можно командой:

Также доступен веб-интерфейс по адресу:

и повторите снова.

CA-Less конфигурация требуется в тех случаях, когда у вас по какой-то причине нет возможности развернуть на FreeIPA сервис PKI dogtag. Например, это на данный момент невозможно сделать в некоторых сертифицированных конфигурациях. Если у вас не сертифицированный дистрибутив ALT, то пропустите пункт по настройке CA-Less репликации.

Установим необходимые пакеты:

Зададим имя сервера:

Подготовим сертификаты для сервера FreeIPA:

Создадим файл pwdfiles.txt с паролем, например 12345678:

Создадим базу данных NSS:

Создадим noise файл с рандомом:

Создаем CA сертификат:

Дайте следующие ответы:

Создадим запрос сертификата:

Подпишите запрос о выдаче сертификата сервера:

Дайте следующие ответы:

Экспорт сертификатов в правильные форматы. Импортируем полученный сертификат:

Экспортируйте сертификат CA в формате PEM:

Теперь установим CA-less IPA:

Вы также можете указать при установке опции --pkinit-cert-file=Файл, содержащий сертификат SSL Kerberos KDC и закрытый ключ и --pkinit-pin=Пароль от закрытого ключа Kerberos KDC.

После установки выполните:

И после убедитесь что команды:

Не срабатывают и выводят ошибки.

Внимание! Перед настройкой репликации необходимо выполнить установку клиента

CA-Less конфигурация требуется в тех случаях, когда у вас по какой-то причине нет возможности развернуть на FreeIPA сервис PKI dogtag. Например, это на данный момент невозможно сделать в некоторых сертифицированных конфигурациях. Если у вас не сертифицированный дистрибутив ALT, то пропустите пункт по настройке CA-Less репликации.

Чтобы установить реплику, сначала создайте сертификаты для новой машины: создадим запрос сертификата и подпишем запрос о выдаче сертификата сервера и экспортируем сертификаты в правильные форматы, на этот раз задав $HOSTNAME имя хоста будущей реплики. Используйте Replica-Cert вместо Server-Cert и

/test_ca/servercert.p12: Создадим запрос сертификата для реплики:

Подпишите запрос о выдаче сертификата реплики:

Дайте следующие ответы:

Экспорт сертификатов в правильные форматы.

Импортируем полученный сертификат:

Для domain-level 1

Установим необходимые пакеты:

Зададим имя компьютера:

Добавим DNS сервер, для этого создадим файл /etc/net/ifaces/ens19/resolv.conf со следующим содержимым:

192.168.135.1 - IP-адрес нашего FreeIPA сервера.
Укажем службе resolvconf использовать DNS FreeIPA и наш домен для поиска.
Для этого в файл /etc/resolvconf.conf добавим/отредактируем следующие параметры:

Где ens19 -интерфейс на котором доступен FreeIPA сервер, example.test - наш домен.
Обновим DNS адреса:

После этого в файле /etc/resolv.conf должны появится строки:

Запускаем скрипт настройки клиента: в пакетном режиме:

Отвечаем yes вводим имя пользователя, имеющего право вводить машины в домен, и его пароль.

Пример успешного ввода в домен:

Внимание! Если при входе в домен возникает такая ошибка: Проверьте IP-адрес доменного DNS сервера в файле /etc/resolv.conf


В случае возникновения ошибки, необходимо перед повторной установкой запустить процедуру удаления:

Для работы sudo-политик для доменных пользователей на клиентской машине необходимо разрешить доступ к sudo:

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

Внимание! Если машина до этого была в других доменах или есть проблемы со входом пользователей рекомендуется очистить кэш sssd:

Добавим сервис в автозапуск:

Добавим список экспорта и применим изменения:

Добавить ipa сервис где nfs.testbc.testbe наш nfs сервер:

Добавляем в keytab:

Перезапустим nfs сервер:

Добавим правила автомонтирования:

Удалим пустую карту монтирования:

Настройка клиента: ipa-client-install Устанавливаем пакет freeipa-client-automount:

Проверим доступность nfs:

На IPA сервере: Создадим пользователя:

Предоставим пользователю права на запись:

Создадим домашнюю папку пользователя на nfs сервере:

Добавим правила автомонтирования:

Проверяем на клиенте:

Для отладки используйте:

На втором контроллере домена установим необходимые пакеты:

Зададим имя сервера:

Теперь развернём и настроим клиента:

После выполнения этой операции хост ipabackup.example.test должен появиться в веб-интерфейсе FreeIPA. Переходим к настройке репликации LDAP-каталога:

Добавляем в DNS второй NTP-сервер:

Настроим репликацию DNS-зон:

Наконец, настроим репликацию CA:

После настройки и репликации контроллеров посмотреть топологию можно в веб-интерфейсе FreeIPA (IPA Server -> Topology -> Topology Graph).

FreeIPA использует Samba для интеграции в Active Directory. Для работы Samba необходим работающий стек IPv6.
Начальные данные:

  • IP адрес IPA сервера: 192.168.135.130
  • Имя IPA сервера: dcf
  • Имя IPA домена: domf.testf
  • NetBIOS имя IPA домена: DOMF
  • IP адрес AD DC: 192.168.135.150
  • Имя AD DC: dcc
  • Имя AD домена: domc.testc
  • NetBIOS имя AD домена: DOMC

Установим необходимые пакеты:

Настроим IPA для работы с доверительными отношениями:

Скрипт спросит необходимо ли конфигурировать slapi-nis плагин для поддержки работы старых клиентов (SSSD < 1.9) с пользователем из доверенного домена:

На IPA сервере добавлен хотя бы один пользователь (администратор сервера), поэтому скрипт предложит сгенерировать SID для всех существующих пользователей и груп:

Дата и время на серверах должны совпадать.

Они должны быть открыты и доступны.
Настроим Samba:

Проверим проходит ли Samba аутентификацию Kerberos со стороны IPA сервера:

Настроим DNS на обоих серверах, чтобы они знали друг о друге:
На AD сервере создадим сервер условной пересылки для зоны IPA домена:

На IPA сервере так же добавим зону AD домена:

На AD сервере:
Проверим наличие записей для работы сервисов IPA на DNS-сервере AD.
1. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:

2. Запись отвечающая за имя Kerberos realm IPA домена:

3. После выполнения команды ipa-adtrust-install должны появится записи отвечающие за работу сервисов MS DC Kerberos через UDP и LDAP через TCP:

Далее проверим наличие записей для работы сервисов AD на DNS-сервере AD.
4. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:

На IPA сервере:
Проверим наличие записей для работы сервисов IPA на DNS-сервере IPA.
1. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:

2. Запись отвечающая за имя Kerberos realm IPA домена:

3. После выполнения команды ipa-adtrust-install должны появится записи отвечающие за работу сервисов MS DC Kerberos через UDP и LDAP через TCP:

Далее проверим наличие записей для работы сервисов AD на DNS-сервере IPA. 4. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:

Внимание! Если запись _kerberos._udp.dc._msdcs.domc.testc. не доступна проверьте _kerberos._tcp.dc._msdcs.domc.testc.

Добавление двунаправленных доверительных отношений леса (Forest Trust) с AD:
Имя доменного администратора Windows должно быть на латинице, кириллицу (Администратор) IPA не принимает.

Необходимо ввести пароль Administrator AD.
Далее необходимо запросить сервер AD о его доверенных доменах:

При этом IPA создаст нужные id-диапазоны для доверенных доменов.
Если мы добавим в лес еще один домен DOME.TESTE, то необходимо настроить DNS на обоих серверах, чтобы они видели друг друга.
И выполнить команду еще раз,чтобы IPA сервер узнал о нем:

Найти все доверенные домены можно и с помощью web-интерфейса. Для Перейдем в IPA Server -> Trusts и выберем нужный нам домен:

Нажмём кнопку Fetch domains это обновит список доверенных доменов:

Для того чтобы увидеть список всех доверенных доменов из леса используйте следующую команду:

1. Запросим ticket для IPA пользователя:

2. Запросим service ticket для сервиса из IPA домена:

3. Запросим service ticket сервиса из AD домена:

Если запрос service ticket для сервиса из AD домена прошел успешно, то у нас должен появиться междоменный ticket-granting ticket, его имя krbtgt/DOMC.TESTC@DOMF.TESTF:

Проверим имеет ли доступ к пользователям из доверенного домена рабочие станции IPA.
Для этого на рабочей станции IPA выполните команду:

Где u01domc это пользователь из AD домена. Обратите внимание, что не указана оболочка входа. Назначить оболочку входа для пользователей из доверенного домена можно добавив на сервере IPA в файл /etc/sssd/sssd.conf следующую строчку:

Вывод команды должен стать таким:

Внимание! Для корректной работы сервера IPA с пользователями доверенного домена AD необходимо обеспечить доступ сервиса sssd к /etc/krb5.keytab см. bug 33115 Внимание! Для входа AD пользователя в ALT рабочую станцию из IPA вводим имя пользователя в формате DOMC\username или DOMC.TESTC\username или username@domc username@domc.testc Внимание! Для входа IPA пользователя в windows рабочую станцию из AD вводим имя пользователя в формате DOMF.TESTF\username

Замените пароль на более сложный. Параметр passwordExpirationTime: 20380119031407Z означает, что срок действия пароля неограничен Причина использования такой учетной записи, а не создание обычной учетной записи пользователя IPA, и использование этой системы заключается в том, что системная учетная запись существует только для привязки к LDAP. Это не настоящий пользователь POSIX, он не может войти в систему и ему не принадлежат файлы. У этого пользователя нет особых прав и он не может ничего записывать какие-либо данные на сервер LDAP FreeIPA, только права на чтение.

Если необходимо добавить поля в вашу схему ldap, то реализация этого возможна через команду ldapmodify и добавление своих плагинов для отображения этих полей в WebUi.
Обычно файлы модификации схемы являются типом .ldif.
Пример:
Содержание файла addExtField.ldif

Детальное пояснение для блока:

dn - dn, в котором будет проводиться изменение. Добавление/удаление классов и т.д.

changetype - атрибут, отвечающий за тип изменений, которые будут происходить.(add, delete, modify, modrdn)

add: attributeTypes - добавление атрибута, далее идёт описание атрибута.
2.25.28639311321113238241701611583088740684.14.2.2 - уникальный идентификатор атрибута. Можно написать любой.

NAME 'favoriteColorName' - По другому можно назвать - primary name. Название атрибута.

EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch - эти атрибуты заданы для проверки соответствия содержания атрибута правилам caseIgnoreMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 - OID типа данных

Все изменения в схеме производятся от пользователя - Directory manager.

Изменение схемы ldap:

После изменения схемы, путем добавления нового objectclass, нужно чтобы эти поля еще можно было редактировать в web-интерфейсе. Для этого необходимо сделать палагин. В примере использовано 3 атрибута, для них сделаем 3 отдельных плагина:

1. Создание папки:

2. Создание самого плагина:

В схеме бы добавлен атрибут типа boolean, для него можно сделать радиокнопки:

После необходимо добавить новое поле в "Default user objectclasses" (находится IPA Server -> Configuration) созданный objectclass (customPerson) и появятся поля в web-интерфейсе. Для того чтобы пользователь мог их редактировать, необходимо изменить привилегии в группе ipausers.

Сервер №1 c freeipa: dc1.testbc.testgl

Сервер №2 с репликой freeipa: dc2.testbc.testgl

Сервер №3 с haproxy: haproxy.testbc.testgl

Схема.jpg

Инструкция для настройки сервера №1 и №2: FreeIPA

Сохранить оригинальный конфигурационный файл:

Запустить сервис haproxy:

Проверить работу можно с помощью ldapsearch сделав один из серверов недоступным:

Результат: ldap всегда доступен.

Пользовательские или хост группы можно легко перестроить на основе новых или обновленных правил automember. Команда automember rebuild только добавляет новые отношения для групп, она не удаляет те, которые не соответствуют правилам automember. Недавно добавленная команда вызовет задачу в rebuild automember, создав запись LDAP в cn = automember rebuild membership, cn = tasks, cn = config. Плагин automember в настоящее время проверяет операции Add(добавления), чтобы увидеть, есть ли запись соответствует одному из определенных правил automember. Существующие записи не проверяются когда они изменяются. Чтобы применить правило для всех записей, надо добавить задачу к плагину automember. Создатель задачи обеспечит фильтр поиска и базу. Все совпадающие записи будут проверяться в соответствии с определенными правилами automember, чтобы увидеть если они должны быть добавлены в какие-либо группы. Это позволяет добавить запуск атрибуты(значения) после того, как запись была первоначально добавлена, а затем вызвать задачу(выполнить) обновления automember. Ipa automember-rebuild может использоваться для восстановления членства для всех объектов определенного типа:

Он также может использоваться для восстановления членства для указанных записей:

Добавление новой группы хостов:

Добавить новый хост:

Добавить automember rule:

Функция automember теперь работает для новых добавленных записей. Если мы добавим новый хост, он будет автоматически помещен в соответствующую группу хостов:

FreeIPA (Free Identity, Policy and Audit) — открытый проект централизованной системы управления идентификацией пользователей, политиками доступа и аудита. В состав FreeIPA входят:

  • Служба каталогов 389 Directory Server;
  • Служба аутентификации и единой точки входа MIT’s Kerberos;
  • Службы BIND и DHCP для управления службой DNS в сети.
  • Служба управления сертификатами DogTag (опционально);
  • Интерфейс управления на основе Apache и Python;

FreeIPA также использует Samba для интеграции с Microsoft Active Directory и поддержки компьютеров на базе Microsoft Windows и Apple Macintosh.

ВАЖНО!
Сервис FreeIPA крайне чувствителен к правильным настройкам параметров операционной системы .
Даже при запуске сервиса в тестовом режиме следует придерживаться приведённых ниже правил.

  1. Сервис FreeIPA необходимо устанавливать на чистой ОС, на которой ранее не были установлены другие сервисы.
  2. Перед установкой убедиться, что установлены последние обновления безопасности, и обеспечить их установку.
  3. Работа FreeIPA в Astra Linux Special Edition осуществляется только при отключенном режиме AstraMode web-сервера Apache2.

Доменное имя

  • Доменное имя не должно быть именем первого уровня.
    Это значит, что нежелательно использовать имена доменов, состоящие из одного слова, например domain, testdomain, mydomian.
    Следует использовать имена уровней два и более, то есть имена вида:

В случаях, если при запуске службы FreeIPA используется имя домена, не имеющее IP-адреса (например, при запуске в тестовых целях),
запуск службы следует производить в режиме «для изолированной сети»
(опция -o инструмента astra-freeipa-server или пункт «Изолированная сеть (без шлюза/DNS)» в меню «Расширенные опции» графического инструмента fly-admin-freeipa-server).
Далее в примерах подразумевается запуск именно сервиса в режиме «для изолированной сети».
Проверить, имеет ли выбранный домен IP-адрес, можно из терминала командой nslookup или dig, например:

Сервер

Для нормальной работы сервиса FreeIPA следует:

    Выделить для использования в качестве сервера FreeIPA отдельный (возможно, виртуальный) компьютер, на котором должно быть установлено не менее 2ГБ ОЗУ и 3-х процессоров;

Назначить этому компьютеру фиксированный IP-адрес , который, впоследствии, не должен изменяться;
В настройках сетевого интерфейса указать этот IP-адрес в качестве первого DNS (см. Настройка сети в ОС Astra Linux);
В качестве второго DNS можно ничего не указывать или указать внешний DNS (в случае установки пакетов из внешнего репозитория);
После внесения изменений необходимо убедиться, что выполненные настройки DNS присутствуют в файле/etc/resolv.conf :

В /etc/hostname должно содержаться FQDN ( astraipa.astradomain.ad ).

Файл /etc/hosts не должен использоваться в качестве базы данных доменных имен других хостов. Так как запрос к этому файлу имеет приоритет перед обращением к DNS.

Чтобы не было путаницы, в нем рекомендуется только запись "самого себя", <ip адрес> + имя в формате FQDN + короткое имя. Данная запись добавляется автоматически во время установки FreeIPA сервера.

Для добавления имени хоста можно выполнить команду:

hostnamectl set-hostname astraipa.astradomain.ad

Разрешить загрузку модулей протокола IPv6, при необходимости запретив их работу (см. IPv6: включение и выключение, выключение с сохранением стека IPv6 )

  • Остальные настройки для быстрого запуска, инструменты Astra Linux выполняют самостоятельно.

Комплекты пакетов FreeIPA для сервера и клиентов входят в стандартный репозиторий Astra Linux Common Edition.

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

или инструмент командной строки

В ходе установки будет выдано несколько предупреждений, просто нажать "ОК".

После установки графический инструмент fly-admin-freeipa-server будет доступен через меню:

"Пуск" - "Панель управления" - "Сеть" - "Настройка FreeIPA server fly"

Установить необходимые для установки клиента пакеты можно с помощью графического менеджера пакетов или из командной строки.
Команды для установки из командной строки:

или инструмент командной строки

На предупреждения, возникающие при установке, также нажать "ОК"

После установки графический инструмент fly-admin-freeipa-client будет доступен через меню:

"Пуск" - "Панель управления" - "Сеть" - "Настройка FreeIPA clientfly"

Для дальнейшего описания настройки сервиса FreeIPA примем следующие допущения:

мы хотим создать собственный домен второго уровня с названием: astradomain.ad ;

имя будущего контроллера сервера:

имя в краткой форме: astraipa

имя в полной форме (FQDN): astraipa.astradomain.ad

При этом, в тестовом примере будет использован несуществующий домен astradomain.ad

Быстрый запуск сервиса FreeIPA с помощью графического инструмента fly-admin-freeipa-server

Графический инструмент fly-admin-freeipa-server запускается из командной строки командой:

После запуска на экране появляется форма для ввода данных, в которой нужно указать:

«Домен» - имя домена, в используемом примере это будет astradomain.ad

«Имя компьютера» - имя компьютера определяется автоматически, в используемом примере заменим его на astraipa

«Пароль» - пароль для администратора домена. Введённый пароль понадобится в дальнейшем для входа в web-интерфейс FreeIPA, и для работы с инструментами командной строки FreeIPA.

После ввода данных запуск сервиса осуществляется нажатием кнопки «Создать»

В процессе запуска в соответствующем окне отображаются выполняющиеся операции.

После успешного выполнения запуск на нижней рамке окна инструмента появится web-ссылка для перехода в web-интерфейс FreeIPA.
Теперь можно войти в web-интерфейс FreeIPA по указанному в последней строчке адресу, и продолжить настройку через него.
Первый вход в web-интерфейс и процедуры работы с ним описаны ниже.

Установка с использованием центра сертификации DogTag (только для Astra Linux Common Edition)


Для автоматической установки FreeIPA с одновременной установкой сервиса центра сертификации DogTag в интерфейсе графического инструмента fly-admin-freeipa-server нажмите кнопку "Показать расширенные опции" и отметьте пункт "Настроить центр сертификации":

Быстрый запуск сервиса FreeIPA с помощью инструмента командной строки astra-freeipa-server

При правильно выполненных предварительных настройках запуск сервиса FreeIPA с помощью инструмента командной строки astra-freeipa-server может быть осуществлён простой командой:

При этом инструмент должен сам определить все необходимые параметры.

При запуске инструмента также можно указать имя домена, имя компьютера и прочие параметры (подробнее см. подсказку astra-freeipa-server --help), например:

sudo astra-freeipa-server -d astradomain.ad -n astraipa -o

После ввода команды инструмент определит адрес компьютера, выведет на экран все исходные данные, и запросит подтверждение дальнейших действий:

compname= astraipa
domain= astradomain.ad
будет использован ip address = 192.168.32.97 или укажите ip адрес ключем -ip
продолжать ? (y\n)

Для подтверждения введите «y» и нажмите Enter.

После подтверждения инструмент попросит ввести и подтвердить пароль для администратора домена.

Введённый пароль понадобится в дальнейшем для входа в web-интерфейс FreeIPA, и для работы с инструментами командной строки FreeIPA.

После ввода пароля автоматически будет выполнен процесс инициализации входящих в FreeIPA подсистем.
Ход выполнения будет отображаться на экране.

Теперь можно войти в web-интерфейс FreeIPA по указанному в последней строчке адресу, и продолжить настройку через него.
Первый вход в web-интерфейс и процедуры работы с ним описаны ниже.

Установка с использованием центра сертификации DogTag (только для Astra Linux Common Edition)

Для автоматической установки FreeIPA с одновременной автоматической установкой сервиса центра сертификации DogTag используйте опцию --dogtag, например:

sudo astra-freeipa-server -d astradomain.ad -n astraipa -o --dogtag

После завершения процедур запуска для входа в web-интерфейс можно просто перейти по ссылке, предоставленной использованным инструментом.

нажать кнопку «Дополнительно»

в открывшемся окне нажать кнопку «Добавить исключение»

в открывшейся экранной форме нажать кнопку «Подтвердить исключение безопасности»

и на экране браузера откроется WEB/-интерфейс FreeIPA.

Для входа в web-интерфейс используйте имя admin, и пароль, ранее введённый при запуске системы. Также, теперь с помощью программы astra-freeipa-client, к созданному сервису можно подключать другие машины.

В случае, если при входе в web-интерфейс открывается пустая страница — внимательно проверьте, что для подключения к web-интерфейсу используются:

Для проверки состояния запущенных служб FreeIPA можно использовать инструмент командной строки ipactl:

Примерный вывод команды:

Для проверки ролей сервера можно использовать web-интерфейс FreeIPA (путь Закладка "FreeIPA" => Пункт "Топология" => Пункт "Роли сервера"), например:

При выходе из домена желательно очистить директорию, содержащую сертификаты старого домена. Для этого достаточно выполнить команду:

Это необходимо для того, чтобы при входе в новый домен, корневой сертификат старого домена не помешал установке нового.

Для Astra Linux Смоленск и РЕД ОС

Использование домена и клиента с разными ОС

Доменная и клиентская машины не обязательно должны иметь одинаковую операционную систему для корректной аутентификации по смарт-картам. Но тем не менее, если версии SSSD – разные, как у Astra Linux (SSSD 16.1.3) и РЕД ОС (SSSD 2.0.0), то на доменной машине должна быть установлена ОС с более новой версией SSSD.

В обратную же сторону настройка домена возможна.

Настройка сервера. Создание домена FreeIPA и пользователя

Для демонстрации настройки было использовано два стенда. Первый был использован в качестве сервера FreeIPA. Он был настроен с помощью следующей последовательности команд:

После настройки программы установки сервера FreeIPA отобразится ссылка на веб-интерфейс для управления доменом. Вам потребуется создать нового пользователя, для которого и будет настраиваться доступ по Рутокену.

Для этого перейдите на вкладку "Идентификация" → "Пользователи" → "Активные пользователи" и добавьте нового пользователя. В нашем случае был создан пользователь "user".


Настройка клиента. Подключение к домену

Для пользователей Astra Linux

Если в качестве клиента выступает Astra Linux Smolensk, то на нем должно быть установлено пятое обновление безопасности.

После добавления нового пользователя, переходим к настройке клиента. Настройка была осуществлена с помощью следующих команд:

После подключения настройщик должен написать, что обнаружен настроенный клиент в домене astradomain.ad.


Попробуем подключиться к созданному пользователю user:

Если после ввода пароля вам удалось аутентифицироваться как пользователь user, значит настройка прошла успешно.

Настройка аутентификации по Рутокену для клиента

Создание заявки на сертификат

Для упрощения настройки можно воспользоваться графической утилитой по работе с Рутокенами в линукс. Скачаем ее:

При первом запуске программа может запросить пароль администратора для получения обновлений. Загрузка обновлений может занять несколько минут.


После загрузки обновлений, программа предложит выбрать токен, который мы хотим использовать для локальной аутентификации. Если нужный Рутокен не появился в списке, то можно нажать на кнопку для обновления списка устройств:


Далее вводим PIN-код Рутокена:


На Рутокене отсутствует ключевая пара и сертификат выданный УЦ для аутентификации:

Генерация ключевой пары

Откроем список объектов на Рутокене:


В первую очередь, сгенерируем ключ. Для этого в окне просмотра объектов выберем опцию для генерации ключевой пары:


В окне выбора алгоритма ключа необходимо указать "RSA-2048"


Метку ключа можно оставить пустой:


Создание заявки на сертификат

После генерации ключевой пары, необходимо создать для неё заявку на сертификат. В списке объектов выберем закрытый ключ из ключевой пары, для которой хотим создать заявку на сертификат:


В открывшемся окне выберем опцию для создания заявки на сертификат:


Введём данные сертификата. В графе Общее имя необходимо указать имя пользователя, для которого мы создаем сертификат для аутентфиикации:


Далее нас попросят выбрать, создать ли самоподписанный сертификат или создать заявку на сертификат Выбираем "Нет":


Укажем путь, куда сохраним заявку на сертификат:


Созданную заявку копируем и отправляем на сервер. Распечатать ее можно с помощью команды:

Создание сертификата

Переходим к серверу, который получил нашу заявку.

Чтобы создать сертификат по данной заявке для данного пользователя, перейдем на вкладку "Идентификация" → "Пользователи" → "Активные пользователи" и выберем нашего пользователя.

На новой вкладке выбираем "Действия"→"Новый сертификат". В открывшееся окно вставляем нашу заявку.


В поле Идентификатор пользователя необходимо указать caIPAserviceCert


Выданный сертификат можно получить на этой же вкладке, переместившись чуть ниже до пункта с сертификатами.

Нажмем "Загрузить" и отправим сертификат пользователю.


Также пользователю потребуется корневой сертификат УЦ, его можно получить на вкладке "Аутентификация"→"Сертификаты".

Выбираем самый первый сертификат и переходим на вкладку "Действия"→ "Загрузить".


После этого полученный сертификат пользователя и УЦ отправляем клиенту.

Импорт сертификата на Рутокен

Повторно запускаем программу по работе с Рутокенами. Выбираем необходимый токен, вводим PIN-код. Открываем просмотр объектов. В окне просмотра объектов выберем закрытый ключ, для которого выдан сертификат:


В открывшемся окне выберем опцию импорта сертификата ключа


Укажем путь до сертификата:

При желании можно задать метку сертификата:

Финальная настройка на стороне клиента

Теперь, когда на Рутокене присутствует ключевая пара и сертификат клиента? можно приступить к финальной настройке. Для этого откроем в меню команд Рутокена выберем пункт Настройки аутентификации в домене FreeIPA.


Нам необходимо получить права суперпользователя, для проведения настройки. Поэтому вводит пароль суперпользователя:


В открывшемся окне укажем путь до корневого сертификата УЦ:


Настройка завершена. Проверим, что все установлено правильно. Для этого попробуем зайти под пользователем user.


Лампочка на Рутокене замигает и отобразится окно для ввода PIN-кода.

Если все прошло успешно, то можно попробовать осуществить аналогичную аутентификацию через greeter.

В инструкции разберем пример установки сервера FreeIPA (аналог Microsoft Active Directory, Samba DC) на Linux CentOS (также протестировано на Rocky Linux). В качестве клиентов будем использовать дистрибутивы на базе RPM (Red Hat, CentOS, . ) и deb (Debian, Ubuntu, . ).

Подготовка сервера

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

Время

Установим часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере используется московское время.

Затем устанавливаем и запускаем утилиту для синхронизации времени chrony.

yum install chrony

systemctl enable chronyd --now

Имя сервера

Для корректной работы сервера, необходимо, задать ему полное доменное имя (FQDN). Выполняем команду:

hostnamectl set-hostname ipa-server.dmosk.local

* где ipa-server.dmosk.local — имя сервера, которое будет использоваться.

Брандмауэр

Необходимо открыть несколько портов, которые используются службами FreeIPA:

firewall-cmd --permanent --add-port=53/ --add-port=/tcp --add-port=/ --add-port=123/udp --add-port=/tcp

SELinux

Отключаем SELinux командами:

Установка и запуск FreeIPA

Установка выполняется из репозитория. Команды немного отличаются в зависимости от версии CentOS.

а) для Rocky Linux / CentOS 8:

dnf install @idm:DL1

dnf install ipa-server

* первая команда установит модуль DL1 Stream-репозитория. Вторая — сам freeipa.

yum install ipa-server

Если мы хотим использовать наш сервер еще и как DNS, то устанавливаем:

yum install ipa-server-dns

После выполняем конфигурирование сервиса:

Отвечааем на первый вопрос, хотим ли мы использовать и сконфигурировать DNS-сервер BIND:

Do you want to configure integrated DNS (BIND)? [no]: yes

* в случае, если мы не хотим, чтобы сервер DNS был установлен вместе с сервером IPA, просто нажимаем Enter.

На остальные запросы можно ответить по умолчанию, нажав Enter и оставив подставленные значения. Если возникнут ошибки, решение посмотрите ниже в данной инструкции.

Когда система запросит пароль для Directory Manager, необходимо придумать и ввести его дважды:

Directory Manager password:
Password (confirm):

. будет создана учетная запись для подключения к LDAP.

Затем также нужно придумать и задать пароль для IPA admin:

IPA admin password:
Password (confirm):

. будет создана учетная запись IPA Administrator для первого пользователя FreeIPA с правами администратора.

Для настройки DNS на первый запрос, хотим ли мы настроить перенаправления, отвечаем да:

Do you want to configure DNS forwarders? [yes]:

Система предложит сначала использовать DNS-серверы из настроек сети (если они прописаны) — если нас это устроит, оставляем значение по умолчанию:

Do you want to configure these servers as DNS forwarders? [yes]:

. также можно добавить дополнительные серверы:

Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.8.8

Также оставляем значение по умолчанию для попытки найти обратные зоны:

Do you want to search for missing reverse zones? [yes]

После система выведет информацию о конфигурации и попросит ее подтвердить — вводим yes:

Continue to configure the system with these values? [no]: yes

Начнется процесс конфигурации. После его завершения мы увидим подсказку со следующими шагами:

. и так как порты мы уже настраивали, переходим ко второму шагу — проверим, что система может выдать билет:

. после вводим пароль администратора, который указывали при конфигурировании FreeIPA.

Проверяем, что билет получен:

Ответ должен быть, примерно, следующим:

Ticket cache: KEYRING:persistent:0:0
Default principal: admin@DMOSK.LOCAL

Valid starting Expires Service principal
23.07.2019 08:53:02 24.07.2019 08:52:55 krbtgt/DMOSK.LOCAL@DMOSK.LOCAL

* где DMOSK.LOCAL — домен в моей системе. В данном примере мы получили билет для пользователя admin.

Настройка и подключение клиента

Клиентские компьютеры должны быть настроены на использование DNS-сервера, который мы сконфигурировали на сервере FreeIPA во время его установки. В сетевых настройках указываем использовать наш сервер ipa для разрешения имен:

  1. Пример настройки сети в CentOS / Rocky Linux
  2. Настройка сети с помощью netplan (Debian, Ubuntu).
  3. В устаревающих системах на основе deb настройка выполняется в файле /etc/network/interfaces (опция dns-nameservers) или /etc/resolv.conf (опция nameserver).

Время

Для корректной работы и подключения необходимо проверить настройки времени.

В первую очередь, укажем часовой пояс:

timedatectl set-timezone Europe/Moscow

* командой timedatectl list-timezones можно посмотреть список всех часовых поясов.

Устанавливаем утилиту для синхронизации времени, разрешаем запуск демона и стартуем его.

а) если на системе Ubuntu / Debian:

apt-get install chrony

systemctl enable chrony

б) если на системе Rocky Linux / CentOS / Red Hat:

yum install chrony

systemctl enable chronyd --now

Подключение к домену

а) на компьютеры с Red Hat / CentOS:

yum install freeipa-client

б) на компьютеры с Debian / Ubuntu:

apt-get install freeipa-client

Для Debian 9 приходится использовать дополнительный репозиторий:

Обновляем список и устанавливаем:

apt-get install freeipa-client

Выполним конфигурирование клиента:

Система на основе данных из DNS попробует определить настройки и либо попросит ввести наш домен (если не сможет найти данные автоматически):

. либо отобразить настройки в консоли, например:

Discovery was successful!
Client hostname: freeipa-client.dmosk.local
Realm: DMOSK.LOCAL
DNS Domain: DMOSK.LOCAL
IPA Server: ipa-server.dmosk.local
BaseDN: dc=dmosk,dc=local

Если эти настройки верны, отвечаем положительно на запрос Continue to configure the system with these values?

Continue to configure the system with these values? [no]: yes

Система спросит, от какого пользователя производить настройку — вводим admin:

User authorized to enroll computers: admin

Password for admin@DMOSK.LOCAL:

Начнется процесс конфигурации — после его завершения:

.
Configured /etc/openldap/ldap.conf
NTP enabled
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config
Configuring DMOSK.LOCAL as NIS domain.
Client configuration complete.
The ipa-client-install command was successful

. сразу проверим, что клиент может получать билет от сервера:

. и вводим пароль от пользователя admin.

Проверяем, что билет получен:

Ответ должен быть, примерно, следующим:

Ticket cache: KEYRING:persistent:0:0
Default principal: admin@DMOSK.LOCAL

Valid starting Expires Service principal
25.07.2019 23:39:56 26.07.2019 23:39:52 krbtgt/DMOSK.LOCAL@DMOSK.LOCAL

Работа с учетными записями

Создадим пользователя. Для этого рассмотрим пример использования командной строки и веб-интерфейса.

Командная строка

Авторизуемся на FreeIPA:

Создаем нового пользователя командой:

ipa user-add dmosk --first=Дмитрий --last=Моск --password

* где dmosk — логин; first — имя пользователя; last — фамилия; password — ключ для запроса пароля.

. после ввода команды система запросит пароль для создаваемого пользователя — вводим его дважды.

Мы должны увидеть сводку по параметрам для созданного пользователя:

Добавлен пользователь «dmosk»
-----------------------------
Логин пользователя: dmosk
Имя: Дмитрий
Фамилия: Моск
Полное имя: Дмитрий Моск
Отображаемое имя: Дмитрий Моск
Инициалы: ДМ
Домашний каталог: /home/dmosk
GECOS: Дмитрий Моск
Оболочка входа: /bin/sh
Principal name: dmosk@DMOSK.LOCAL
Principal alias: dmosk@DMOSK.LOCAL
User password expiration: 20190725205853Z
Электронный адрес: dmosk@dmosk.local
UID: 1798800001
ID группы: 1798800001
Пароль: True
Member of groups: ipausers
Kerberos ключей доступно: True

Примет более полной команды для создания пользователя:

* в данном примере мы использовали дополнительные поля:

* более полный список атрибутов можно найти на странице с мануалом Fedora Project.

Веб-интерфейс

Откроется страница управления пользователями:

Управление пользователями в веб интерфейса FreeIPA

На панели справа (над списком пользователей) кликаем по Добавить:

Кнопка Добавить в веб-интерфейсе FreeIPA

В открывшемся окне заполняем поля для создания пользователя и нажимаем по Добавить:

Заполняем данные для создания пользователя

Проверка

На компьютере с клиентом вводим команду для проверки:

. и вводим пароль от созданной учетной записи:

Password for dmosk@DMOSK.LOCAL:

При вервом входе система попросит поменять пароль на новый:

Password expired. You must change it now.
Enter new password:
Enter it again:

Редактирование учетных записей

Редактирование выполняется командой:

ipa user-mod <имя записи> <опции>

Например, поменять пароль можно командой:

ipa user-mod username --password

* в данном примере будет запрошен новый пароль для учетной записи username.

Для удаления вводим:

ipa user-del <имя записи>

ipa user-del user_name

Подробная информация

Получить информацию мы можем о любой сущьности в LDAP с помощью командной строки.

ipa user-find --all

ipa user-find user_name --all

* первая команда вернет информацию по всем пользователям, вторая — по конкретному (в данном примере user_name).

ipa group-find --all

ipa group-find admins --all

* первая команда вернет информацию по всем группам, вторая — только для admins.

Примеры команд

Рассмотрим отдельно примеры работы с FreeIPA посредством командной строки.

Работа с группами

1. Создание группы безопасности:

* создаем группу безопасности managers.

2. Добавить пользователя в группу:

ipa group-add-member managers --users=user1,user2,user3

* добавим в группу managers пользователей user1, user2 и user3.

3. Переименовать группу:

ipa group-mod --rename=<новое имя> <старое имя>

ipa group-mod --rename=admins users

* в данном примере мы переименуем группу users в группу admins.

Работа с сертификатами

1. Выпустить сертификат для компьютера (выполняется на компьютере, который присоединен к freeipa):

ipa-getcert request -k /etc/pki/tls/certs/freeipa.key -f /etc/pki/tls/certs/freeipa.crt -r

* в данном примере будет сформирован запрос на получение сертификата и сохранен в каталог /etc/pki/tls/certs.

2. Посмотреть список запросов на сертификат с узла можно командой:

3. Удалить запрос можно командой:

ipa-getcert stop-tracking -i <идентификатор>

ipa-getcert stop-tracking -i openvpn

4. Обновить сертификат:

ipa-getcert resubmit --id="20210923072007"

* где 20210923072007 — идентификатор запроса, который можно посмотреть командой ipa-getcert list.

Дополнительные настройки

Рассмотрим отдельно некоторые настройки и возможности работы с FreeIPA.

SSH аутентификация через FreeIPA

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

Открываем конфигурационный файл для pam:

Добавим в конец одну строку:

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

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

Вывод клиента из домена

Если необходимо вывести клиентский компьютер из домена, вводим команду:

Система выполнит необходимые настройки самостоятельно:

Unenrolling client from IPA server
Removing Kerberos service principals from /etc/krb5.keytab
Disabling client Kerberos and LDAP configurations
Redundant SSSD configuration file /etc/sssd/sssd.conf was moved to /etc/sssd/sssd.conf.deleted
Restoring client configuration files
Unconfiguring the NIS domain.
nscd daemon is not installed, skip configuration
nslcd daemon is not installed, skip configuration
Systemwide CA database updated.
Client uninstall complete.
The original nsswitch.conf configuration has been restored.

И отправляем компьютер в перезагрузку:

You may need to restart services or reboot the machine.
Do you want to reboot the machine? [no]: yes

Возможные ошибки

Разберем некоторые ошибки, которые могут возникнут в процессе установки FreeIPA.

Ошибка появляется при попытке запустить команду ipa-server-install.

Читайте также: