Доменная инфраструктура на базе FreeIPA

https://docs.altlinux.org/ru-RU/domain/10.2/html/freeipa/index.html

 

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

Часть I. Разворачивание FreeIPA

Глава 1. Подготовка системы к установке сервера FreeIPA

1.1. Системные требования к серверу FreeIPA

Сервер FreeIPA следует устанавливать в чистой системе, в которой отсутствуют какие-либо пользовательские настройки служб: DNS, Kerberos, Apache и Directory Server.
FreeIPA при настройке домена перезаписывает системные файлы. FreeIPA создает резервные копии исходных системных файлов в /var/lib/ipa/sysrestore/. При удалении сервера FreeIPA, эти файлы восстанавливаются.

1.1.1. RAM

Для установки с CA требуется минимально 1,2 ГБ RAM. Для демонстрационной/тестовой системы рекомендуется 2 ГБ. Типичные требования к оперативной памяти:
  • для 10 000 пользователей и 100 групп: не менее 4 ГБ RAM и 4 ГБ Swap;
  • для 100 000 пользователей и 50 000 групп: не менее 16 ГБ RAM и 4 ГБ Swap.

1.1.2. DNS

Без правильно настроенной конфигурации DNS не будут работать должным образом Kerberos и SSL.

Важно

Домен DNS не может быть изменен после установки.

Установщик FreeIPA довольно требователен к настройке DNS. Установщик выполняет следующие проверки:

  • имя узла не может быть localhost или localhost6;
  • имя узла должно быть полным (например, ipa.example.test);
  • имя узла должно быть разрешимым;
  • обратный адрес должен совпадать с именем хоста.
Не следует использовать существующий домен, если вы не являетесь владельцем домена. Рекомендуется использовать зарезервированный домен верхнего уровня RFC2606 (https://tools.ietf.org/html/rfc2606) для частных тестовых установок, например, ipa.test.

1.1.3. IPv6

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

Примечание

IPv6 не обязательно должен быть включен в сети.

1.5. Требования к портам

Таблица 1.1. Порты FreeIPA

Служба
Порт
Протокол
HTTP/HTTPS
80, 443
TCP
LDAP/LDAPS
389, 636
TCP
Kerberos
88, 464
TCP и UDP
DNS
53
TCP и UDP (опционально)

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

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

# hostnamectl set-hostname ipa.example.test

Примечание

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

Примечание

IP-адрес сервера не должен изменяться.

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

# systemctl stop ahttpd # a2dissite 000-default_https # a2disport https # systemctl condreload httpd2

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

# apt-get install haveged # systemctl enable --now haveged

1.7. Установка пакетов

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

  • для установки FreeIPA без интегрированного DNS-сервера:

    # apt-get install freeipa-server
  • для установки FreeIPA с интегрированным DNS-сервером:

    # apt-get install freeipa-server-dns
  • для установки FreeIPA с отношениями доверия с Active Directory:

    # apt-get install freeipa-server-trust-ad

1.8. Параметры команд установки FreeIPA

Команды ipa-server-installipa-replica-installipa-dns-install и ipa-ca-install имеют множество опций, которые можно использовать для предоставления дополнительной информации при интерактивной установке сервера. Их также можно использовать в скриптах. Ниже описаны некоторые самые распространённые опции. Для получения более подробной информации следует обратиться к man страницам ipa-server-install(1)ipa-replica-install(1)ipa-dns-install(1) и ipa-ca-install(1).

Таблица 1.2. Основные опции для ipa-server-install и ipa-replica-install

Опция
Описание
-d, —debug
Включить отладку
-U, —unattended
Включает сеанс автоматической (пакетной) установки, который не запрашивает ввод данных пользователем
—hostname=<HOSTNAME>
Полное доменное имя (FQDN) сервера FreeIPA (например, server.ipa.example.test). Допускаются только цифры, строчные буквы и дефисы (-).
—ip-address=<IP_ADDRESS>
Указывает IP-адрес сервера. Эта опция принимает только IP-адреса, связанные с локальным интерфейсом. Опцию можно использовать несколько раз.
—dirsrv-config-file=<LDIF_file_name>
Путь к файлу LDIF, используемому для изменения конфигурации экземпляра сервера каталогов.
-n <DOMAIN_NAME>, —domain=<DOMAIN_NAME>
Имя домена сервера LDAP для использования в качестве домена FreeIPA.
-p <directory_manager_password>, —ds-password=<directory_manager_password>
Пароль суперпользователя cn=Directory Manager для службы LDAP.
-a <ipa_admin_password>, —admin-password=<ipa_admin_password>
Пароль для учетной записи администратора FreeIPA (admin) для аутентификации в области Kerberos. Для ipa-replica-install вместо этой опции используется параметр -w.
-r <KERBEROS_REALM_NAME>, —realm=<KERBEROS_REALM_NAME>
Имя области Kerberos, создаваемой для домена FreeIPA, в верхнем регистре, например, EXAMPLE.TEST. Для ipa-replica-install эта опция указывает имя области Kerberos существующего развертывания FreeIPA.
—setup-dns
Указывает сценарию установки настроить службу DNS в домене FreeIPA.
—setup-ca
Установить и настроить CA на этой реплике. Если CA не настроен, операции с сертификатами перенаправляются на другую реплику с установленным CA. Для ipa-server-install CA устанавливается по умолчанию, и эту опцию не нужно указывать.

Таблица 1.3. Опции CA для ipa-ca-install и ipa-server-install

Опция
Описание
—ca-subject=<SUBJECT>
Задает различающееся имя субъекта сертификата CA (по умолчанию: CN=Certificate Authority,O=<REALM_NAME>). Относительные отличительные имена (RDN) располагаются в порядке LDAP, начиная с наиболее конкретного RDN.
—subject-base=<SUBJECT>
Указывает базу субъекта для сертификатов, выданных FreeIPA (по умолчанию O=<REALM_NAME>). Относительные отличительные имена (RDN) располагаются в порядке LDAP, начиная с наиболее конкретного RDN.
—external-ca
Создает запрос на подпись сертификата, который должен быть подписан внешним центром сертификации.
—external-ca-type={generic,ms-cs}
Тип внешнего СА
—ca-signing-algorithm={SHA1withRSA,SHA256withRSA,SHA384withRSA,SHA512withRSA}
Определяет алгоритм подписи сертификата CA FreeIPA. Значение по умолчанию SHA256withRSA. Этот параметр следует использовать с параметром --external-ca, если внешний CA не поддерживает алгоритм подписи по умолчанию.

Таблица 1.4. Опции DNS (доступны для ipa-dns-install, ipa-server-install и ipa-replica-install если используется опция —setup-dns)

Опция
Описание
—allow-zone-overlap
Создать зону DNS, даже если она уже существует.
—forwarder=<FORWARDERS>
Указывает сервер пересылки DNS для использования со службой DNS. Чтобы указать более одного сервера пересылки, можно использовать этот параметр несколько раз.
—no-forwarders
Использует корневые серверы со службой DNS вместо серверов пересылки.
—auto-forwarders
Использовать серверы пересылки DNS, указанные в /etc/resolv.conf.
—forward-policy={only,first}
Политика пересылки DNS для глобальных серверов пересылки.
—reverse-zone=<REVERSE_ZONE>
Указывает обратную зону DNS. Этот параметр можно использовать несколько раз.
—no-reverse
Не создает обратную зону DNS при настройке домена DNS. Если обратная зона DNS уже настроена, используется эта существующая обратная зона DNS.
Если этот параметр не используется, значение по умолчанию равно true. Это указывает сценарию установки настроить обратный DNS.
—auto-reverse
Создать необходимые обратные зоны.
—no-dnssec-validation
Отключить проверку DNSSEC.

Таблица 1.5. Опции конфигурации NTP для ipa-server-install, ipa-replica-install и ipa-client-install

Опция
Описание
—ntp-server
Позволяет указать один NTP-сервер. Можно использовать несколько раз, чтобы указать несколько серверов.
—ntp-pool
Позволяет указать пул из нескольких серверов NTP, разрешенных как одно имя хоста.
-N, —no-ntp
Не настраивать и не запускать chronyd.

Глава 2. Установка FreeIPA с интегрированным DNS, с интегрированным CA в качестве корневого CA

Преимущества установки сервера FreeIPA со встроенным DNS:
  • можно автоматизировать большую часть обслуживания и управления записями DNS, используя инструменты FreeIPA. Например, записи DNS SRV создаются во время установки, а затем автоматически обновляются;
  • можно иметь стабильное соединение с остальной частью Интернета, настроив, во время установки сервера FreeIPA, глобальные серверы пересылки. Глобальные серверы пересылки также полезны для доверительных отношений с Active Directory;
  • можно настроить обратную зону DNS, чтобы электронные письма из домена FreeIPA не считались спамом почтовыми серверами за пределами домена FreeIPA.

Ограничения установки сервера FreeIPA со встроенным DNS:

  • FreeIPA DNS не предназначен для использования в качестве DNS-сервера общего назначения. Некоторые расширенные функции DNS не поддерживаются.

Примечание

Если в команде ipa-server-install в конфигурации по умолчанию, не указаны CA параметры, например, --external-ca или --ca-less, сервер FreeIPA устанавливается с интегрированным CA.

2.1. Интерактивная установка

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

# ipa-server-install

На первый вопрос, нужно ли сконфигурировать DNS-сервер BIND ответить утвердительно:

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

Примечание

Чтобы принять значение по умолчанию, необходимо нажать Enter.

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

Server host name [ipa.example.test]:
Please confirm the domain name [example.test]:
Please provide a realm name [EXAMPLE.TEST]:

Важно

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

Задать пароль для Directory Manager (cn=Directory Manager):

Directory Manager password:
Password (confirm):

Предупреждение

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

Задать пароль для администратора FreeIPA (будет создана учетная запись admin с правами администратора):

IPA admin password:
Password (confirm):

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

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

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

Following DNS servers are configured in /etc/resolv.conf: 127.0.0.1
Do you want to configure these servers as DNS forwarders? [yes]:

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

All detected DNS servers were added. You can enter additional addresses now:
Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.8.8
DNS forwarder 8.8.8.8 added. You may add another.
Enter an IP address for a DNS forwarder, or press Enter to skip:
DNS forwarders: 127.0.0.1, 8.8.8.8
Checking DNS forwarders, please wait ...

Примечание

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

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

Do you want to search for missing reverse zones? [yes]
Checking DNS domain 0.168.192.in-addr.arpa., please wait ...
Do you want to create reverse zone for IP 192.168.0.162 [yes]: yes
Please specify the reverse zone name [0.168.192.in-addr.arpa.]:
Checking DNS domain 0.168.192.in-addr.arpa., please wait ...
Using reverse zone(s) 0.168.192.in-addr.arpa.

Примечание

Использование FreeIPA для управления обратными зонами не является обязательным. Для этой цели можно использовать внешнюю службу DNS.

Указать имя NetBIOS:

NetBIOS domain name [EXAMPLE]:

Указать, если это необходимо, NTP-сервер или пул серверов:

Do you want to configure OPENNTPD with NTP server or pool address? [no]:

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

The IPA Master Server will be configured with:
Hostname:       ipa.example.test
IP address(es): 192.168.0.113
Domain name:    example.test
Realm name:     EXAMPLE.TEST

The CA will be configured with:
Subject DN:   CN=Certificate Authority,O=EXAMPLE.TEST
Subject base: O=EXAMPLE.TEST
Chaining:     self-signed

BIND DNS server will be configured to serve IPA domain with:
Forwarders:       8.8.8.8
Forward policy:   only
Reverse zone(s):  0.168.192.in-addr.arpa.

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

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

==============================================================================
Setup complete

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
          * 53: bind
        UDP Ports:
          * 88, 464: kerberos
          * 53: bind
          * 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.

Be sure to back up the CA certificates stored in /root/cacert.p12
These files are required to create replicas. The password for these
files is the Directory Manager password
The ipa-server-install command was successful

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

Примечание

Скрипт установки ipa-server-install создает файл журнала /var/log/ipaserver-install.log, который может помочь определить проблему если установка завершилась ошибкой.

Пример команды установки сервера FreeIPA в пакетном режиме:

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

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

  • -r REALM_NAME--realm=REALM_NAME — имя области Kerberos для сервера FreeIPA;
  • -n DOMAIN_NAME--domain=DOMAIN_NAME — доменное имя;
  • -p DM_PASSWORD--ds-password=DM_PASSWORD — пароль, который будет использоваться сервером каталогов для пользователя Менеджера каталогов (DM);
  • -a ADMIN_PASSWORD,--admin-password=ADMIN_PASSWORD — пароль пользователя admin, администратора FreeIPA;
  • -U,--unattended — позволить процессу установки выбрать параметры по умолчанию, не запрашивая у пользователя информацию;
  • --hostname=HOST_NAME — полное DNS-имя этого сервера.

Предупреждение

Пароли должны быть не менее 8 символов. Если пароль содержит специальные символы, следует заключить его в одинарные кавычки.

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

  • --setup-dns — создать зону DNS, если она еще не существует, и настроить DNS-сервер;
  • --forwarder или --no-forwarders — в зависимости от того, нужно ли настроить серверы пересылки DNS или нет;
  • --auto-reverse или --no-reverse — в зависимости от того, нужно ли настроить автоматическое обнаружение обратных зон DNS, которые должны быть созданы в FreeIPA DNS, или отключить автоматическое определение обратных зон;
  • --allow-zone-overlap — создать зону DNS, даже если она уже существует. Если имя домена уже где-то используется, установка сервера FreeIPA может завершиться с ошибкой, этот параметр позволяет игнорировать эту ошибку;
  • --no-dnssec-validation — отключить DNSSEC. Если в дальнейшем планируется настраивать доверительные отношения с Active Directory и настраивать сервер пересылки DNS, то DNSSEC необходимо выключить. Иначе сервер DNS от FreeIPA будет ожидать защищенного ответа от DNS Active Directory.

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

# ipa-server-install --help

Глава 3. Установка сервера FreeIPA в режиме CA-less

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

Сертификаты, необходимые для установки сервера FreeIPA без центра сертификации (CA):

  • сертификат LDAP-сервера и закрытый ключ:

    • --dirsrv-cert-file для указания сертификата и файлов закрытого ключа сервера LDAP;
    • --dirsrv-pin для указания пароля доступа к закрытому ключу;
  • сертификат веб-сервера Apache и закрытый ключ:

    • --http-cert-file для указания сертификата и файлов закрытого ключа сервера Apache;
    • --http-pin для указания пароля доступа к закрытому ключу;
  • полная цепочка сертификатов CA, выдавших сертификаты серверов LDAP и Apache:

    • --dirsrv-cert-file и --http-cert-file для файлов сертификатов с полной цепочкой сертификатов ЦС или ее частью;
  • файлы сертификатов для полной цепочки сертификатов CA:

    • --ca-cert-file для файла или файлов, содержащих сертификат центра сертификации, который выдал сертификаты LDAP, Apache Server и Kerberos KDC;
  • сертификат PKINIT центра распространения ключей Kerberos (KDC) и закрытый ключ (опционально):

    • --pkinit-cert-file для SSL-сертификата Kerberos KDC и закрытого ключа;
    • --pkinit-pin для пароля доступа к закрытому ключу Kerberos KDC;
    • --no-pkinit — отключить шаги настройки pkinit. Если не предоставить сертификат PKINIT, ipa-server-install настроит сервер FreeIPA с локальным KDC с самоподписанным сертификатом.
Файлы, предоставленные с помощью --dirsrv-cert-file и --http-cert-file, в сочетании с файлом, предоставленным с помощью --ca-cert-file должны содержать полную цепочку сертификатов CA, выдавших сертификаты сервера LDAP и Apache.

⁠3.1. Подготовка сертификатов для сервера FreeIPA

Предупреждение

Перед генерацией сертификатов необходимо убедиться, что следующая команда возвращает полное доменное имя (FQDN) сервера FreeIPA:

# echo $HOSTNAME ipa.example.test

Создать каталог для сертификатов:

# mkdir ~/test_ca

Создать файл password.txt с паролем к закрытому ключу (длина пароля должна быть не меньше 8 символов):

# echo "SECret.123" > ~/test_ca/password.txt

Создать базу данных NSS:

# certutil -d ~/test_ca -N -f ~/test_ca/password.txt

Создать noise файл, заполненный случайными числами:

# head -c20 /dev/random > ~/test_ca/noise.txt

Выполнить экспорт переменной CERT_SERIAL:

# export CERT_SERIAL=1

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

# SKID="0x`openssl rand -hex 20`" # echo $SKID 0xfa012b30b9407b0750b786ff5ed9f49ce3998622 # certutil -d ~/test_ca -S -n "CA" -s "CN=Certificate Authority" -x -t CT,,C -1 -2 -5 -m $CERT_SERIAL -v 120 -z ~/test_ca/noise.txt -f ~/test_ca/password.txt --extSKID

В ответ на запросы команды дать следующие ответы (на запрос «Enter value for the key identifier fields», следует ввести вывод команды echo $SKID):

  0 - Digital Signature
  1 - Non-repudiation
  5 - Cert signing key
  9 - done
  Is this a critical extension [y/N]? y
  Is this a CA certificate [y/N]?  y
  Enter the path length constraint, enter to skip [<0 for unlimited path] 0
  Is this a critical extension [y/N]? y
  Enter value for the key identifier fields,enter to omit: 0xfa012b30b9407b0750b786ff5ed9f49ce3998622
  Is this a critical extension [y/N]? n
  5 - SSL CA
  6 - S/MIME CA
  7 - Object Signing CA
  9 - done
  Is this a critical extension [y/N]? n

Создать noise файл, заполненный случайными числами:

# head -c20 /dev/random > ~/test_ca/noise.txt

Создать запрос на сертификат (на запрос «Enter value for the key identifier fields», следует ввести вывод команды echo $SKID):

# SKID="0x`openssl rand -hex 20`" # echo $SKID 0xb17caf72b46288bcc9c887c89894dc917e06f724 # certutil -d ~/test_ca -R -s CN=$HOSTNAME,O=IPA -o /tmp/servercert.req -k rsa -g 2048 -z ~/test_ca/noise.txt -f ~/test_ca/password.txt -a --extSKID Generating key. This may take a few moments... Adding Subject Key ID extension. Enter value for the key identifier fields,enter to omit: 0xb17caf72b46288bcc9c887c89894dc917e06f724 Is this a critical extension [y/N]? n

Подписать запрос на сертификат:

# export CERT_SERIAL=$(($CERT_SERIAL + 1)) # certutil -d ~/test_ca -C -c "CA" -i /tmp/servercert.req -o /tmp/servercert.pem -m $CERT_SERIAL -v 120 -f ~/test_ca/password.txt -1 -5 -a

В ответ на запросы команды дать следующие ответы:

  2 - Key encipherment
  9 - done
  Is this a critical extension [y/N]? n
  1 - SSL Server
  9 - done
  Is this a critical extension [y/N]? n

Примечание

Можно также создать отдельные сертификаты для серверов HTTP и Directory.

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

Импортировать полученный сертификат (на запрос команды, следует ввести пароль к закрытому ключу):

# certutil -d ~/test_ca -A -i /tmp/servercert.pem -n Server-Cert -a -t ,, Enter Password or Pin for "NSS Certificate DB":

Экспортировать сертификат в PKCS#12:

# pk12util -o ~/test_ca/servercert.p12 -n Server-Cert -d ~/test_ca -k ~/test_ca/password.txt -w ~/test_ca/password.txt pk12util: PKCS12 EXPORT SUCCESSFUL

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

# certutil -d ~/test_ca -L -n "CA" -a > ~/test_ca/cacert.pem

3.3. Установка CA-less IPA

Установить пароль к закрытому ключу в значение переменной PSWD:

# export PSWD=$(cat ~/test_ca/password.txt)

Установить CA-less IPA:

# ipa-server-install \ --http-cert-file ~/test_ca/servercert.p12 \ --http-pin $PSWD \ --dirsrv-cert-file ~/test_ca/servercert.p12 \ --dirsrv-pin $PSWD \ --ca-cert-file ~/test_ca/cacert.pem \ --no-pkinit The log file for this installation can be found in /var/log/ipaserver-install.log ============================================================================== This program will set up the IPA Server. Version 4.9.11 This includes: * Configure the NTP client (CHRONY) * Create and configure an instance of Directory Server * Create and configure a Kerberos Key Distribution Center (KDC) * Configure Apache (httpd) * Configure SID generation To accept the default shown in brackets, press the Enter key.

На первый вопрос, нужно ли сконфигурировать DNS-сервер BIND ответить утвердительно:

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

Примечание

Чтобы принять значение по умолчанию, необходимо нажать Enter.

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

Server host name [ipa.example.test]:
Please confirm the domain name [example.test]:
Please provide a realm name [EXAMPLE.TEST]:

Важно

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

Задать пароль для Directory Manager (cn=Directory Manager):

Directory Manager password:
Password (confirm):

Задать пароль для администратора FreeIPA (будет создана учетная запись admin с правами администратора):

IPA admin password:
Password (confirm):

Предупреждение

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

Для настройки 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

Примечание

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

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

Do you want to search for missing reverse zones? [yes]
Checking DNS domain 0.168.192.in-addr.arpa., please wait ...
Do you want to create reverse zone for IP 192.168.0.162 [yes]: yes
Please specify the reverse zone name [0.168.192.in-addr.arpa.]:
Checking DNS domain 0.168.192.in-addr.arpa., please wait ...
Using reverse zone(s) 0.168.192.in-addr.arpa.

Примечание

Использование FreeIPA для управления обратными зонами не является обязательным. Для этой цели можно использовать внешнюю службу DNS.

Указать имя NetBIOS:

NetBIOS domain name [EXAMPLE]:

Указать, если это необходимо, NTP-сервер или пул серверов:

Do you want to configure OPENNTPD with NTP server or pool address? [no]:

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

The IPA Master Server will be configured with:
Hostname:       ipa.example.test
IP address(es): 192.168.0.113
Domain name:    example.test
Realm name:     EXAMPLE.TEST

BIND DNS server will be configured to serve IPA domain with:
Forwarders:       8.8.8.8
Forward policy:   only
Reverse zone(s):  0.168.192.in-addr.arpa.

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

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

==============================================================================
Setup complete

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
          * 53: bind
        UDP Ports:
          * 88, 464: kerberos
          * 53: bind
          * 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.

The ipa-server-install command was successful

Глава 4. Завершение установки

После завершения сценария установки следует обновить записи DNS следующим образом:

  • добавить делегирование DNS из родительского домена в домен DNS FreeIPA. Например, если DNS-домен FreeIPA — ipa.example.test, добавить запись сервера имен (NS) в родительский домен example.test;
  • добавить запись службы _ntp._udp (SRV) для сервера времени в DNS (наличие записи SRV для сервера времени только что установленного сервера FreeIPA в DNS гарантирует, что будущие установки реплик и клиентов будут автоматически настроены для синхронизации с сервером времени, используемым этим первичным сервером FreeIPA):

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

Убедиться, что сервер FreeIPA работает:

$ kinit admin Password for admin@EXAMPLE.TEST: $ klist Ticket cache: KEYRING:persistent:0:0 Default principal: admin@EXAMPLE.TEST Valid starting Expires Service principal 29.08.2023 16:12:36 30.08.2023 15:51:19 krbtgt/EXAMPLE.TEST@EXAMPLE.TEST

Проверить статус подсистем FreeIPA:

# ipactl status Directory Service: RUNNING krb5kdc Service: RUNNING kadmin Service: RUNNING named Service: RUNNING httpd Service: RUNNING ipa-custodia Service: RUNNING pki-tomcatd Service: RUNNING ipa-otpd Service: RUNNING ipa-dnskeysyncd Service: RUNNING ipa: INFO: The ipactl command was successful
Веб-интерфейс FreeIPA будет доступен по адресу https://<FQDN>, например, https://ipa.example.test:

Глава 5. Отладочная информация

При установке сервера FreeIPA отладочная информация добавляется в следующие файлы журнала:
  • /var/log/ipaserver-install.log
  • /var/log/httpd2/error_log
  • /var/log/dirsrv/slapd-INSTANCE-NAME/access
  • /var/log/dirsrv/slapd-INSTANCE-NAME/errors

При установке CA отладочную информация также можно просмотреть в:

  • /var/log/pki/pki-ca-spawn.$TIME_OF_INSTALLATION.log — общие вопросы, для процесса установки pkispawn;
  • journalctl -u pki-tomcatd@pki-tomcat
  • /var/log/pki/pki-tomcat/ca/debug.$DATE.log
  • /var/log/pki/pki-tomcat/ca/signedAudit/ca_audit
  • /var/log/pki/pki-tomcat/ca/system/var/log/pki/pki-tomcat/ca/transactions/var/log/pki/pki-tomcat/catalina.$DATE.log

5.1. Удаление неудачной установки сервера FreeIPA

В случае сбоя установки сервера FreeIPA некоторые файлы конфигурации могут быть уже сконфигурированы. В этом случае дополнительные попытки установить сервер FreeIPA завершатся неудачно, и сценарий установки сообщит, что FreeIPA уже настроен. Чтобы решить эту проблему следует удалить частичную конфигурацию сервера FreeIPA и повторить процесс установки.

Удалить частичную конфигурацию сервера FreeIPA:

# ipa-server-install --uninstall

Примечание

Если ошибки при установке сервера FreeIPA остаются, следует переустановить ОС. Одним из требований для установки сервера FreeIPA является чистая система без каких-либо настроек.

Глава 6. Удаление сервера FreeIPA

Процедура удаления сервера FreeIPA ipabackup.example.test:

  1. Если в среде FreeIPA используется интегрированный DNS, необходимо убедиться, что ipabackup.example.test не является единственным DNS-сервером в состоянии enabled:

    # ipa server-role-find --role 'DNS server' ---------------------------------------- установлено соответствие 2 ролей сервера ---------------------------------------- Имя сервера: ipa.example.test Имя роли: DNS server Состояние роли: enabled Имя сервера: ipabackup.example.test Имя роли: DNS server Состояние роли: enabled --------------------------------- Количество возвращённых записей 2 ---------------------------------
    Если ipabackup.example.test — единственный DNS-сервер в топологии, следует добавить роль DNS-сервера на другой сервер FreeIPA (см. man ipa-dns-install(1)).
  2. Если в среде используется интегрированный CA:

    • убедиться, что ipabackup.example.test не является единственным CA в состоянии enabled:

      # ipa server-role-find --role 'CA server' ---------------------------------------- установлено соответствие 2 ролей сервера ---------------------------------------- Имя сервера: ipa.example.test Имя роли: CA server Состояние роли: enabled Имя сервера: ipabackup.example.test Имя роли: CA server Состояние роли: enabled --------------------------------- Количество возвращённых записей 2 ---------------------------------
      Если ipabackup.example.test — единственный CA в топологии, следует добавить роль CA-сервера на другой сервер FreeIPA (см. man ipa-ca-install(1)).
    • если в среде были активированы хранилища (enabled vaults), убедиться что ipabackup.example.test не является единственным включённым сервером Key Recovery Authority (KRA):

      # ipa server-role-find --role 'KRA server' ---------------------------------------- установлено соответствие 2 ролей сервера ---------------------------------------- Имя сервера: ipa.example.test Имя роли: KRA server Состояние роли: absent Имя сервера: ipabackup.example.test Имя роли: KRA server Состояние роли: absent --------------------------------- Количество возвращённых записей 2 ---------------------------------
      Если ipabackup.example.test — единственный сервер KRA в топологии, следует добавить роль сервера KRA на другой сервер FreeIPA (см. man ipa-kra-install(1)).
    • убедиться, что ipabackup.example.test не является сервером обновления CA:

      # ipa config-show | grep 'CA renewal'
      Если ipabackup.example.test является сервером обновления CA, необходимо переместить роль сервера обновления CA на другой сервер.
    • убедиться, что ipabackup.example.test не является издателем текущего списка отзыва сертификатов (CRL):

      # ipa-crlgen-manage status
      Если вывод команды показывают, что генерация CRL включена на сервере ipabackup.example.test, следует переместить роль издателя CRL на другой сервер.
  3. Подключиться к другому серверу в топологии:

    $ ssh ipa_user@another_server
  4. Получить учетные данные администратора FreeIPA:

    $ kinit admin
  5. Удалить сервер ipabackup.example.test из топологии:

    $ ipa server-del ipabackup.example.test
  6. Вернуться на ipabackup.example.test и удалить FreeIPA:

    # ipa-server-install --uninstall This is a NON REVERSIBLE operation and will delete all data and configuration! It is highly recommended to take a backup of existing data and configuration using ipa-backup utility before proceeding. Are you sure you want to continue with the uninstall procedure? [no]: yes Updating DNS system records Принудительное удаление ipabackup.example.test ------------------------------------ Удалён IPA-сервер "ipabackup.example.test" ------------------------------------ Shutting down all IPA services Unconfiguring named Unconfiguring ipa-dnskeysyncd Unconfiguring web server Unconfiguring krb5kdc Unconfiguring kadmin Unconfiguring directory server selinux is disabled, will not relabel ports or files. Unconfiguring ipa-custodia Unconfiguring ipa-otpd Removing IPA client configuration Removing Kerberos service principals from /etc/krb5.keytab Disabling client Kerberos and LDAP configurations Restoring client configuration files Restoring (none) as NIS domain. nscd daemon is not installed, skip configuration nslcd daemon is not installed, skip configuration Systemwide CA database updated. Client uninstall complete. The ipa-client-install command was successful The ipa-server-install command was successful
  7. Далее необходимо убедиться, что все записи DNS сервера имен (NS), указывающие на ipabackup.example.test, удалены из ваших зон DNS.

Часть II. Доступ к службам FreeIPA

Глава 7. Интерфейс командной строки FreeIPA

Администрировать FreeIPA можно в командной строке.

Примечание

Предварительно необходимо получить билет Kerberos для администратора FreeIPA:

$ kinit admin

Большинство административных действий FreeIPA можно выполнить с помощью команды ipa. Список доступных команд:

$ ipa help commands automember-add Добавить правило автоучастия. automember-add-condition Добавить условия в правило автоучастия. automember-default-group-remove Удалить группу по умолчанию (резервную) для всех несоответствующих записей. automember-default-group-set Установить группу по умолчанию (резервную) для всех несоответствующих записей. automember-default-group-show Показать сведения о группах автоучастия по умолчанию (резервных). automember-del Удалить правило автоучастия. …

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

$ ipa help commands automember Правило автоучастия. automount Автомонтирование ca Управление службами сертификации caacl Управление правилами CA ACL. cert Операции с сертификатами IPA …

Чтобы получить информацию по объекту (теме), используется команда:

$ ipa help <тема>

Например, вывести информацию об управлении службами сертификации:

$ ipa help ca

Чтобы получить справку по команде, используется команда:

$ ipa <команда> --help

или

$ ipa help <команда>

Например, вывести информацию о команде ipa user-add:

$ ipa user-add --help

Для поиска определённых типов записей FreeIPA можно использовать команды ipa *-find. Список всех команд ipa *-find:

$ ipa help commands | grep find

Например, вывести всех пользователей:

$ ipa user-find

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

$ ipa group-find admin

Вывести группы, в которые входит пользователь ivanov:

$ ipa group-find --user=ivanov

Вывести все группы, в которые не входит пользователь ivanov:

$ ipa group-find --no-user=ivanov

Вывести подробную информацию о конкретной записи можно с помощью команд ipa *-show. Например, вывести подробную информацию о узле comp01.example.test

$ ipa host-show comp01.example.test

Глава 8. Веб-интерфейс FreeIPA

Администрировать FreeIPA можно через веб-интерфейс. В веб-интерфейсе FreeIPA:

  • администраторы — могут изменять все настройки сервера FreeIPA и настройки пользователей (полный доступ к серверу FreeIPA);
  • пользователи FreeIPA — имеют ограниченный набор операций в зависимости от настроенных разрешений. По умолчанию активные пользователи FreeIPA могут настроить свою собственную учетную запись, но не могут изменять настройки других пользователей или настройки сервера FreeIPA.

8.1. Доступ к веб-интерфейсу

Веб-интерфейс FreeIPA доступен по адресу https://<FQDN>, например, https://ipa.example.test:

 

На сервере FreeIPA можно настроить следующие типы аутентификации:

  • пароль (данный тип аутентификации настроен по умолчанию);
  • билет Kerberos;
  • смарт-карта;
  • одноразовый пароль — его можно комбинировать с паролем и аутентификацией Kerberos.;
Администратор, войдя в систему, получает полный доступ к настройке сервера FreeIPA:

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

Администратор FreeIPA может потребовать от пользователя сменить пароль при следующем входе в систему. Если при входе в систему появляется диалоговое окно с сообщением Срок действия вашего пароля истёк. Пожалуйста, введите новый пароль, необходимо ввести старый пароль, дважды повторить новый пароль, ввести одноразовый пароль и нажать кнопку Сбросить пароль и войти:

Примечание

Если для пользователя не включена аутентификация OTP, поле OTP следует оставить пустым.

8.3. Использование одноразового пароля

При аутентификации в веб-интерфейсе FreeIPA в поле Пароль необходимо ввести пароль и код токена (в форме <пароль><код токена>):

Если аутентификация не удалась, необходимо синхронизировать токены OTP:

  1. На экране входа в веб-интерфейс FreeIPA нажать кнопку Синхронизировать токен OTP:

2. В открывшемся окне ввести имя пользователя и его пароль. Создать одноразовый пароль и ввести его в поле Первый OTP. Создать еще один одноразовый пароль и ввести его в поле Второй OTP. Ввести идентификатор токена, если это необходимо, и нажать кнопку Синхронизировать токен OTP:

Глава 9. Журналирование FreeIPA

9.1. Файлы журналов сервера и клиента FreeIPA

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

Таблица 9.1. Файлы журналов сервера и клиента FreeIPA

Файл/каталог
Описание
/var/log/ipaserver-install.log
Журнал установки сервера FreeIPA
/var/log/ipareplica-install.log
Журнал установки реплики FreeIPA
/var/log/ipaclient-install.log
Журнал установки клиента FreeIPA
/var/log/sssd/
Файлы журналов службы SSSD (можно включить подробное логирование в файле /etc/sssd/sssd.conf или командой sssctl)
/etc/logrotate.d/
Политики ротации логов для служб DNS, SSSD, Apache, Tomcat и Kerberos.
/etc/pki/pki-tomcat/logging.properties
Ссылка на конфигурацию ведения журнала центра сертификации (по умолчанию ссылка на файл /usr/share/pki/server/conf/logging.properties)

9.2. Файлы журналов сервера каталогов (Directory Service)

В следующей таблице представлены каталоги и файлы, которые экземпляр сервера каталогов (DS) FreeIPA использует для регистрации информации.

Таблица 9.2. Файлы журналов сервера каталогов (Directory Service)

Файл/каталог
Описание
/var/log/dirsrv/slapd-<REALM_NAME>
Файлы журналов, связанные с экземпляром DS, используемым сервером FreeIPA. Основная часть записанных здесь данных относятся к взаимодействиям сервера и реплики
/var/log/dirsrv/slapd-<REALM_NAME>/audit
Содержит журналы аудита всех операций DS, если аудит включен в конфигурации DS
/var/log/dirsrv/slapd-<REALM_NAME>/access
Содержит подробную информацию о попытках доступа к экземпляру DS домена
/var/log/dirsrv/slapd-<REALM_NAME>/errors
Содержит подробную информацию о неудачных операциях для экземпляра DS домена

9.3. Файлы журналов сервера Apache

В следующей таблице представлены каталоги и файлы, которые сервер Apache FreeIPA использует для регистрации информации.

Таблица 9.3. Файлы журналов сервера Apache

Файл/каталог
Описание
/var/log/httpd2/
Файлы журналов веб-сервера Apache
/var/log/httpd2/access_log
Стандартный журнал доступа веб-сервера Apache. Сообщения, специфичные для FreeIPA, записываются вместе с сообщениями Apache, поскольку веб-интерфейс FreeIPA и интерфейс командной строки используют Apache. В журналах доступа в основном регистрируются только субъект-пользователь и используемый URI, который часто является конечной точкой RPC.
/var/log/httpd2/error_log
Стандартный журнал ошибок веб-сервера Apache. Журнал ошибок содержит журналы сервера FreeIPA.

9.4. Файлы журналов системы сертификатов FreeIPA

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

Таблица 9.4. Файлы журналов системы сертификатов FreeIPA

Файл/каталог
Описание
/var/log/pki/pki-ca-spawn.<time_of_installation.>log
Журнал установки центра сертификации (CA) FreeIPA
/var/log/pki/pki-kra-spawn.<time_of_installation>.log
Журнал установки центра восстановления ключей FreeIPA (KRA)
/var/log/pki/pki-tomcat/
Каталог верхнего уровня для журналов операций PKI. Содержит журналы CA и KRA.
/var/log/pki/pki-tomcat/ca/
Каталог с журналами, связанными с операциями над сертификатами. В FreeIPA эти журналы используются для субъектов-служб, узлов и других объектов, использующих сертификаты.
/var/log/pki/pki-tomcat/kra/
Каталог с журналами, относящимися к KRA
Сообщения об ошибках сертификата также добавляются в системный журнал.

9.5. Файлы журналов Kerberos

В следующей таблице представлены каталоги и файлы, которые Kerberos использует для регистрации информации.

Таблица 9.5. Файлы журналов Kerberos

Файл/каталог
Описание
/var/log/krb5kdc.log
Основной файл журнала для сервера Kerberos KDC
/var/log/kadmind.log
Основной файл журнала сервера администрирования Kerberos
Расположение этих файлов настраивается в файле /etc/krb5.conf.

9.6. Файлы журналов DNS

Сообщения об ошибках DNS добавляются в системный журнал.

Часть III. Настройка репликации

Глава 10. Системные требования

Требования к установке реплики такие же, как и для установки сервера FreeIPA.

 

Глава 11. Системные требования

Для установки реплики используется утилита ipa-replica-install. Реплики необходимо устанавливать по одной. Установка нескольких реплик одновременно не поддерживается.

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

  • на существующем клиенте FreeIPA путем преобразования клиента в реплику;
  • на машине, которая еще не зарегистрирована в домене FreeIPA.

В обеих этих ситуациях можно настроить реплику, добавив нужные параметры в команду ipa-replica-install.

Для возможности установки реплики должны быть установлены те же пакеты, что и при установке сервера (см. Установка сервера FreeIPA):

# apt-get install freeipa-server freeipa-server-dns

11.1. Установка реплики на существующем клиенте FreeIPA

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

Способ 1. Использовать учетные данные привилегированного пользователя:

  • пароль администратора FreeIPA будет запрошен в интерактивном режиме после запуска утилиты ipa-replica-install (поведение по умолчанию);
  • получить билет Kerberos администратора FreeIPA (по умолчанию пользователь admin) непосредственно перед запуском утилиты ipa-replica-install;
  • указать имя и пароль пользователя при запуске утилиты ipa-replica-install:

    # ipa-replica-install --principal admin --admin-password password
Способ 2. Включить узел в группу ipaservers. Членство в группе ipaservers предоставляет машине повышенные привилегии, аналогичные учетным данным администратора. Следовательно, на следующем этапе для запуска утилиты ipa-replica-install права администратора FreeIPA не потребуются.

11.2. Установка реплики в системе, не зарегистрированной в домене FreeIPA

Примечание

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

При установке реплики в системе, которая еще не зарегистрирована в домене FreeIPA, утилита ipa-replica-install сначала регистрирует систему в качестве клиента, а затем устанавливает компоненты реплики. Для этого сценария также можно выбрать один из двух способов, чтобы авторизовать установку реплики.

Способ 1. Использовать учетные данные привилегированного пользователя, указав их непосредственно во время установки реплики:

# ipa-replica-install --principal admin --admin-password password
Способ 2. Использовать случайный пароль, сгенерированный на сервере FreeIPA.

Примечание

Сгенерированный пароль станет недействительным после регистрации машины в домене FreeIPA.

Глава 12. Параметры утилиты ipa-replica-install

По умолчанию реплика устанавливается на первый сервер FreeIPA, обнаруженный установщиком клиента. Чтобы установить реплику на определенный сервер, необходимо добавить следующие параметры в ipa-replica-install:

  • --server — для указания полного доменного имени сервера (FQDN);
  • --domain — для указания домена DNS FreeIPA.

При запуске без параметров ipa-replica-install настраивает только основные службы сервера. Чтобы установить дополнительные службы, например, DNS или центр сертификации (CA), следует добавить соответствующие параметры в ipa-replica-install:

  • --setup-dns и --forwarder — для установки реплики с DNS;
  • --setup-ca — для установки реплики с интегрированным CA;
  • --dirsrv-cert-file--dirsrv-pin--http-cert-file и --http-pin — для установки реплики без CA.
Полный список параметров, используемых для настройки реплики, см. man ipa-replica-install.

Глава 13. Установка реплики

13.1. Установка реплики на существующем клиенте FreeIPA, с использованием Host Keytab

В данной процедуре клиент FreeIPA повышается до реплики с использованием собственной таблицы ключей хоста. Данная процедура не требует предоставления учетных данных администратора или диспетчера каталогов (DM), поэтому она более безопасна (т.к. в командной строке не отображается конфиденциальная информация).
Создать обратный адрес для реплики на DNS-сервере основного сервера. Для этого в веб-интерфейсе FreeIPA необходимо перейти в Сетевые службы → DNS → Зоны DNS, выбрать в таблице запись домена (например, example.test.), в открывшемся списке открыть запись реплики (например, ipabackup), нажать на IP-адрес в поле A записи и в открывшемся окне на ссылку Создать запись DNS:

Процедура установка реплики:

  1. На любом узле FreeIPA получить билет Kerberos:

    $ kinit admin
  2. Добавить клиентскую машину в группу узлов ipaservers:

    $ ipa hostgroup-add-member ipaservers --hosts ipabackup.example.test Группа узлов: ipaservers Описание: IPA server hosts Узлы-участники: ipa.example.test, ipabackup.example.test ----------------------------------- Количество добавленных участников 1 -----------------------------------
  3. На клиенте запустить утилиту ipa-replica-install:

    # ipa-replica-install

Примечание

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

# systemctl reload dbus

13.2. Установка реплики с использованием случайного пароля

В этой процедуре реплика устанавливается на машину, которая еще не является клиентом FreeIPA. Для авторизации регистрации используется случайный пароль, действительный только для одной регистрации этого клиента.
Данная процедура не требует предоставления учётных данных администратора или диспетчера каталогов (DM), поэтому она более безопасна (т.к. в командной строке не отображается конфиденциальная информация).

Процедура установка реплики:

  1. На любом узле FreeIPA получить билет Kerberos:

    $ kinit admin
  2. Добавить внешнюю систему в качестве узла FreeIPA (сгенерированный случайный пароль будет использоваться для последующей установки реплики):

    $ ipa host-add hostb.example.test --random --ip-address=192.168.0.145 ---------------------------------- Добавлен узел "hostb.example.test" ---------------------------------- Имя узла: hostb.example.test Случайный пароль: 2AaT0Ix8itDsYugdDGoRtBt Пароль: True Таблица ключей: False Managed by: hostb.example.test
  3. Добавить систему в группу узлов ipaservers:

    $ ipa hostgroup-add-member ipaservers --hosts hostb.example.test Группа узлов: ipaservers Описание: IPA server hosts Узлы-участники: ipa.example.test, ipabackup.example.test, hostb.example.test ----------------------------------- Количество добавленных участников 1 -----------------------------------
  4. На клиенте запустить утилиту ipa-replica-install, указав сгенерированный пароль в параметре --password (т.к. пароль часто содержит специальные символы, следует заключить его в одинарные кавычки):

    # ipa-replica-install --password '2AaT0Ix8itDsYugdDGoRtBt'

    Пример команды установки реплики с интегрированными DNS и CA:

    # ipa-replica-install --password '2AaT0Ix8itDsYugdDGoRtBt' --setup-ca --setup-dns --forwarder 192.168.0.151 --forwarder 8.8.8.8

13.3. Установка реплики с использованием учётных данных привилегированного пользователя

В этой процедуре реплика устанавливается на машину, которая еще не является клиентом FreeIPA. Для авторизации регистрации используются учётные данные привилегированного пользователя FreeIPA.

Процедура установка реплики:

  1. Предварительно необходимо убедиться, что при настройке DNS в процессе инициализации FreeIPA, была создана обратная зона DNS (Сетевые службы → DNS → Зоны DNS):
    И в обратной зоне создана реверсивная запись для основного сервера 192.168.0.113:
  2. В реверсивной зоне создать реверсивную запись для сервера репликации (кнопка Добавить):

    Реверсивную запись можно также создать, выполнив команду:

    $ ipa dnsrecord-add 0.168.192.in-addr.arpa 145 --ptr-rec 'replica.example.test.'
  3. На клиенте запустить утилиту ipa-replica-install:

    # ipa-replica-install --principal admin --admin-password 12345678

Примечание

Пример запуска утилиты ipa-replica-install с указанием дополнительных параметров:

# ipa-replica-install --principal admin --admin-password 12345678 --setup-ca --setup-dns --forwarder 192.168.0.151 --forwarder 8.8.8.8

13.4. С интегрированным DNS и без CA

Здесь предполагается, что первый сервер был установлен в режиме CA-less. В этом случае можно предоставить необходимые сертификаты вручную.

На сервере, где создавались сертификаты для сервера:

  1. Создать noise файл, заполненный случайными числами:

    # head -c20 /dev/random > ~/test_ca/noise.txt
  2. Создать запрос на сертификат (в CN необходимо указать имя хоста будущей реплики, на запрос «Enter value for the key identifier fields», следует ввести вывод команды echo $SKID):

    # SKID="0x`openssl rand -hex 20`" # echo $SKID 0xa30f48abf89afae77e481c712d234ff0e312d44e # certutil -d ~/test_ca -R -s CN=ipabackup.example.test,O=IPA -o /tmp/replicacert.req -k rsa -g 2048 -z ~/test_ca/noise.txt -f ~/test_ca/password.txt -a --extSKID Generating key. This may take a few moments... Adding Subject Key ID extension. Enter value for the key identifier fields,enter to omit: 0xa30f48abf89afae77e481c712d234ff0e312d44e Is this a critical extension [y/N]? n
  3. Подписать запрос на сертификат:

    # export CERT_SERIAL=$(($CERT_SERIAL + 1)) # certutil -d ~/test_ca -C -c "CA" -i /tmp/replicacert.req -o /tmp/replicacert.pem -m $CERT_SERIAL -v 120 -f ~/test_ca/password.txt -1 -5 -a

    В ответ на запросы команды дать следующие ответы:

      2 - Key encipherment
      9 - done
      Is this a critical extension [y/N]? n
      1 - SSL Server
      9 - done
      Is this a critical extension [y/N]? n
    
  4. Импортировать полученный сертификат (на запрос команды, следует ввести пароль к закрытому ключу):

    # certutil -d ~/test_ca -A -i /tmp/replicacert.pem -n Replica-Cert -a -t ,, Enter Password or Pin for "NSS Certificate DB":
  5. Экспортировать сертификат в PKCS#12:

    # pk12util -o ~/test_ca/replicacert.p12 -n Replica-Cert -d ~/test_ca -k ~/test_ca/password.txt -w ~/test_ca/password.txt pk12util: PKCS12 EXPORT SUCCESSFUL
  6. Скопировать сертификат в формате PKCS#12 на будущую реплику.

Настройка репликации LDAP-каталога:

# ipa-replica-install \ --dirsrv-cert-file ~/test_ca/replicacert.p12 \ --dirsrv-pin SECret.123 \ --http-cert-file ~/test_ca/replicacert.p12 \ --http-pin SECret.123 \ --no-pkinit … The ipa-replica-install command was successful

13.5. С интегрированными DNS и CA в системе, не зарегистрированной в домене FreeIPA

Пример, настройки репликации LDAP-каталога:

# ipa-replica-install --password='2AaT0Ix8itDsYugdDGoRtBt' Configuring client side components This program will set up IPA client. Version 4.9.11 Discovery was successful! Client hostname: hostb.example.test Realm: EXAMPLE.TEST DNS Domain: example.test IPA Server: ipa.example.test BaseDN: dc=example,dc=test The ipa-client-install command was successful The ipa-replica-install command was successful

Примечание

Сначала будет установлен клиент, а затем реплика.

13.6. Проверка реплики

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

  1. Создать пользователя на новой реплике:

    $ ipa user-add test_user
  2. Убедиться, что пользователь виден на другой реплике:

    $ ipa user-show test_user
После настройки репликации посмотреть топологию можно в веб-интерфейсе FreeIPA (IPA-сервер → Топология → Topology Graph):

Глава 14. Отладочная информация

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

  • /var/log/ipareplica-install.log
  • /var/log/ipareplica-conncheck.log
  • /var/log/ipaclient-install.log
  • /var/log/httpd2/error_log
  • /var/log/dirsrv/slapd-INSTANCE-NAME/access
  • /var/log/dirsrv/slapd-INSTANCE-NAME/errors

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

  • /var/log/httpd2/error_log;
  • /var/log/dirsrv/slapd-INSTANCE-NAME/access
  • /var/log/dirsrv/slapd-INSTANCE-NAME/errors

Глава 15. Удаление реплики

Администратор FreeIPA может удалить реплику FreeIPA из топологии.

Часть IV. Разворачивание клиента FreeIPA

Глава 16. Подготовка системы к установке клиента FreeIPA

В этом разделе перечислены требования для установки клиента FreeIPA. Перед установкой необходимо убедиться, что система соответствует этим требованиям.
Клиентские компьютеры должны быть настроены на использование DNS-сервера, который был сконфигурирован на сервере FreeIPA во время его установки. В сетевых настройках необходимо указать использовать сервер FreeIPA для разрешения имен. Эти настройки можно выполнить как в графическом интерфейсе, так и в консоли.
В Центре управления системой в разделе Сеть → Ethernet интерфейсы задать имя компьютера, указать в поле DNS-серверы IP-адрес FreeIPA сервера и в поле Домены поиска — домен для поиска:

Примечание

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

В консоли:

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

    # hostnamectl set-hostname comp01.example.test
  • добавить DNS сервер, для этого необходимо создать файл /etc/net/ifaces/eth0/resolv.conf со следующим содержимым:

    # nameserver 192.168.0.113

    где 192.168.0.113 — IP-адрес FreeIPA сервера;

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

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

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

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

    # resolvconf -u

В результате выполненных действий в файле /etc/resolv.conf должны появиться строки:

search example.test
nameserver 192.168.0.113

Предупреждение

В строке search не должен присутствовать localdomain.

Примечание

Если в результате выполненных действий IP-адрес доменного DNS сервера не отображается в файле /etc/resolv.conf, то необходимо перезагрузить систему.

Глава 17. Установка пакетов

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

# apt-get install freeipa-client zip

Глава 18. Подключение к серверу

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

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

  • учетные данные привилегированного пользователя (параметр по умолчанию);
  • одноразовый пароль (OTP);
  • ключ (keytab) из предыдущей регистрации.

18.1. Интерактивная установка

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

# ipa-client-install --mkhomedir

Можно добавить параметр --enable-dns-updates, чтобы обновить записи DNS с помощью IP-адреса клиентской системы, если выполняется одно из следующих условий:

  • сервер FreeIPA, на котором будет зарегистрирован клиент, был установлен со встроенным DNS;
  • DNS-сервер в сети принимает обновления записей DNS по протоколу GSS-TSIG.

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

This program will set up IPA client.
Version 4.9.11

Discovery was successful!
Do you want to configure CHRONY with NTP server or pool address? [no]:
Client hostname: comp08.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

Затем запрашивается имя пользователя, имеющего право вводить машины в домен, и его пароль (можно использовать администратора по умолчанию, который был создан при установке сервера):

User authorized to enroll computers: admin
Password for admin@EXAMPLE.TEST:

Далее сценарий установки настраивает клиент. Если установка прошла успешно, в конце вывода вы увидите:

Client configuration complete.
The ipa-client-install command was successful

18.1.1. С использованием одноразового пароля

На сервере FreeIPA добавить будущую клиентскую систему (следует использовать параметр --random, чтобы команда сгенерировала случайный одноразовый пароль):

# ipa host-add comp03.example.test --random --ip-address=192.168.0.104 ----------------------------------- Добавлен узел "comp03.example.test" ----------------------------------- Имя узла: comp03.example.test Случайный пароль: 3SeOaJ5GyOxbPcLmF5wpFQH Пароль: True Таблица ключей: False Managed by: comp03.example.test

Примечание

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

Запустить утилиту ipa-client-install в системе, которая будет настроена в качестве клиента. Чтобы указать одноразовый случайный пароль, необходимо использовать параметр --password. Т.к. пароль часто содержит специальные символы, следует заключить его в одинарные кавычки:

# ipa-client-install --mkhomedir --password='3SeOaJ5GyOxbPcLmF5wpFQH'

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

Для установки в пакетном режиме утилите ipa-client-install с помощью параметров командной строки нужно предоставить всю необходимую информацию, как минимум:

  1. Метод проверки пользователя:

    • -p PRINCIPAL--principal=PRINCIPAL и -w PASSWORD--password=PASSWORD для указания учетных данных пользователя, уполномоченного регистрировать клиентов;
    • --password=PASSWORD для указания одноразового случайного пароля, сгенерированный для клиента;
    • -k KEYTAB--keytab=KEYTAB, чтобы указать таблицу ключей из предыдущей регистрации.
  2. Возможность автоматической установки:

    • --unattended-U — не запрашивать у пользователя информацию.

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

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

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

  • --hostname=HOST_NAME — полное доменное имя (FQDN) для клиентского компьютера;
  • --realm=REALM_NAME — имя области Kerberos для сервера FreeIPA;
  • --domain=DOMAIN_NAME — доменное имя;
  • --server=SERVER — FQDN сервера FreeIPA.

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

# ipa-client-install -U --password='3SeOaJ5GyOxbPcLmF5wpFQH' --domain example.test --server ipa.example.test --realm EXAMPLE.TEST --mkhomedir

Примечание

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

# ipa-client-install --help

18.3. В Центре управления системой

Примечание

Должен быть установлен пакет task-auth-freeipa:

# apt-get install task-auth-freeipa
Для ввода рабочей станции в домен FreeIPA, необходимо в Центре управления системой перейти в раздел Пользователи → Аутентификация. Здесь следует выбрать пункт Домен FreeIPA, заполнить поля Домен и Имя компьютера, затем нажать кнопку Применить:
В открывшемся окне необходимо ввести имя пользователя, имеющего право вводить машины в домен, и его пароль и нажать кнопку ОК:
В случае успешного подключения, будет выведено соответствующее сообщение:
Перезагрузить рабочую станцию.

Глава 19. Проверка клиента FreeIPA

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

# id admin uid=465000000(admin) gid=465000000(admins) группы=465000000(admins)

Глава 20. Отладочная информация

При установке клиента FreeIPA отладочная информация добавляется в файл /var/log/ipaclient-install.log.
В случае сбоя установки клиента установщик регистрирует ошибку в журнале и откатывает изменения, чтобы отменить любые изменения на узле. Причина сбоя установки может быть указана не в конце файла журнала, так как программа установки также записывает в журнал процедуру отката. Для устранения неполадок при неудачной установке клиента FreeIPA следует просмотреть строки с пометкой ScriptError.

Глава 21. Повторная регистрация клиента FreeIPA

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

Примечание

Повторно зарегистрировать можно только тех клиентов, запись о которых в домене все еще активна. Если клиент удалён (ipa-client-install --uninstall) или запись его узла отключена (ipa host-disable) его нельзя повторно зарегистрировать.

Нельзя повторно зарегистрировать клиента, если он был переименован. Единственный способ переименовать клиента — удалить узел из FreeIPA, изменить имя узла и установить его в качестве клиента FreeIPA с новым именем.

При повторной регистрации, FreeIPA:

  • отменяет исходный сертификат хоста;
  • создает новые ключи SSH;
  • создает новый keytab.

21.1. В интерактивном режиме

Процедура повторной регистрации клиента FreeIPA в интерактивном режиме:

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

    # ipa-client-install --force-join
  3. Скрипт запросит имя пользователя, имеющего право вводить машины в домен, и его пароль (можно использовать администратора по умолчанию, который был создан при установке сервера):

    User authorized to enroll computers: admin
    Password for admin@EXAMPLE.TEST:

21.2. В пакетном режиме, с использованием keytab клиентской системы

Повторная регистрация клиента FreeIPA в пакетном режиме:

  1. Создать резервную копию исходного файла keytab.
  2. Повторно создать (переустановить) клиентский компьютер, задав ему тоже имя узла.
  3. Повторная регистрации клиента, с указанием местоположения файла keytab:

    # ipa-client-install --keytab /tmp/krb5.keytab -U This program will set up IPA client. Version 4.9.11 Discovery was successful! Client hostname: comp01.example.test Realm: EXAMPLE.TEST DNS Domain: example.test IPA Server: ipa.example.test BaseDN: dc=example,dc=test Attempting to sync time with CHRONY It may take a few seconds Successfully retrieved CA cert Subject: CN=Certificate Authority,O=EXAMPLE.TEST Issuer: CN=Certificate Authority,O=EXAMPLE.TEST Valid From: 2023-08-28 14:28:44 Valid Until: 2043-08-28 14:28:44 Enrolled in IPA realm EXAMPLE.TEST Created /etc/ipa/default.conf Configured /etc/sssd/sssd.conf Systemwide CA database updated. Adding SSH public key from /etc/openssh/ssh_host_rsa_key.pub Adding SSH public key from /etc/openssh/ssh_host_ecdsa_key.pub Adding SSH public key from /etc/openssh/ssh_host_ed25519_key.pub Adding SSH public key from /etc/openssh/ssh_host_dsa_key.pub Configured passwd in /etc/nsswitch.conf Configured group in /etc/nsswitch.conf Configured netgroup in /etc/nsswitch.conf Configured automount in /etc/nsswitch.conf Configured services in /etc/nsswitch.conf Configured sudoers in /etc/nsswitch.conf SSSD enabled Configured /etc/openldap/ldap.conf Principal is not set when enrolling with OTP or PKINIT; using principal 'admin@example.test' for 'getent passwd'. Configured /etc/openssh/ssh_config Configured /etc/openssh/sshd_config Configuring example.test as NIS domain. Configured /etc/krb5.conf for IPA realm EXAMPLE.TEST Client configuration complete. The ipa-client-install command was successful

Примечание

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

Глава 22. Удаление клиента FreeIPA

При удалении, клиент удаляется из домена FreeIPA вместе с конфигурацией системных служб FreeIPA, таких как демон System Security Services Daemon (SSSD).

Процедура удаления клиента FreeIPA:

  1. На клиенте ввести команду:

    # ipa-client-install --uninstall … 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 The ipa-client-install command was successful

    На клиенте удалить старые принципалы Kerberos, кроме /etc/krb5.keytab:

    # ipa-rmkeytab -k /path/to/keytab -r EXAMPLE.TEST
  2. На сервере FreeIPA удалить все записи DNS для клиентского узла:

    # ipa dnsrecord-del Имя записи: comp04 Имя зоны: example.test Возможность удаления определённой записи не предусмотрена. Удалить все? Yes/No (default No): yes ----------------------- Удалена запись "comp04" -----------------------
  3. На сервере FreeIPA удалить запись узла с сервера FreeIPA LDAP. При этом будут удалены все службы и отозваны все сертификаты, выданные для этого узла:

    # ipa host-del comp04.example.test --------------------------------- Удалён узел "comp04.example.test" ---------------------------------

Примечание

Удаление записи узла клиента с сервера LDAP FreeIPA имеет решающее значение, если в будущем нужно будет зарегистрировать клиент с другим IP-адресом или другим именем узла.