Skip to content

Операционная система должна иметь возможность интеграции в домен FreeIPA, функционал должен включать ==поддержку групповых политик==. Реализация функционала должна быть обеспечена как консольными, так и графическими утилитами.


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

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

⁠Установка сервера FreeIPA

В качестве примера показана установка сервера FreeIPA со встроенным DNS сервером и доменом EXAMPLE.TEST в локальной сети 192.168.135.0/24.

Во избежание конфликтов с разворачиваемым tomcat необходимо отключить ahttpd, работающий на порту 8080, а также отключить HTTPS в Apache2:

bash
service ahttpd stop
a2dissite 000-default_https
a2disport https
service httpd2 condreload

Установить необходимые пакеты (если во время установки сервера не был выбран пункт сервер FreeIPA):

bash
apt-get install freeipa-server freeipa-server-dns

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

bash
hostnamectl set-hostname ipa.example.test

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

bash
ipa-server-install -U --hostname=$(hostname) -r EXAMPLE.TEST -n example.test -p 12345678 -a 12345678 --setup-dns --no-forwarders --no-reverse

или интерактивно:

bash
ipa-server-install

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

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

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

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

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

bash
kinit admin

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

bash
ipa dnsrecord-add example.test _ntp._udp --srv-priority=0 --srv-weight=100 --srv-port=123 --srv-target=ipa.example.test.

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

bash
ntpdate -q localhost
# server 127.0.0.1, stratum 3, offset 0.000018, delay 0.02568
# 27 Nov 10:27:00 ntpdate[29854]: adjust time server 127.0.0.1 offset 0.000018 sec

Веб-интерфейс доступен по адресу: https://ipa.example.test/ipa/ui/

Установка FreeIPA клиента и подключение к серверу

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

bash
apt-get install freeipa-client libsss_sudo krb5-kinit bind-utils libbind zip

Подключение к серверу в консоли

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

bash
hostnamectl set-hostname comp01.example.test

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

bash
nameserver 192.168.135.1

192.168.135.1 — IP-адрес FreeIPA сервера.

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

bash
interface_order='lo lo[0-9]* lo.* ens19'
search_domains=example.test

где ens19 — интерфейс, на котором доступен FreeIPA сервер, example.test — наш домен.

Обновить DNS адреса:

bash
resolvconf -u

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

bash
search example.test
nameserver 192.168.135.1

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

bash
ipa-client-install -U -p admin -w 12345678

или интерактивно:

bash
ipa-client-install

Если все настроено верно, скрипт должен выдать такое сообщение:

'''Discovery was successful!'''
Client hostname: comp02.example.test
Realm: EXAMPLE.TEST
DNS Domain: example.test
IPA Server: ipa.example.test
BaseDN: dc=example,dc=test
Continue to configure the system with these values? [no]:

Необходимо ответить yes, ввести имя пользователя, имеющего право вводить машины в домен, и его пароль.

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

bash
ipa-client-install -U --uninstall

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

bash
control sudo public

Подключение к серверу в ЦУС

В Центре управления системой, в разделе Пользователи, подраздел Аутентификация, необходимо выбрать пункт Домен FreeIPA, заполнить поля Домен и Имя компьютера, нажать кнопку Применить.

Групповые политики

https://www.altlinux.org/Групповые_политики/FreeIPA

В FreeIPA отсутствует концепция групповых политик (GPO). В AD групповые политики состоят из Group Policy Container (GPC), хранящегося в базе данных Active Directory, и Group Policy Template (GPT), который представляет собой набор файлов в каталоге SYSVOL на контроллере домена. Для реализации поддержки групповых политик на клиентах FreeIPA с использованием инструмента gpupdate необходимо создать сетевую шару Samba, которая будет использоваться для хранения и распространения GPO аналогично AD.

Контакты: bystrovno@basealt.ru