Задача
Наша цель – установить и настроить автономный FreeIPA-сервер на Red Hat Enterprise Linux.
Операционная система и версии программного обеспечения
- Операционная система: Red Hat Enterprise Linux 7.5
- Программное обеспечение: FreeIPA 4.5.4-10
Требования
Привилегированный доступ к целевому серверу, доступный репозиторий программного обеспечения.
Введение
FreeIPA – это, главным образом, служба каталогов, в которой вы можете хранить информацию о своих пользователях и их права на вход в систему, стать root или просто запускать определенную команду как root в своих системах, которые присоединились к вашему домену FreeIPA, и многое другое.
Хотя это основная функция службы, есть дополнительные компоненты, которые могут быть очень полезными, например DNS и PKI – это делает FreeIPA важной инфраструктурной частью системы на базе Linux.
Он имеет приятный веб-интерфейс и мощный интерфейс командной строки.
В этом уроке мы увидим, как установить и настроить автономный FreeIPA-сервер на Red Hat Enterprise Linux 7.5.
Обратите внимание, однако, что в производственной системе вам рекомендуется создать как минимум еще одну копию, чтобы обеспечить высокую доступность.
Мы будем размещать услугу на виртуальной машине с 2 ядрами процессора и 2 ГБ оперативной памяти – на большой системе вы можете захотеть добавить еще несколько ресурсов.
Наша лабораторная машина запускает RHEL 7.5, базовую установку.
Давайте начнем.
Установка и настройка FreeIPA-сервера довольно проста.
Вы должны подумать о том, какие части программного стека вы хотите использовать, и какова среда, в которой вы хотите запускать эти службы.
Поскольку FreeIPA может обрабатывать DNS, если вы строите систему с нуля, может быть полезно предоставить домен DNS в FreeIPA, где все клиентские машины будут вызывать серверы FreeIPA для DNS.
Этот домен может быть субдоменом вашей инфраструктуры, вы даже можете установить субдомен только для серверов FreeIPA, но подумайте об этом корыте, потому что вы не можете изменить домен позже. Не используйте существующий домен, FreeIPA должен думать, что он является хозяином данного домена (установщик проверяет, может ли домен быть разрешен, и если у него есть другая запись SOA).
PKI – это еще один вопрос: если у вас уже есть CA (центр сертификации) в вашей системе, вы можете настроить FreeIPA как подчиненный ЦС.
С помощью 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.linuxconfig.org rhel7
И имя хоста, указанное в файле hosts, должно быть FQDN машины.
# hostname rhel7.ipa.linuxconfig.org
Это важный шаг, не пропустите его. В сетевом файле необходимо указать одно и то же имя хоста:
# grep HOSTNAME /etc/sysconfig/network HOSTNAME=rhel7.ipa.linuxconfig.orgх
Установка пакетов
Необходимое программное обеспечение включено в образ ISO или канал подписки сервера Red Hat Enterprise Linux без дополнительных репозиториев.
В этой демонстрации есть локальный набор репозитория, который содержит содержимое образа ISO.
Программный стек объединяется вместе, поэтому будет выполняться одна команда yum:
# yum install ipa-server ipa-server-dns
На базовой установке yum предоставит длинный список зависимостей, включая Apache Tomcat, Apache Httpd, 389-ds (сервер LDAP) и т. д.
После окончания yum откройте порты, необходимые для брандмауэра:
Настройка
Теперь давайте настроим наш новый FreeIPA-сервер. Это потребует времени, но вам нужно это только для первой части, когда установщик запрашивает параметры.
Большинство параметров могут быть переданы в качестве аргументов установщику, но мы не будем их выдавать, поэтому мы можем воспользоваться предыдущими настройками.
# ipa-server-install The log file for this installation can be found in /var/log/ipaserver-install.log ============================================================================== This program will set up the IPA Server. This includes: * Configure a stand-alone CA (dogtag) for certificate management * Configure the Network Time Daemon (ntpd) * Create and configure an instance of Directory Server * Create and configure a Kerberos Key Distribution Center (KDC) * Configure Apache (httpd) * Configure the KDC to enable PKINIT To accept the default shown in brackets, press the Enter key. WARNING: conflicting time&date synchronization service 'chronyd' will be disabled in favor of ntpd ## we'll use the integrated DNS server Do you want to configure integrated DNS (BIND)? [no]: yes Enter the fully qualified domain name of the computer on which you're setting up server software. Using the form <hostname>.<domainname> Example: master.example.com. ## pressing 'enter' means we accept the default in the bracelets ## this is the reason we set up the proper FDQN for the host Server host name [rhel7.ipa.linuxconfig.org]: Warning: skipping DNS resolution of host rhel7.ipa.linuxconfig.org The domain name has been determined based on the host name. ## now we don't have to type/paste domain name ## and the installer don’t need to try setting the host’s name Please confirm the domain name [ipa.linuxconfig.org]: The kerberos protocol requires a Realm name to be defined. This is typically the domain name converted to uppercase. ## the Kerberos realm is mapped from the domain name Please provide a realm name [IPA.LINUXCONFIG.ORG]: Certain directory server operations require an administrative user. This user is referred to as the Directory Manager and has full access to the Directory for system management tasks and will be added to the instance of directory server created for IPA. The password must be at least 8 characters long. ## Directory Manager user is for the low-level operations, like creating replicas Directory Manager password: ## use a very strong password in a production environment! Password (confirm): The IPA server requires an administrative user, named 'admin'. This user is a regular system account used for IPA server administration. ## admin is the "root" of the FreeIPA system – but not the LDAP directory IPA admin password: Password (confirm): Checking DNS domain ipa.linuxconfig.org., please wait ... ## we could setup forwarders, but this can be set later as well Do you want to configure DNS forwarders? [yes]: no No DNS forwarders configured Do you want to search for missing reverse zones? [yes]: no The IPA Master Server will be configured with: Hostname: rhel7.ipa.linuxconfig.org IP address(es): 192.168.122.147 Domain name: ipa.linuxconfig.org Realm name: IPA.LINUXCONFIG.ORG BIND DNS server will be configured to serve IPA domain with: Forwarders: No forwarders Forward policy: only Reverse zone(s): No reverse zone Continue to configure the system with these values? [no]: yes ## at this point the installer will work on its own, ## and complete the process in a few minutes. The perfect time for coffee. The following operations may take some minutes to complete. Please wait until the prompt is returned. Configuring NTP daemon (ntpd) [1/4]: stopping ntpd ...
Вывод установщика довольно длинный, вы можете видеть, как все компоненты настроены, перезапущены и проверены.
В конце вывода есть несколько шагов, необходимых для полной функциональности, но не для самого процесса установки.
... The ipa-client-install command was successful ============================================================================== 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
Как указывает установщик, обязательно создайте резервную копию сертификата CA и откройте дополнительные необходимые порты на брандмауэре.
Теперь давайте разрешим создание домашней директории при входе в систему:
# authconfig --enablemkhomedir –-update
Верификация
Мы можем начать тестирование, если у нас есть рабочий стек службы.
Давайте проверим, можем ли мы получить билет Kerberos для пользователя admin (с паролем, предоставленным пользователю admin во время установки):
# kinit admin Password for admin@IPA.LINUXCONFIG.ORG : # klist Ticket cache: KEYRING:persistent:0:0 Default principal: admin@IPA.LINUXCONFIG.ORG Valid starting Expires Service principal 2018-06-24 21.44.30 2018-06-25 21.44.28 krbtgt/IPA.LINUXCONFIG.ORG@IPA.LINUXCONFIG.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
запросите информацию об администраторе с помощью инструмента 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.LINUXCONFIG.ORG UID: 630200000 GID: 630200000 Account disabled: False ---------------------------- Number of entries returned 1
И, наконец, войдите на веб-страницу управления с использованием учетных данных администратора (машина, работающая в браузере, должна иметь возможность разрешить имя сервера FreeIPA).
Используйте HTTPS, сервер будет перенаправлять запрос, если используется простой HTTP.
Когда мы установили самозаверяющий корневой сертификат, браузер предупредит нас об этом.
Задача Наша цель – в начале
??
Very good post! We will be linking to this particularly great post on our website.
Keep up the good writing.