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
/var/lib/ipa/sysrestore/
. При удалении сервера FreeIPA, эти файлы восстанавливаются.1.1.1. RAM
-
для 10 000 пользователей и 100 групп: не менее 4 ГБ RAM и 4 ГБ Swap;
-
для 100 000 пользователей и 50 000 групп: не менее 16 ГБ RAM и 4 ГБ Swap.
1.1.2. DNS
Важно
Домен DNS не может быть изменен после установки.
Установщик FreeIPA довольно требователен к настройке DNS. Установщик выполняет следующие проверки:
-
имя узла не может быть localhost или localhost6;
-
имя узла должно быть полным (например, ipa.example.test);
-
имя узла должно быть разрешимым;
-
обратный адрес должен совпадать с именем хоста.
https://tools.ietf.org/html/rfc2606
) для частных тестовых установок, например, ipa.test.1.1.3. IPv6
Примечание
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-install
, ipa-replica-install
, ipa-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
Сертификаты, необходимые для установки сервера 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
Глава 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:
# ipa-server-install --uninstall
Примечание
Если ошибки при установке сервера FreeIPA остаются, следует переустановить ОС. Одним из требований для установки сервера FreeIPA является чистая система без каких-либо настроек.
Глава 6. Удаление сервера FreeIPA
Процедура удаления сервера FreeIPA ipabackup.example.test:
-
Если в среде 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 (см. manipa-dns-install(1)
). -
Если в среде используется интегрированный 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 (см. manipa-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 (см. manipa-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 на другой сервер.
-
-
Подключиться к другому серверу в топологии:
$
ssh ipa_user@another_server
-
Получить учетные данные администратора FreeIPA:
$
kinit admin
-
Удалить сервер ipabackup.example.test из топологии:
$
ipa server-del ipabackup.example.test
-
Вернуться на 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 -
Далее необходимо убедиться, что все записи DNS сервера имен (NS), указывающие на ipabackup.example.test, удалены из ваших зон DNS.
Часть II. Доступ к службам FreeIPA
Глава 7. Интерфейс командной строки 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 можно настроить следующие типы аутентификации:
-
пароль (данный тип аутентификации настроен по умолчанию);
-
билет Kerberos;
-
смарт-карта;
-
одноразовый пароль — его можно комбинировать с паролем и аутентификацией Kerberos.;
Пользователи FreeIPA могут настроить только свою собственную учетную запись:
Администратор FreeIPA может потребовать от пользователя сменить пароль при следующем входе в систему. Если при входе в систему появляется диалоговое окно с сообщением Срок действия вашего пароля истёк. Пожалуйста, введите новый пароль, необходимо ввести старый пароль, дважды повторить новый пароль, ввести одноразовый пароль и нажать кнопку :
Примечание
Если для пользователя не включена аутентификация OTP, поле OTP следует оставить пустым.
8.3. Использование одноразового пароля
Если аутентификация не удалась, необходимо синхронизировать токены OTP:
-
На экране входа в веб-интерфейс FreeIPA нажать кнопку :
2. В открывшемся окне ввести имя пользователя и его пароль. Создать одноразовый пароль и ввести его в поле Первый OTP. Создать еще один одноразовый пароль и ввести его в поле Второй OTP. Ввести идентификатор токена, если это необходимо, и нажать кнопку :
Глава 9. Журналирование FreeIPA
9.1. Файлы журналов сервера и клиента 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)
Таблица 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
Таблица 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
Таблица 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
Таблица 9.5. Файлы журналов Kerberos
Файл/каталог
|
Описание
|
---|---|
/var/log/krb5kdc.log |
Основной файл журнала для сервера Kerberos KDC
|
/var/log/kadmind.log |
Основной файл журнала сервера администрирования Kerberos
|
/etc/krb5.conf
.9.6. Файлы журналов DNS
Часть III. Настройка репликации
Глава 10. Системные требования
Глава 11. Системные требования
- Для установки реплики используется утилита
ipa-replica-install
. Реплики необходимо устанавливать по одной. Установка нескольких реплик одновременно не поддерживается.
Новую реплику можно установить:
-
на существующем клиенте FreeIPA путем преобразования клиента в реплику;
-
на машине, которая еще не зарегистрирована в домене FreeIPA.
В обеих этих ситуациях можно настроить реплику, добавив нужные параметры в команду ipa-replica-install
.
Для возможности установки реплики должны быть установлены те же пакеты, что и при установке сервера (см. Установка сервера FreeIPA):
# apt-get install freeipa-server freeipa-server-dns
11.1. Установка реплики на существующем клиенте FreeIPA
Способ 1. Использовать учетные данные привилегированного пользователя:
-
пароль администратора FreeIPA будет запрошен в интерактивном режиме после запуска утилиты
ipa-replica-install
(поведение по умолчанию); -
получить билет Kerberos администратора FreeIPA (по умолчанию пользователь admin) непосредственно перед запуском утилиты
ipa-replica-install
; -
указать имя и пароль пользователя при запуске утилиты
ipa-replica-install
:#
ipa-replica-install --principal admin --admin-password password
ipa-replica-install
права администратора FreeIPA не потребуются.11.2. Установка реплики в системе, не зарегистрированной в домене FreeIPA
Примечание
Перед настройкой репликации необходимо настроить систему на использование DNS-сервера, который был сконфигурирован на сервере FreeIPA во время его установки.
ipa-replica-install
сначала регистрирует систему в качестве клиента, а затем устанавливает компоненты реплики. Для этого сценария также можно выбрать один из двух способов, чтобы авторизовать установку реплики.Способ 1. Использовать учетные данные привилегированного пользователя, указав их непосредственно во время установки реплики:
# ipa-replica-install --principal admin --admin-password password
Примечание
Сгенерированный пароль станет недействительным после регистрации машины в домене 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 получить билет Kerberos:
$
kinit admin
-
Добавить клиентскую машину в группу узлов ipaservers:
$
ipa hostgroup-add-member ipaservers --hosts ipabackup.example.test
Группа узлов: ipaservers Описание: IPA server hosts Узлы-участники: ipa.example.test, ipabackup.example.test ----------------------------------- Количество добавленных участников 1 ----------------------------------- -
На клиенте запустить утилиту
ipa-replica-install
:#
ipa-replica-install
Примечание
dbus может мешать проверке соединений при установке реплики, при появлении ошибок может помочь перезапуск сервиса:
#
systemctl reload dbus
13.2. Установка реплики с использованием случайного пароля
Процедура установка реплики:
-
На любом узле FreeIPA получить билет Kerberos:
$
kinit admin
-
Добавить внешнюю систему в качестве узла 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 -
Добавить систему в группу узлов ipaservers:
$
ipa hostgroup-add-member ipaservers --hosts hostb.example.test
Группа узлов: ipaservers Описание: IPA server hosts Узлы-участники: ipa.example.test, ipabackup.example.test, hostb.example.test ----------------------------------- Количество добавленных участников 1 ----------------------------------- -
На клиенте запустить утилиту
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. Установка реплики с использованием учётных данных привилегированного пользователя
Процедура установка реплики:
-
Предварительно необходимо убедиться, что при настройке DNS в процессе инициализации FreeIPA, была создана обратная зона DNS ( → → ):И в обратной зоне создана реверсивная запись для основного сервера 192.168.0.113:
-
В реверсивной зоне создать реверсивную запись для сервера репликации (кнопка ):
Реверсивную запись можно также создать, выполнив команду:
$
ipa dnsrecord-add 0.168.192.in-addr.arpa 145 --ptr-rec 'replica.example.test.'
-
На клиенте запустить утилиту
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
На сервере, где создавались сертификаты для сервера:
-
Создать noise файл, заполненный случайными числами:
#
head -c20 /dev/random > ~/test_ca/noise.txt
-
Создать запрос на сертификат (в 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 -
Подписать запрос на сертификат:
#
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
-
Импортировать полученный сертификат (на запрос команды, следует ввести пароль к закрытому ключу):
#
certutil -d ~/test_ca -A -i /tmp/replicacert.pem -n Replica-Cert -a -t ,,
Enter Password or Pin for "NSS Certificate DB": -
Экспортировать сертификат в 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 -
Скопировать сертификат в формате 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. Проверка реплики
После создания реплики можно проверить, реплицирует ли реплика данные должным образом:
-
Создать пользователя на новой реплике:
$
ipa user-add test_user
-
Убедиться, что пользователь виден на другой реплике:
$
ipa user-show test_user
Глава 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. Удаление реплики
Часть IV. Разворачивание клиента FreeIPA
Глава 16. Подготовка системы к установке клиента 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 необходимо предоставить учетные данные, которые можно использовать для регистрации клиента. Доступны следующие методы аутентификации:
-
учетные данные привилегированного пользователя (параметр по умолчанию);
-
одноразовый пароль (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
с помощью параметров командной строки нужно предоставить всю необходимую информацию, как минимум:
-
Метод проверки пользователя:
-
-p PRINCIPAL
,--principal=PRINCIPAL
и-w PASSWORD
,--password=PASSWORD
для указания учетных данных пользователя, уполномоченного регистрировать клиентов; -
--password=PASSWORD
для указания одноразового случайного пароля, сгенерированный для клиента; -
-k KEYTAB
,--keytab=KEYTAB
, чтобы указать таблицу ключей из предыдущей регистрации.
-
-
Возможность автоматической установки:
-
--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
Глава 19. Проверка клиента FreeIPA
Проверить, может ли клиент FreeIPA получать информацию о пользователях, определенных на сервере:
# id admin
uid=465000000(admin) gid=465000000(admins) группы=465000000(admins)
Глава 20. Отладочная информация
/var/log/ipaclient-install.log
.Глава 21. Повторная регистрация клиента FreeIPA
Примечание
Повторно зарегистрировать можно только тех клиентов, запись о которых в домене все еще активна. Если клиент удалён (
ipa-client-install --uninstall
) или запись его узла отключена (ipa host-disable
) его нельзя повторно зарегистрировать.
При повторной регистрации, FreeIPA:
-
отменяет исходный сертификат хоста;
-
создает новые ключи SSH;
-
создает новый keytab.
21.1. В интерактивном режиме
Процедура повторной регистрации клиента FreeIPA в интерактивном режиме:
-
Повторно создать клиентский компьютер с тем же именем хоста.
-
Выполнить команду на клиентской машине:
#
ipa-client-install --force-join
-
Скрипт запросит имя пользователя, имеющего право вводить машины в домен, и его пароль (можно использовать администратора по умолчанию, который был создан при установке сервера):
User authorized to enroll computers: admin Password for admin@EXAMPLE.TEST:
21.2. В пакетном режиме, с использованием keytab клиентской системы
Повторная регистрация клиента FreeIPA в пакетном режиме:
-
Создать резервную копию исходного файла keytab.
-
Повторно создать (переустановить) клиентский компьютер, задав ему тоже имя узла.
-
Повторная регистрации клиента, с указанием местоположения файла 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:
-
На клиенте ввести команду:
#
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
-
На сервере FreeIPA удалить все записи DNS для клиентского узла:
#
ipa dnsrecord-del
Имя записи: comp04 Имя зоны: example.test Возможность удаления определённой записи не предусмотрена. Удалить все? Yes/No (default No): yes ----------------------- Удалена запись "comp04" ----------------------- -
На сервере FreeIPA удалить запись узла с сервера FreeIPA LDAP. При этом будут удалены все службы и отозваны все сертификаты, выданные для этого узла:
#
ipa host-del comp04.example.test
--------------------------------- Удалён узел "comp04.example.test" ---------------------------------
Примечание
Удаление записи узла клиента с сервера LDAP FreeIPA имеет решающее значение, если в будущем нужно будет зарегистрировать клиент с другим IP-адресом или другим именем узла.