FreeIPA - это, в основном, служба каталогов, где вы можете хранить информацию о ваших пользователях и их правах относительно входа в систему, стать пользователем root или просто выполнить определенную команду от имени root в ваших системах, которые присоединены к вашему домену FreeIPA, и многое другое. Хотя это главная особенность службы, существуют дополнительные компоненты, которые могут быть очень полезны, такие как DNS и PKI - это делает FreeIPA важной инфраструктурной частью системы на основе Linux. Он имеет приятный веб-интерфейс и мощный интерфейс командной строки.
Рассмотрим как установить и настроить автономный сервер FreeIPA в Red Hat Enterprise 7.5. Однако обратите внимание, что в производственной системе рекомендуется создать как минимум еще одну копию для обеспечения высокой доступности. Мы будем размещать сервис на виртуальной машине с 2 ядрами ЦП и 2 ГБ ОЗУ - в большой системе вам может потребоваться добавить еще несколько ресурсов. Наша лабораторная машина работает с RHEL 7.5, базовая установка. Давайте начнем.
Установить и настроить сервер FreeIPA довольно просто - уловка в планировании. Вам следует подумать о том, какие части программного стека вы хотите использовать, и в какой среде вы хотите запускать эти сервисы. Поскольку FreeIPA может обрабатывать DNS, если вы строите систему с нуля, было бы полезно предоставить FreeIPA весь домен DNS, где все клиентские машины будут вызывать серверы FreeIPA для DNS. Этот домен может быть поддоменом вашей инфраструктуры, вы даже можете установить поддомен только для серверов FreeIPA - но тщательно продумайте это, так как вы не сможете изменить домен позже. Не используйте существующий домен, FreeIPA является хозяином данного домена (установщик проверит, может ли домен быть разрешен, и есть ли у него запись SOA, отличная от самой себя).
PKI - это другой вопрос: если у вас уже есть CA (центр сертификации) в вашей системе, вы можете настроить FreeIPA в качестве подчиненного CA. С помощью Certmonger FreeIPA может автоматически обновлять клиентские сертификаты (например, SSL-сертификаты веб-сервера), что может оказаться полезным, но если в системе нет службы выхода в Интернет, вам может не понадобиться служба PKI FreeIPA совсем. Все зависит от варианта использования.
Значит планирование уже сделано. Мы хотим создать новую тестовую лабораторию, поэтому мы установим и настроим все функции FreeIPA, включая DNS и PKI с самозаверяющим сертификатом CA. FreeIPA может сгенерировать это для нас, нет необходимости создавать его с помощью таких инструментов, как openssl.
Требования
Сначала необходимо установить надежный источник NTP для сервера (FreeIPA будет действовать и в качестве NTP-сервера, но, естественно, нуждается в источнике), и запись в /etc/hosts
файле сервера, указывающую на себя:
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.147 rhel7.ipa.Ваше_имя.org rhel7
И имя хоста, указанное в файле hosts, должно быть полным доменным именем машины.
# hostname rhel7.ipa.Ваше_имя
Это важный шаг, не пропустите его. То же имя хоста, необходимое в сетевом файле:
# grep HOSTNAME /etc/sysconfig/network
HOSTNAME=rhel7.ipa.Ваше_имя
Установка пакетов
Необходимое программное обеспечение включено в ISO-образ сервера Red Hat Enterprise или канал подписки, никаких дополнительных репозиториев не требуется. В этой демонстрации есть набор локальных репозиториев с содержимым ISO-образа. Программный стек объединен, поэтому одна команда yum сделает:
# yum install ipa-server ipa-server-dns
При базовой установке yum предоставит длинный список зависимостей, включая Apache Tomcat, Apache Httpd, 389-ds (сервер LDAP) и так далее. После завершения yum откройте порты, необходимые на брандмауэре:
# firewall-cmd --add-service=freeipa-ldap
success
# firewall-cmd --add-service=freeipa-ldap --permanent
success
Настроить
Теперь давайте настроим наш новый сервер FreeIPA. Это займет время, но только для первой части, когда установщик запрашивает параметры. Большинство параметров могут быть переданы в качестве аргументов установщику, но мы не дадим никаких, таким образом мы сможем извлечь выгоду из предыдущих настроек.
# ipa-server-install
Файл журнала для этой установки можно найти в /var/log/ipaserver-install.log
Посмотреть этот файл для ознакомления можете по ссылке https://docs.google.com/document/d/1Hz5fq6aOZo3oVUKpHRJPmnxc82XczUnpmnTX1zh5-V4/edit?usp=sharing
Вывод установщика довольно длинный, вы можете видеть, как все компоненты настроены, перезапущены и проверены. В конце вывода есть некоторые шаги, необходимые для полной функциональности, но не для самого процесса установки.
Как указывает установщик, обязательно сделайте резервную копию сертификата CA и откройте дополнительные необходимые порты на брандмауэре.
Теперь давайте включим создание домашнего каталога при входе в систему:
# authconfig --enablemkhomedir –-update
верификация
Мы можем начать тестирование, если у нас есть работающий стек сервисов. Давайте проверим, сможем ли мы получить билет Kerberos для пользователя с правами администратора (с паролем, предоставленным пользователю с правами администратора во время установки):
# kinit admin
Password for admin@IPA.Ваше_имя.ORG
:
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: admin@IPA.Ваше_имя.ORG
Valid starting Expires Service principal
2018-06-24 21.44.30 2018-06-25 21.44.28 krbtgt/IPA.Ваше_имя.ORG@IPA.Ваше_имя.ORG
Хост-машина зарегистрирована в нашем новом домене, и правила по умолчанию предоставляют доступ ssh вышеупомянутому администратору для всех зарегистрированных хостов. Давайте проверим, работают ли эти правила, как ожидается, открыв ssh-соединение с localhost:
# ssh admin@localhost
Password:
Creating home directory for admin.
Last login: Sun Jun 24 21:41:57 2018 from localhost
$ pwd
/home/admin
$ exit
Давайте проверим состояние всего программного стека:
# ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
ntpd Service: RUNNING
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
И - с ранее приобретенным билетом Kerberos - запросите информацию об администраторе с помощью инструмента CLI:
# ipa user-find admin
--------------
1 user matched
--------------
User login: admin
Last name: Administrator
Home directory: /home/admin
Login shell: /bin/bash
Principal alias: admin@IPA.Ваше_имя.ORG
UID: 630200000
GID: 630200000
Account disabled: False
----------------------------
Number of entries returned 1
И, наконец, войдите в веб-страницу управления, используя учетные данные пользователя с правами администратора (машина, на которой запущен браузер, должна иметь возможность разрешать имя сервера FreeIPA). Используйте HTTPS, сервер будет перенаправлять, если используется простой HTTP. Поскольку мы установили самозаверяющий корневой сертификат, браузер предупредит нас об этом.
На странице по умолчанию после входа в систему отображается список наших пользователей, где теперь отображается только пользователь с правами администратора.
После этого мы выполнили нашу задачу, у нас есть работающий сервер FreeIPA, готовый для заполнения пользователями, хостами, сертификатами и различными правилами.