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

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

DNS

Клиентские компьютеры должны быть настроены на использование 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

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

Устанавливаем freeipa-client.

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

yum install freeipa-client

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

apt-get install freeipa-client

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

wget -qO - https://apt.numeezy.fr/numeezy.asc | apt-key add -

echo -e 'deb http://apt.hgb.fr jessie main' >> /etc/apt/sources.list

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

apt-get update

apt-get install freeipa-client

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

ipa-client-install --mkhomedir

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

DNS discovery failed to determine your DNS domain
Provide the domain name of your IPA server (ex: example.com): dmosk.local

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

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

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

kinit admin

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

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

klist

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

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:

kinit admin

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

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

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

ipa user-add dmosk --first=Дмитрий --last=Моск --cn="Моск Дмитрий" --displayname="Моск Дмитрий" --email=master@dmosk.ru --password

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

  • cn — полное имя.
  • displayname — отображаемое имя.
  • email — адрес электронной почты.

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

Открываем браузер и переходим по адресу имени сервера — в нашем примере, https://ipa-server.dmosk.local. Закрываем всплывающее окно с запросом пароля. В появившейся странице авторизации вводим логин admin и его пароль.

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

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

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

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

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

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

Проверка

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

kinit dmosk

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

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. Создание группы безопасности:

ipa group-add --desc='Group for managers departmen' managers

* создаем группу безопасности 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.

Если в нащей системе работает SELinux, попытка создать сертификат в другом каталоге закончится ошибкой The parent of location "/foo/bar/" could not be accessed due to insufficient permissions. Для решения проблемы, мы должны задать контекст безопасности cert_t:

semanage fcontext -a -t cert_t "/foo/bar(/.*)?"

* где /foo/bar — полный путь до каталога, в котором мы хотим разместить сертификаты.

И применяем политику:

restorecon -R -v /foo/bar

После этого наша команда ipa-getcert request должна отработать корректно.

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

ipa-getcert list

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

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

Например:

ipa-getcert stop-tracking -i openvpn

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

ipa-getcert resubmit -i 20210923072007

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

Можно обновить сертификат с обновлением параметров получения:

ipa-getcert resubmit -i 20210923072007 -k /etc/pki/tls/certs/freeipa_new.key

* в данном примере мы переопределим путь до ключа.

5. Получение сертификата для сервиса.

По умолчанию, сертификат создается для имени в соответствии с названием компьютера. Мы можем получить сертификат для сервиса с другим principal name и DNS name:

ipa-getcert request -r -k /etc/pki/tls/certs/mail.dmosk.ru.key -f /opt/nginx/conf/ssl/mail.dmosk.ru.crt -K HTTP/mail.dmosk.ru -D mail.dmosk.ru -N mail.dmosk.ru

* в данном примере мы получим сертификат для узла mail.dmosk.ru.

Чтобы команда сработала, необходимо, чтобы у нас был создан сервис с принципалом HTTP/mail.dmosk.ru, а также хост, с которого мы запрашиваем сертификат был добавлен в перечень узлов созданного сервиса. Все это можно сделать в веб-интерфейсе управления FreeIPA.

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

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

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

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

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

vi /etc/pam.d/common-session

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

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

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

Готово.

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

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

ipa-client-install --uninstall

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

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.

1. ipapython.admintool: ERROR    IPv6 stack is enabled in the kernel but there is no interface that has ::1 address assigned. Add ::1 address resolution to 'lo' interface. You might need to enable IPv6 on the interface 'lo' in sysctl.conf.

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

Причина: если в системе отключен IPv6 с помощью параметра в ядре net.ipv6.conf.all.disable_ipv6 или net.ipv6.conf.default.disable_ipv6, то команда выдаст ошибку, так как для локальной петли нам нужен IPv6. Если же IPv6 отключен через GRUB, то необходимо его включить.

Решение:

1. sysctl

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

vi /etc/sysctl.d/99-sysctl.conf

Добавляем строку:

net.ipv6.conf.lo.disable_ipv6 = 0

Применяем настройки:

sysctl -p /etc/sysctl.d/99-sysctl.conf

2. GRUB

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

vi /etc/default/grub

Находим строку опцию GRUB_CMDLINE_LINUX — в ее значении мы должны найти ipv6.disable=1:

GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap ipv6.disable=1 crashkernel=auto rhgb quiet"

Удаляем данную опцию из значения — в моем случае получилось:

GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap crashkernel=auto rhgb quiet"

Переконфигурируем grub:

grub2-mkconfig -o /boot/grub2/grub.cfg

Для применения, перезагрузим систему:

shutdown -r now

2. Invalid hostname 'XXX', must be fully-qualified

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

Причина: имя нашего сервера не является FQDN (полным доменным).

Решение: задаем полное имя с доменом командой:

hostnamectl set-hostname ipa-server.dmosk.local

 

  • в данном примере у сервера будет имя ipa-server в домене dmosk.local.

 

Источник: https://www.dmosk.ru/miniinstruktions.php?mini=freeipa-centos

  • FreeIPA client
  • 0 Els usuaris han Trobat Això Útil
Ha estat útil la resposta?

Articles Relacionats

1. Установка и использование FREEIPA на CentOS

Это технический шаблон заметки о CLI!  Данный опус является частью единого цикла...