FreeIPA/Установка сервера FreeIPA: различия между версиями
Amakeenk (обсуждение | вклад) (Запуск создания запроса на сертификат с параметром extSAN) |
|||
(не показано 14 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{ | |||
В данном разделе рассмотрена установка сервера FreeIPA с доменом EXAMPLE.TEST в локальной сети 192.168.0.0/24. | |||
== Системные требования == | |||
Сервер FreeIPA следует устанавливать в чистой системе, в которой отсутствуют какие-либо пользовательские настройки для служб: DNS, Kerberos, Apache и Directory Server. | |||
FreeIPA при настройке домена перезаписывает системные файлы. FreeIPA создает резервные копии исходных системных файлов в {{path|/var/lib/ipa/sysrestore/}}. При удалении сервера FreeIPA, эти файлы восстанавливаются. | |||
=== RAM === | |||
Для установки с CA требуется минимально 1,2 ГБ RAM. Для демонстрационной/тестовой системы рекомендуется 2 ГБ. | |||
Типичные требования к оперативной памяти: | |||
*для 10 000 пользователей и 100 групп: не менее 4 ГБ RAM и 4 ГБ Swap. | |||
*для 100 000 пользователей и 50 000 групп: не менее 16 ГБ RAM и 4 ГБ Swap. | |||
=== DNS === | |||
Без правильно настроенной конфигурации DNS не будут работать должным образом Kerberos и SSL. | |||
{{Attention|Домен DNS не может быть изменен после установки. }} | |||
Установщик FreeIPA довольно требователен к настройке DNS. Установщик выполняет следующие проверки: | |||
*имя узла не может быть localhost или localhost6. | |||
*имя узла должно быть полным (ipa.example.test) | |||
*имя узла должно быть разрешимым. | |||
*обратный адрес должен совпадать с именем хоста. | |||
Не используйте существующий домен, если вы не являетесь владельцем домена. Рекомендуется использовать зарезервированный домен верхнего уровня из [https://tools.ietf.org/html/rfc2606 RFC2606] для частных тестовых установок, например ipa.test. | |||
=== IPv6 === | |||
В ядре должен быть включен протокол IPv6. Если IPv6 отключен, подключаемый модуль CLDAP, используемый службами FreeIPA, не инициализируется. | |||
== Подготовка сервера == | == Подготовка сервера == | ||
Для корректной работы сервера необходимо, задать ему полное доменное имя (FQDN). Имя серверу можно назначить командой: | |||
<syntaxhighlight lang="bash"># hostnamectl set-hostname ipa.example.test</syntaxhighlight> | |||
{{Note|IP-адрес сервера не должен изменяться.}} | |||
Нужно отключить работающий на порту 8080 ahttpd во избежание конфликтов с разворачиваемым tomcat и отключить HTTPS в Apache2: | |||
<syntaxhighlight lang="bash"># service ahttpd stop | |||
# a2dissite 000-default_https | |||
# a2disport https | |||
# service httpd2 condreload</syntaxhighlight> | |||
Для ускорения установки можно установить демон энтропии haveged: | |||
<syntaxhighlight lang="bash"># apt-get install haveged | |||
# systemctl enable --now haveged</syntaxhighlight> | |||
== Установка пакетов == | == Установка пакетов == | ||
Установить | Установить пакет {{pkg|freeipa-server}}: | ||
< | <syntaxhighlight lang="bash"># apt-get install freeipa-server</syntaxhighlight> | ||
Если сервер FreeIPA должен включать DNS-сервер, необходимо также установить пакет {{pkg|freeipa-server-dns}}: | |||
<syntaxhighlight lang="bash"># apt-get install freeipa-server-dns</syntaxhighlight> | |||
== Установка сервера == | == Установка сервера == | ||
Строка 21: | Строка 71: | ||
* FreeIPA DNS не предназначен для использования в качестве DNS-сервера общего назначения. Некоторые расширенные функции DNS не поддерживаются. | * FreeIPA DNS не предназначен для использования в качестве DNS-сервера общего назначения. Некоторые расширенные функции DNS не поддерживаются. | ||
{{Note|Если в | {{Note|Если в команде {{cmd|ipa-server-install}} в конфигурации по умолчанию не указаны CA параметры, например, <tt>--external-ca</tt> или <tt>--ca-less</tt>, сервер FreeIPA устанавливается с интегрированным CA.}} | ||
==== Интерактивная установка ==== | ==== Интерактивная установка ==== | ||
Для запуска интерактивной установки выполнить команду: | Для запуска интерактивной установки выполнить команду: | ||
< | <syntaxhighlight lang="bash"># ipa-server-install</syntaxhighlight> | ||
На первый вопрос, нужно ли сконфигурировать DNS-сервер BIND ответить утвердительно: | На первый вопрос, нужно ли сконфигурировать DNS-сервер BIND, следует ответить утвердительно: | ||
< | <syntaxhighlight lang="bash">Do you want to configure integrated DNS (BIND)? [no]: yes</syntaxhighlight> | ||
Далее нужно указать имя узла, на котором будет установлен сервер FreeIPA, доменное имя и пространство Kerberos: | Далее нужно указать имя узла, на котором будет установлен сервер FreeIPA, доменное имя и пространство Kerberos: | ||
{{Note| Чтобы принять значение по умолчанию, необходимо нажать '''Enter'''.}} | {{Note| Чтобы принять значение по умолчанию, необходимо нажать '''Enter'''.}} | ||
< | <syntaxhighlight lang="bash">Server host name [ipa.example.test]: | ||
Please confirm the domain name [example.test]: | Please confirm the domain name [example.test]: | ||
Please provide a realm name [EXAMPLE.TEST]:</ | Please provide a realm name [EXAMPLE.TEST]:</syntaxhighlight> | ||
{{Attention|Эти имена нельзя изменить после завершения установки. }} | {{Attention|Эти имена нельзя изменить после завершения установки. }} | ||
Задать пароль для Directory Manager (cn=Directory Manager): | Задать пароль для Directory Manager (cn=Directory Manager): | ||
< | <syntaxhighlight lang="bash">Directory Manager password: | ||
Password (confirm):</ | Password (confirm):</syntaxhighlight> | ||
Задать пароль для администратора FreeIPA (будет создана учетная запись admin с правами администратора): | Задать пароль для администратора FreeIPA (будет создана учетная запись admin с правами администратора): | ||
< | <syntaxhighlight lang="bash">IPA admin password: | ||
Password (confirm):</ | Password (confirm):</syntaxhighlight> | ||
Для настройки DNS на первый запрос, нужно ли настроить перенаправления, ответить | Для настройки DNS на первый запрос, нужно ли настроить перенаправления, необходимо ответить «да»: | ||
< | <syntaxhighlight lang="bash">Do you want to configure DNS forwarders? [yes]:</syntaxhighlight> | ||
Система предложит сначала использовать DNS-серверы из настроек сети (если они прописаны) — если это устроит, оставить значение по умолчанию: | Система предложит сначала использовать DNS-серверы из настроек сети (если они прописаны) — если это устроит, можно оставить значение по умолчанию: | ||
< | <syntaxhighlight lang="bash">Do you want to configure these servers as DNS forwarders? [yes]:</syntaxhighlight> | ||
Также можно добавить дополнительные серверы: | Также можно добавить дополнительные серверы: | ||
< | <syntaxhighlight lang="bash">Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.8.8</syntaxhighlight> | ||
{{Note|Этот шаг необходим в том случае, если предполагается использовать внешний сервер для обработки запросов службы имен DNS. }} | {{Note|Этот шаг необходим в том случае, если предполагается использовать внешний сервер для обработки запросов службы имен DNS. }} | ||
Оставить значение по умолчанию для попытки найти обратные зоны: | Оставить значение по умолчанию для попытки найти обратные зоны: | ||
< | <syntaxhighlight lang="bash">Do you want to search for missing reverse zones? [yes]</syntaxhighlight> | ||
{{Note|Использование FreeIPA для управления обратными зонами не является обязательным. Для этой цели можно использовать внешнюю службу DNS.}} | {{Note|Использование FreeIPA для управления обратными зонами не является обязательным. Для этой цели можно использовать внешнюю службу DNS.}} | ||
Далее система выведет информацию о конфигурации и попросит ее подтвердить: | Далее система выведет информацию о конфигурации и попросит ее подтвердить: | ||
< | <syntaxhighlight lang="bash">The IPA Master Server will be configured with: | ||
Hostname: ipa.example.test | Hostname: ipa.example.test | ||
IP address(es): 192.168.0.113 | IP address(es): 192.168.0.113 | ||
Строка 78: | Строка 128: | ||
Reverse zone(s): 0.168.192.in-addr.arpa. | Reverse zone(s): 0.168.192.in-addr.arpa. | ||
Continue to configure the system with these values? [no]: yes</ | Continue to configure the system with these values? [no]: yes</syntaxhighlight> | ||
Начнется процесс конфигурации. После его завершения будет выведена подсказка со следующими шагами: | Начнется процесс конфигурации. После его завершения будет выведена подсказка со следующими шагами: | ||
< | <syntaxhighlight lang="bash">============================================================================== | ||
Setup complete | Setup complete | ||
Строка 103: | Строка 153: | ||
These files are required to create replicas. The password for these | These files are required to create replicas. The password for these | ||
files is the Directory Manager password | files is the Directory Manager password | ||
The ipa-server-install command was successful</ | The ipa-server-install command was successful</syntaxhighlight> | ||
==== В пакетном режиме ==== | ==== В пакетном режиме ==== | ||
Строка 109: | Строка 159: | ||
Пример команды установки сервера FreeIPA в пакетном режиме: | Пример команды установки сервера FreeIPA в пакетном режиме: | ||
< | <syntaxhighlight lang="bash"># ipa-server-install -U --hostname=$(hostname) -r EXAMPLE.TEST -n example.test -p 12345678 -a 12345678 --setup-dns --no-forwarders --no-reverse</syntaxhighlight> | ||
Для пакетной установки необходимо указать следующие параметры: | Для пакетной установки необходимо указать следующие параметры: | ||
Строка 134: | Строка 184: | ||
Сертификаты, необходимые для установки сервера FreeIPA без центра сертификации (CA): | Сертификаты, необходимые для установки сервера FreeIPA без центра сертификации (CA): | ||
*Сертификат LDAP-сервера и закрытый ключ: | *Сертификат LDAP-сервера и закрытый ключ: | ||
**<tt>--dirsrv-cert-file</tt> для указания сертификата и файлов закрытого ключа | **<tt>--dirsrv-cert-file</tt> для указания сертификата и файлов закрытого ключа сервера LDAP; | ||
**<tt>--dirsrv-pin</tt> для указания пароля доступа к закрытому ключу; | **<tt>--dirsrv-pin</tt> для указания пароля доступа к закрытому ключу; | ||
*Сертификат веб-сервера Apache и закрытый ключ: | *Сертификат веб-сервера Apache и закрытый ключ: | ||
**<tt>--http-cert-file</tt> для сертификата и | **<tt>--http-cert-file</tt> для указания сертификата и файлов закрытого сервера Apache; | ||
**<tt>--http-pin</tt> для пароля доступа к закрытому ключу; | **<tt>--http-pin</tt> для указания пароля доступа к закрытому ключу; | ||
*полная цепочка сертификатов CA, выдавших сертификаты серверов LDAP и Apache: | *полная цепочка сертификатов CA, выдавших сертификаты серверов LDAP и Apache: | ||
**<tt>--dirsrv-cert-file</tt> и <tt>--http-cert-file</tt> для файлов сертификатов с полной цепочкой сертификатов ЦС или ее частью; | **<tt>--dirsrv-cert-file</tt> и <tt>--http-cert-file</tt> для файлов сертификатов с полной цепочкой сертификатов ЦС или ее частью; | ||
Строка 148: | Строка 198: | ||
**<tt>--no-pkinit</tt> — отключить шаги настройки pkinit. Если не предоставить сертификат PKINIT, {{cmd|ipa-server-install}} настроит сервер FreeIPA с локальным KDC с самоподписанным сертификатом. | **<tt>--no-pkinit</tt> — отключить шаги настройки pkinit. Если не предоставить сертификат PKINIT, {{cmd|ipa-server-install}} настроит сервер FreeIPA с локальным KDC с самоподписанным сертификатом. | ||
Файлы, предоставленные с помощью <tt>--dirsrv-cert-file</tt> и <tt>--http-cert-file</tt>, в | Файлы, предоставленные с помощью <tt>--dirsrv-cert-file</tt> и <tt>--http-cert-file</tt>, в сочетании с файлом, предоставленным с помощью <tt>--ca-cert-file</tt> должны содержать полную цепочку сертификатов CA, выдавших сертификаты сервера LDAP и Apache. | ||
==== Подготовка сертификатов для сервера FreeIPA ==== | ==== Подготовка сертификатов для сервера FreeIPA ==== | ||
Создать каталог для сертификатов: | Создать каталог для сертификатов: | ||
< | <syntaxhighlight lang="bash"># mkdir ~/test_ca</syntaxhighlight> | ||
Создать файл password.txt с паролем к закрытому ключу (длина пароля должна быть не меньше 8 символов): | Создать файл password.txt с паролем к закрытому ключу (длина пароля должна быть не меньше 8 символов): | ||
< | <syntaxhighlight lang="bash"># echo "SECret.123" > ~/test_ca/password.txt</syntaxhighlight> | ||
Создать базу данных NSS: | Создать базу данных NSS: | ||
< | <syntaxhighlight lang="bash"># certutil -d ~/test_ca -N -f ~/test_ca/password.txt</syntaxhighlight> | ||
Создать noise файл, заполненный случайными числами: | Создать noise файл, заполненный случайными числами: | ||
< | <syntaxhighlight lang="bash"># head -c20 /dev/random > ~/test_ca/noise.txt</syntaxhighlight> | ||
Выполнить экспорт переменной CERT_SERIAL: | Выполнить экспорт переменной CERT_SERIAL: | ||
< | <syntaxhighlight lang="bash"># export CERT_SERIAL=1</syntaxhighlight> | ||
Создать CA сертификат: | Создать CA сертификат: | ||
< | <syntaxhighlight lang="bash"># SKID="0x`openssl rand -hex 20`" | ||
# echo $SKID | # echo $SKID | ||
0xfa012b30b9407b0750b786ff5ed9f49ce3998622 | 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</ | # 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</syntaxhighlight> | ||
В ответ на запросы команды дать следующие ответы (на запрос «Enter value for the key identifier fields», следует ввести вывод команды {{cmd|echo $SKID}}): | В ответ на запросы команды дать следующие ответы (на запрос «Enter value for the key identifier fields», следует ввести вывод команды {{cmd|echo $SKID}}): | ||
< | <syntaxhighlight lang="bash"> 0 - Digital Signature | ||
1 - Non-repudiation | 1 - Non-repudiation | ||
5 - Cert signing key | 5 - Cert signing key | ||
Строка 182: | Строка 232: | ||
7 - Object Signing CA | 7 - Object Signing CA | ||
9 - done | 9 - done | ||
Is this a critical extension [y/N]? n </ | Is this a critical extension [y/N]? n </syntaxhighlight> | ||
Создать noise файл, заполненный случайными числами: | Создать noise файл, заполненный случайными числами: | ||
< | <syntaxhighlight lang="bash"># head -c20 /dev/random > ~/test_ca/noise.txt</syntaxhighlight> | ||
Создать запрос на сертификат (на запрос «Enter value for the key identifier fields», следует ввести вывод команды {{cmd|echo $SKID}}): | Создать запрос на сертификат (на запрос «Enter value for the key identifier fields», следует ввести вывод команды {{cmd|echo $SKID}}): | ||
< | <syntaxhighlight lang="bash"># SKID="0x`openssl rand -hex 20`" | ||
# echo $SKID | # echo $SKID | ||
0xb17caf72b46288bcc9c887c89894dc917e06f724 | 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 | # 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 --extSAN dns:ipa.example.test | ||
Generating key. This may take a few moments... | Generating key. This may take a few moments... | ||
Строка 198: | Строка 248: | ||
Is this a critical extension [y/N]? | Is this a critical extension [y/N]? | ||
n | n | ||
</ | </syntaxhighlight> | ||
Подписать запрос на сертификат: | Подписать запрос на сертификат: | ||
< | <syntaxhighlight lang="bash"># 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</ | # 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</syntaxhighlight> | ||
В ответ на запросы команды дать следующие ответы: | В ответ на запросы команды дать следующие ответы: | ||
< | <syntaxhighlight lang="bash"> 2 - Key encipherment | ||
9 - done | 9 - done | ||
Is this a critical extension [y/N]? n | Is this a critical extension [y/N]? n | ||
1 - SSL Server | 1 - SSL Server | ||
9 - done | 9 - done | ||
Is this a critical extension [y/N]? n</ | Is this a critical extension [y/N]? n</syntaxhighlight> | ||
{{Note|Можно так же создать отдельные сертификаты для серверов HTTP и Directory.}} | {{Note|Можно так же создать отдельные сертификаты для серверов HTTP и Directory.}} | ||
Строка 214: | Строка 264: | ||
==== Экспорт сертификатов в правильные форматы ==== | ==== Экспорт сертификатов в правильные форматы ==== | ||
Импортировать полученный сертификат (на запрос команды, следует ввести пароль к закрытому ключу): | Импортировать полученный сертификат (на запрос команды, следует ввести пароль к закрытому ключу): | ||
< | <syntaxhighlight lang="bash"># certutil -d ~/test_ca -A -i /tmp/servercert.pem -n Server-Cert -a -t ,, | ||
Enter Password or Pin for "NSS Certificate DB":</ | Enter Password or Pin for "NSS Certificate DB":</syntaxhighlight> | ||
Экспортировать сертификат в PKCS#12: | Экспортировать сертификат в PKCS#12: | ||
< | <syntaxhighlight lang="bash"># 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</ | pk12util: PKCS12 EXPORT SUCCESSFUL</syntaxhighlight> | ||
Экспортировать сертификат CA в формат PEM: | Экспортировать сертификат CA в формат PEM: | ||
< | <syntaxhighlight lang="bash"># certutil -d ~/test_ca -L -n "CA" -a > ~/test_ca/cacert.pem</syntaxhighlight> | ||
==== Установка CA-less IPA ==== | ==== Установка CA-less IPA ==== | ||
Установить пароль к закрытому ключу в значение переменной '''PSWD''': | Установить пароль к закрытому ключу в значение переменной '''PSWD''': | ||
< | <syntaxhighlight lang="bash"># export PSWD=$(cat ~/test_ca/password.txt)</syntaxhighlight> | ||
Установить CA-less IPA: | Установить CA-less IPA: | ||
< | <syntaxhighlight lang="bash"># ipa-server-install \ | ||
--http-cert-file ~/test_ca/servercert.p12 \ | --http-cert-file ~/test_ca/servercert.p12 \ | ||
--http-pin $PSWD \ | --http-pin $PSWD \ | ||
Строка 246: | Строка 296: | ||
* Configure Apache (httpd) | * Configure Apache (httpd) | ||
To accept the default shown in brackets, press the Enter key.</ | To accept the default shown in brackets, press the Enter key.</syntaxhighlight> | ||
На первый вопрос, нужно ли сконфигурировать DNS-сервер BIND ответить утвердительно: | На первый вопрос, нужно ли сконфигурировать DNS-сервер BIND, следует ответить утвердительно: | ||
< | <syntaxhighlight lang="bash">Do you want to configure integrated DNS (BIND)? [no]: yes</syntaxhighlight> | ||
Далее нужно указать имя узла, на котором будет установлен сервер FreeIPA, доменное имя и пространство Kerberos: | Далее нужно указать имя узла, на котором будет установлен сервер FreeIPA, доменное имя и пространство Kerberos: | ||
{{Note| Чтобы принять значение по умолчанию, необходимо нажать '''Enter'''.}} | {{Note| Чтобы принять значение по умолчанию, необходимо нажать '''Enter'''.}} | ||
< | <syntaxhighlight lang="bash">Server host name [ipa.example.test]: | ||
Please confirm the domain name [example.test]: | Please confirm the domain name [example.test]: | ||
Please provide a realm name [EXAMPLE.TEST]:</ | Please provide a realm name [EXAMPLE.TEST]:</syntaxhighlight> | ||
{{Attention|Эти имена нельзя изменить после завершения установки. }} | {{Attention|Эти имена нельзя изменить после завершения установки. }} | ||
Задать пароль для Directory Manager (cn=Directory Manager): | Задать пароль для Directory Manager (cn=Directory Manager): | ||
< | <syntaxhighlight lang="bash">Directory Manager password: | ||
Password (confirm):</ | Password (confirm):</syntaxhighlight> | ||
Задать пароль для администратора FreeIPA (будет создана учетная запись admin с правами администратора): | Задать пароль для администратора FreeIPA (будет создана учетная запись admin с правами администратора): | ||
< | <syntaxhighlight lang="bash">IPA admin password: | ||
Password (confirm):</ | Password (confirm):</syntaxhighlight> | ||
Для настройки DNS на первый запрос, нужно ли настроить перенаправления, ответить | Для настройки DNS на первый запрос, нужно ли настроить перенаправления, необходимо ответить «да»: | ||
< | <syntaxhighlight lang="bash">Do you want to configure DNS forwarders? [yes]:</syntaxhighlight> | ||
Система предложит сначала использовать DNS-серверы из настроек сети (если они прописаны) — если это устроит, оставить значение по умолчанию: | Система предложит сначала использовать DNS-серверы из настроек сети (если они прописаны) — если это устроит, можно оставить значение по умолчанию: | ||
< | <syntaxhighlight lang="bash">Do you want to configure these servers as DNS forwarders? [yes]:</syntaxhighlight> | ||
Также можно добавить дополнительные серверы: | Также можно добавить дополнительные серверы: | ||
< | <syntaxhighlight lang="bash">Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.8.8</syntaxhighlight> | ||
{{Note|Этот шаг необходим в том случае, если предполагается использовать внешний сервер для обработки запросов службы имен DNS. }} | {{Note|Этот шаг необходим в том случае, если предполагается использовать внешний сервер для обработки запросов службы имен DNS. }} | ||
Оставить значение по умолчанию для попытки найти обратные зоны: | Оставить значение по умолчанию для попытки найти обратные зоны: | ||
< | <syntaxhighlight lang="bash">Do you want to search for missing reverse zones? [yes]</syntaxhighlight> | ||
{{Note|Использование FreeIPA для управления обратными зонами не является обязательным. Для этой цели можно использовать внешнюю службу DNS.}} | {{Note|Использование FreeIPA для управления обратными зонами не является обязательным. Для этой цели можно использовать внешнюю службу DNS.}} | ||
Далее система выведет информацию о конфигурации и попросит ее подтвердить: | Далее система выведет информацию о конфигурации и попросит ее подтвердить: | ||
< | <syntaxhighlight lang="bash">The IPA Master Server will be configured with: | ||
Hostname: ipa.example.test | Hostname: ipa.example.test | ||
IP address(es): 192.168.0.113 | IP address(es): 192.168.0.113 | ||
Строка 294: | Строка 344: | ||
Reverse zone(s): 0.168.192.in-addr.arpa. | Reverse zone(s): 0.168.192.in-addr.arpa. | ||
Continue to configure the system with these values? [no]: yes</ | Continue to configure the system with these values? [no]: yes</syntaxhighlight> | ||
Начнется процесс конфигурации. После его завершения будет выведена подсказка со следующими шагами: | Начнется процесс конфигурации. После его завершения будет выведена подсказка со следующими шагами: | ||
< | <syntaxhighlight lang="bash">============================================================================== | ||
Setup complete | Setup complete | ||
Строка 316: | Строка 366: | ||
and the web user interface. | and the web user interface. | ||
The ipa-server-install command was successful</ | The ipa-server-install command was successful</syntaxhighlight> | ||
== Завершение установки == | == Завершение установки == | ||
Строка 322: | Строка 372: | ||
*добавить делегирование DNS из родительского домена в домен DNS FreeIPA. Например, если DNS-домен FreeIPA — ipa.example.test, добавьте запись сервера имен (NS) в родительский домен example.test; | *добавить делегирование DNS из родительского домена в домен DNS FreeIPA. Например, если DNS-домен FreeIPA — ipa.example.test, добавьте запись сервера имен (NS) в родительский домен example.test; | ||
*добавить запись службы _ntp._udp (SRV) для сервера времени в DNS (Наличие записи SRV для сервера времени только что установленного сервера FreeIPA в DNS гарантирует, что будущие установки реплик и клиентов будут автоматически настроены для синхронизации с сервером времени, используемым этим первичным сервером FreeIPA): | *добавить запись службы _ntp._udp (SRV) для сервера времени в DNS (Наличие записи SRV для сервера времени только что установленного сервера FreeIPA в DNS гарантирует, что будущие установки реплик и клиентов будут автоматически настроены для синхронизации с сервером времени, используемым этим первичным сервером FreeIPA): | ||
*:< | *:<syntaxhighlight lang="bash"># ipa dnsrecord-add example.test _ntp._udp --srv-priority=0 --srv-weight=100 --srv-port=123 --srv-target=ipa.example.test</syntaxhighlight> | ||
Убедиться, что сервер FreeIPA работает: | Убедиться, что сервер FreeIPA работает: | ||
< | <syntaxhighlight lang="bash">$ kinit admin | ||
Password for admin@EXAMPLE.TEST:</ | Password for admin@EXAMPLE.TEST:</syntaxhighlight> | ||
< | <syntaxhighlight lang="bash">$ klist | ||
Ticket cache: KEYRING:persistent:500:500 | Ticket cache: KEYRING:persistent:500:500 | ||
Default principal: admin@EXAMPLE.TEST | Default principal: admin@EXAMPLE.TEST | ||
Valid starting Expires Service principal | Valid starting Expires Service principal | ||
26.01.2022 12:08:51 27.01.2022 12:08:47 krbtgt/EXAMPLE.TEST@EXAMPLE.TEST</ | 26.01.2022 12:08:51 27.01.2022 12:08:47 krbtgt/EXAMPLE.TEST@EXAMPLE.TEST</syntaxhighlight> | ||
== Отладочная информация == | == Отладочная информация == | ||
Строка 340: | Строка 390: | ||
*{{path|/var/log/ipaserver-install.log}} | *{{path|/var/log/ipaserver-install.log}} | ||
*{{path|/var/log/httpd2/error_log}} | *{{path|/var/log/httpd2/error_log}} | ||
*{{path|var/log/dirsrv/slapd-INSTANCE-NAME/access}} | *{{path|/var/log/dirsrv/slapd-INSTANCE-NAME/access}} | ||
*{{path|/var/log/dirsrv/slapd-INSTANCE-NAME/errors}} | *{{path|/var/log/dirsrv/slapd-INSTANCE-NAME/errors}} | ||
При установке CA отладочную информация также можно просмотреть в: | При установке CA отладочную информация также можно просмотреть в: | ||
Строка 349: | Строка 398: | ||
*{{path|/var/log/pki/pki-tomcat/ca/debug.$DATE.log}} | *{{path|/var/log/pki/pki-tomcat/ca/debug.$DATE.log}} | ||
*{{path|/var/log/pki/pki-tomcat/ca/signedAudit/ca_audit}} | *{{path|/var/log/pki/pki-tomcat/ca/signedAudit/ca_audit}} | ||
*{{path|/var/log/pki/pki-tomcat/ca/system}}, {{path|/var/log/pki/pki-tomcat/ca/transactions}}, {{path|/var/log/pki/pki-tomcat/catalina.$DATE.log}} | *{{path|/var/log/pki/pki-tomcat/ca/system}}, {{path|/var/log/pki/pki-tomcat/ca/transactions}}, {{path|/var/log/pki/pki-tomcat/catalina.$DATE.log}} | ||
== Удаление неудачной установки сервера FreeIPA == | == Удаление неудачной установки сервера FreeIPA == | ||
Строка 357: | Строка 406: | ||
Удалить частичную конфигурацию сервера FreeIPA: | Удалить частичную конфигурацию сервера FreeIPA: | ||
< | <syntaxhighlight lang="bash"># ipa-server-install --uninstall</syntaxhighlight> | ||
{{Note|Если ошибки при установке сервера FreeIPA остаются, следует переустановить ОС. Одним из требований для установки сервера FreeIPA является чистая система без каких-либо настроек.}} | {{Note|Если ошибки при установке сервера FreeIPA остаются, следует переустановить ОС. Одним из требований для установки сервера FreeIPA является чистая система без каких-либо настроек.}} | ||
== Удаление сервера FreeIPA == | |||
Процедура удаления сервера FreeIPA ipabackup.example.test: | |||
#Если в среде FreeIPA используется интегрированный DNS, необходимо убедиться, что ipabackup.example.test не является единственным DNS-сервером в состоянии enabled: | |||
#:<syntaxhighlight lang="bash"># ipa server-role-find --role 'DNS server' | |||
---------------------------------------- | |||
установлено соответствие 2 ролей сервера | |||
---------------------------------------- | |||
Имя сервера: ipa.example.test | |||
Имя роли: DNS server | |||
Состояние роли: enabled | |||
Имя сервера: ipabackup.example.test | |||
Имя роли: DNS server | |||
Состояние роли: enabled | |||
--------------------------------- | |||
Количество возвращённых записей 2 | |||
---------------------------------</syntaxhighlight> | |||
#:Если ipabackup.example.test — единственный DNS-сервер в топологии, следует добавить роль DNS-сервера на другой сервер FreeIPA (см. {{cmd|man ipa-dns-install(1)}}). | |||
#Если в среде используется интегрированный CA: | |||
#*убедиться, что ipabackup.example.test не является единственным CA в состоянии enabled: | |||
#*:<syntaxhighlight lang="bash"># ipa server-role-find --role 'CA server' | |||
---------------------------------------- | |||
установлено соответствие 2 ролей сервера | |||
---------------------------------------- | |||
Имя сервера: ipa.example.test | |||
Имя роли: CA server | |||
Состояние роли: enabled | |||
Имя сервера: ipabackup.example.test | |||
Имя роли: CA server | |||
Состояние роли: enabled | |||
--------------------------------- | |||
Количество возвращённых записей 2 | |||
---------------------------------</syntaxhighlight> | |||
#*:Если ipabackup.example.test — единственный CA в топологии, следует добавить роль CA-сервера на другой сервер FreeIPA (см. {{cmd|man ipa-ca-install(1)}}). | |||
#*если в среде были активированы хранилища (enabled vaults), убедиться что ipabackup.example.test не является единственным включенным сервером Key Recovery Authority (KRA): | |||
#*:<syntaxhighlight lang="bash"># ipa server-role-find --role 'KRA server' | |||
---------------------------------------- | |||
установлено соответствие 2 ролей сервера | |||
---------------------------------------- | |||
Имя сервера: ipa.example.test | |||
Имя роли: KRA server | |||
Состояние роли: absent | |||
Имя сервера: ipabackup.example.test | |||
Имя роли: KRA server | |||
Состояние роли: absent | |||
--------------------------------- | |||
Количество возвращённых записей 2 | |||
---------------------------------</syntaxhighlight> | |||
#*:Если ipabackup.example.test — единственный сервер KRA в топологии, следует добавить роль сервера KRA на другой сервер FreeIPA (см. {{cmd|man ipa-kra-install(1)}}). | |||
#*убедиться, что ipabackup.example.test не является сервером обновления CA: | |||
#*:<syntaxhighlight lang="bash"># ipa config-show | grep 'CA renewal'</syntaxhighlight> | |||
#*:Если ipabackup.example.test является сервером обновления CA, необходимо переместить роль сервера обновления CA на другой сервер. | |||
#*убедиться, что ipabackup.example.test не является издателем текущего списка отзыва сертификатов (CRL): | |||
#*:<syntaxhighlight lang="bash"># ipa-crlgen-manage status</syntaxhighlight> | |||
#*:Если вывод команды показывают, что генерация CRL на сервере ipabackup.example.test включена, следует переместить роль издателя CRL на другой сервер. | |||
#Подключиться к другому серверу в топологии: | |||
#:<syntaxhighlight lang="bash">$ ssh ipa_user@another_server</syntaxhighlight> | |||
#Получить учетные данные администратора FreeIPA: | |||
#:<syntaxhighlight lang="bash">$ kinit admin</syntaxhighlight> | |||
#Удалить сервер ipabackup.example.test из топологии: | |||
#:<syntaxhighlight lang="bash">$ ipa server-del ipabackup.example.test</syntaxhighlight> | |||
#Вернуться на ipabackup.example.test и удалить FreeIPA: | |||
#:<syntaxhighlight lang="bash"># ipa-server-install --uninstall</syntaxhighlight> | |||
#Далее необходимо убедиться, что все записи DNS сервера имен (NS), указывающие на ipabackup.example.test, удалены из ваших зон DNS. | |||
[[Категория:FreeIPA]] | [[Категория:FreeIPA]] |
Текущая версия от 16:17, 11 сентября 2024
В данном разделе рассмотрена установка сервера FreeIPA с доменом EXAMPLE.TEST в локальной сети 192.168.0.0/24.
Системные требования
Сервер FreeIPA следует устанавливать в чистой системе, в которой отсутствуют какие-либо пользовательские настройки для служб: DNS, Kerberos, Apache и Directory Server.
FreeIPA при настройке домена перезаписывает системные файлы. FreeIPA создает резервные копии исходных системных файлов в /var/lib/ipa/sysrestore/. При удалении сервера FreeIPA, эти файлы восстанавливаются.
RAM
Для установки с CA требуется минимально 1,2 ГБ RAM. Для демонстрационной/тестовой системы рекомендуется 2 ГБ.
Типичные требования к оперативной памяти:
- для 10 000 пользователей и 100 групп: не менее 4 ГБ RAM и 4 ГБ Swap.
- для 100 000 пользователей и 50 000 групп: не менее 16 ГБ RAM и 4 ГБ Swap.
DNS
Без правильно настроенной конфигурации DNS не будут работать должным образом Kerberos и SSL.
Установщик FreeIPA довольно требователен к настройке DNS. Установщик выполняет следующие проверки:
- имя узла не может быть localhost или localhost6.
- имя узла должно быть полным (ipa.example.test)
- имя узла должно быть разрешимым.
- обратный адрес должен совпадать с именем хоста.
Не используйте существующий домен, если вы не являетесь владельцем домена. Рекомендуется использовать зарезервированный домен верхнего уровня из RFC2606 для частных тестовых установок, например ipa.test.
IPv6
В ядре должен быть включен протокол IPv6. Если IPv6 отключен, подключаемый модуль CLDAP, используемый службами FreeIPA, не инициализируется.
Подготовка сервера
Для корректной работы сервера необходимо, задать ему полное доменное имя (FQDN). Имя серверу можно назначить командой:
# hostnamectl set-hostname ipa.example.test
Нужно отключить работающий на порту 8080 ahttpd во избежание конфликтов с разворачиваемым tomcat и отключить HTTPS в Apache2:
# service ahttpd stop
# a2dissite 000-default_https
# a2disport https
# service httpd2 condreload
Для ускорения установки можно установить демон энтропии haveged:
# apt-get install haveged
# systemctl enable --now haveged
Установка пакетов
Установить пакет freeipa-server:
# apt-get install freeipa-server
Если сервер FreeIPA должен включать DNS-сервер, необходимо также установить пакет freeipa-server-dns:
# apt-get install freeipa-server-dns
Установка сервера
С интегрированным DNS, с интегрированным CA в качестве корневого CA
Плюсы установки сервера FreeIPA со встроенным DNS:
- можно автоматизировать большую часть обслуживания и управления записями DNS, используя инструменты FreeIPA. Например, записи DNS SRV создаются во время установки, а затем автоматически обновляются.
- можно иметь стабильное соединение с остальной частью Интернета, настроив глобальные серверы пересылки во время установки сервера FreeIPA. Глобальные серверы пересылки также полезны для доверительных отношений с Active Directory.
- можно настроить обратную зону DNS, чтобы электронные письма из вашего домена не считались спамом почтовыми серверами за пределами домена FreeIPA.
Ограничения установки сервера FreeIPA со встроенным DNS:
- FreeIPA DNS не предназначен для использования в качестве DNS-сервера общего назначения. Некоторые расширенные функции DNS не поддерживаются.
Интерактивная установка
Для запуска интерактивной установки выполнить команду:
# ipa-server-install
На первый вопрос, нужно ли сконфигурировать DNS-сервер BIND, следует ответить утвердительно:
Do you want to configure integrated DNS (BIND)? [no]: yes
Далее нужно указать имя узла, на котором будет установлен сервер 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):
Для настройки DNS на первый запрос, нужно ли настроить перенаправления, необходимо ответить «да»:
Do you want to configure DNS forwarders? [yes]:
Система предложит сначала использовать DNS-серверы из настроек сети (если они прописаны) — если это устроит, можно оставить значение по умолчанию:
Do you want to configure these servers as DNS forwarders? [yes]:
Также можно добавить дополнительные серверы:
Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.8.8
Оставить значение по умолчанию для попытки найти обратные зоны:
Do you want to search for missing reverse zones? [yes]
Далее система выведет информацию о конфигурации и попросит ее подтвердить:
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
В пакетном режиме
Пример команды установки сервера 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-имя этого сервера.
Чтобы установить сервер со встроенным DNS, должны также быть добавлены следующие параметры:
- --setup-dns — создать зону DNS, если она еще не существует, и настроить DNS-сервер;
- --forwarder или --no-forwarders — в зависимости от того, нужно ли настроить серверы пересылки DNS или нет;
- --auto-reverse или --no-reverse — в зависимости от того, нужно ли настроить автоматическое обнаружение обратных зон DNS, которые должны быть созданы в FreeIPA DNS, или отключить автоматическое определение обратных зон.
Установка сервера FreeIPA в режиме CA-less
В этом разделе описывается, как можно установить сервер FreeIPA без центра сертификации (CA).
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.
Подготовка сертификатов для сервера FreeIPA
Создать каталог для сертификатов:
# 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 --extSAN dns:ipa.example.test
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
Экспорт сертификатов в правильные форматы
Импортировать полученный сертификат (на запрос команды, следует ввести пароль к закрытому ключу):
# 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
Установка 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.7
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)
To accept the default shown in brackets, press the Enter key.
На первый вопрос, нужно ли сконфигурировать DNS-сервер BIND, следует ответить утвердительно:
Do you want to configure integrated DNS (BIND)? [no]: yes
Далее нужно указать имя узла, на котором будет установлен сервер 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):
Для настройки DNS на первый запрос, нужно ли настроить перенаправления, необходимо ответить «да»:
Do you want to configure DNS forwarders? [yes]:
Система предложит сначала использовать DNS-серверы из настроек сети (если они прописаны) — если это устроит, можно оставить значение по умолчанию:
Do you want to configure these servers as DNS forwarders? [yes]:
Также можно добавить дополнительные серверы:
Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.8.8
Оставить значение по умолчанию для попытки найти обратные зоны:
Do you want to search for missing reverse zones? [yes]
Далее система выведет информацию о конфигурации и попросит ее подтвердить:
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
Завершение установки
После завершения сценария установки обновите записи 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:500:500
Default principal: admin@EXAMPLE.TEST
Valid starting Expires Service principal
26.01.2022 12:08:51 27.01.2022 12:08:47 krbtgt/EXAMPLE.TEST@EXAMPLE.TEST
Отладочная информация
При установке сервера 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
Удаление неудачной установки сервера FreeIPA
В случае сбоя установки сервера FreeIPA некоторые файлы конфигурации могут быть уже сконфигурированы. В этом случае дополнительные попытки установить сервер FreeIPA завершатся неудачно, и сценарий установки сообщает, что FreeIPA уже настроен. Чтобы решить эту проблему, следует удалить частичную конфигурацию сервера FreeIPA и повторить процесс установки.
Удалить частичную конфигурацию сервера FreeIPA:
# ipa-server-install --uninstall
Удаление сервера 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 (см. man ipa-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 (см. 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 на другой сервер.
- убедиться, что ipabackup.example.test не является единственным CA в состоянии enabled:
- Подключиться к другому серверу в топологии:
$ 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
- Далее необходимо убедиться, что все записи DNS сервера имен (NS), указывающие на ipabackup.example.test, удалены из ваших зон DNS.