Используемые термины: FreeIPA, CentOS.
В инструкции разберем пример установки сервера FreeIPA (аналог Microsoft Active Directory, Samba DC) на Linux CentOS. В качестве клиентов будем использовать дистрибутивы на базе 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.admins24.local
* где ipa-server.admins24.local — имя сервера, которое будет использоваться.
Необходимо открыть несколько портов, которые используются службами FreeIPA:
firewall-cmd —permanent —add-port=53/{tcp,udp} —add-port=80/tcp —add-port=88/{tcp,udp} —add-port=123/udp —add-port=389/tcp —add-port=443/tcp —add-port=464/{tcp,udp} —add-port=636/tcp
firewall-cmd —reload
Отключаем SELinux командами:
setenforce 0
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
Установка выполняется из репозитория. Команды немного отличаются в зависимости от версии CentOS.
а) для CentOS 8:
dnf install @idm:DL1
dnf install ipa-server
* первая команда установит модуль DL1 Stream-репозитория. Вторая — сам freeipa.
б) для CentOS 7:
yum install ipa-server
Если мы хотим использовать наш сервер еще и как DNS, то устанавливаем:
yum install ipa-server-dns
После выполняем конфигурирование сервиса:
ipa-server-install
* если система ругнется на IPv6, переходим к решению.
На первый вопрос, хотим ли мы использовать и сконфигурировать DNS-сервер BIND отвечаем утвердительно:
Do you want to configure integrated DNS (BIND)? [no]: yes
На остальные запросы можно ответить по умолчанию, нажав 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
Начнется процесс конфигурации. После его завершения мы увидим подсказку со следующими шагами:
Next steps: 1. You must make sure these network ports are open: TCP Ports: * 80, 443: HTTP/HTTPS * 389, 636: LDAP/LDAPS * 88, 464: kerberos UDP Ports: * 88, 464: kerberos * 123: ntp
2. You can now obtain a kerberos ticket using the command: ‘kinit admin’ This ticket will allow you to use the IPA tools (e.g., ipa user-add) and the web user interface.
… и так как порты мы уже настраивали, переходим ко второму шагу — проверим, что система может выдать билет:
kinit admin
… после вводим пароль администратора, который указывали при конфигурировании FreeIPA.
Проверяем, что билет получен:
Ответ должен быть, примерно, следующим:
Ticket cache: KEYRING:persistent:0:0Default principal: [email protected]
Valid starting Expires Service principal23.07.2019 08:53:02 24.07.2019 08:52:55 krbtgt/[email protected]
* где DMOSK.LOCAL — домен в моей системе. В данном примере мы получили билет для пользователя admin.
Клиентские компьютеры должны быть настроены на использование DNS-сервера, который мы сконфигурировали на сервере FreeIPA во время его установки. В сетевых настройках указываем использовать наш сервер ipa для разрешения имен и перезапускаем сетевую службу:
systemctl restart network || systemctl restart networking
Устанавливаем клиента.
а) на компьютеры с Red Hat / CentOS:
yum install freeipa-client
б) на компьютеры с Debian / Ubuntu:
apt-get install freeipa-client
Выполним конфигурирование клиента:
ipa-client-install —mkhomedir
… система на основе данных из DNS попробует определить настройки и отобразить их в консоли, например:
Discovery was successful!Client hostname: freeipa-client.admins24.localRealm: DMOSK.LOCALDNS Domain: DMOSK.LOCALIPA Server: ipa-server.admins24.localBaseDN: dc=admins24,dc=local
Если эти настройки верны, отвечаем положительно на запрос Continue to configure the system with these values?
Система спросит, от какого пользователя производить настройку — вводим admin:
User authorized to enroll computers: admin
… и пароль:
Password for [email protected]:
Начнется процесс конфигурации — после его завершения:
…Configured /etc/openldap/ldap.confNTP enabledConfigured /etc/ssh/ssh_configConfigured /etc/ssh/sshd_configConfiguring DMOSK.LOCAL as NIS domain.Client configuration complete.
… сразу проверим, что клиент может получать билет от сервера:
… и вводим пароль от пользователя admin.
Valid starting Expires Service principal25.07.2019 23:39:56 26.07.2019 23:39:52 krbtgt/[email protected]
Клиент настроен.
Создадим пользователя. Для этого рассмотрим пример использования командной строки и веб-интерфейса.
Авторизуемся на FreeIPA:
Создаем нового пользователя командой:
ipa user-add admins24 —first=Дмитрий —last=Моск —password
* где admins24 — логин; first — имя пользователя; last — фамилия; password — ключ для запроса пароля.
… после ввода команды система запросит пароль для создаваемого пользователя — вводим его дважды.
Мы должны увидеть сводку по параметрам для созданного пользователя:
Добавлен пользователь «admins24»—————————— Логин пользователя: admins24 Имя: Дмитрий Фамилия: Моск Полное имя: Дмитрий Моск Отображаемое имя: Дмитрий Моск Инициалы: ДМ Домашний каталог: /home/admins24 GECOS: Дмитрий Моск Оболочка входа: /bin/sh Principal name: [email protected] Principal alias: [email protected] User password expiration: 20190725205853Z Электронный адрес: [email protected] UID: 1798800001 ID группы: 1798800001 Пароль: True Member of groups: ipausers Kerberos ключей доступно: True
Примет более полной команды для создания пользователя:
ipa user-add admins24 —first=Дмитрий —last=Моск —cn=»Моск Дмитрий» —displayname=»Моск Дмитрий» —[email protected] —password
* в данном примере мы использовали дополнительные поля:
* более полный список атрибутов можно найти на странице с мануалом Fedora Project.
Открываем браузер и переходим по адресу имени сервера — в нашем примере, https://ipa-server.admins24.local. Закрываем всплывающее окно с запросом пароля. В появившейся странице авторизации вводим логин admin и его пароль.
Откроется страница управления пользователями:
На панели справа (над списком пользователей) кликаем по Добавить:
В открывшемся окне заполняем поля для создания пользователя и нажимаем по Добавить:
На компьютере с клиентом вводим команду для проверки:
kinit admins24
… и вводим пароль от созданной учетной записи:
При вервом входе система попросит поменять пароль на новый:
Password expired. You must change it now.Enter new password: Enter it again:
По умолчанию, клиент конфигурируется на возможность входа по SSH с использованием пользователей из FreeIPA. Внесем некоторые изменения для удобства.
Открываем конфигурационный файл для pam:
vi /etc/pam.d/common-session
Добавим в конец одну строку:
…session required pam_mkhomedir.so skel=/etc/skel umask=0022
* данная настройка укажет на необходимость автоматического создания домашней директории для пользователя.
Готово.
Разберем некоторые ошибки, которые могут возникнут в процессе установки FreeIPA.
Ошибка появляется при попытке запустить команду 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
Появляется при запуске команды ipa-server-install.
Причина: имя нашего сервера не является FQDN (полным доменным).
Решение: задаем полное имя с доменом командой:
* в данном примере у сервера будет имя ipa-server в домене admins24.local.
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies