Что такое этот FreeIpa
FreeIpa (Free Identity Policy Audit) - открытый проект компании RedHat включающий в себя кучу других открытых проектов. Некоторые из них: 389 Directory Server, MIT Kerberos, NTP, DNS (bind), Dogtag certificate system. Присутствует возможность множественной репликации для отказоустойчивости. Поддержка множества интерфейсов управления (CLI, Web UI, XMLRPC и JSONRPC API) и Python SDK).
Для любителей Windows можно просто сказать, что это AD для Linux. Проект в целом доступен уже очень давно, но я к сожалению, узнал о нём совсем недавно. Основные функции, которые вы можете использовать:
- Централизованное управление учётными записями (одна учётка на все сервера)
- Управление правилами для sudo (что можно и что нельзя)
- Правила доступа к серверам по ssh
DNSсервер (как доп фича)- Центр сертификации
Web UI(в наше время полезная опция)- Интеграция с другими сервисами нуждающихся в авторизации (веб страницы,
vpnсервера) Ntpсервер
Т.е. если вы только начинаете строить свою сеть, то вы можете многое завязать на FreeIpa.
Для теста можно использовать официальную демо страницу.
Подготовка
В producton сети естественно рекомендуется иметь кластер из серверов FreeIpa для отказоустойчивости. В официальной документации рекомендуется иметь по 2-3 реплики (slave) в каждом из дата центров. Схему взаимодействий можно посмотреть тут. Настройка дополнительных соглашений о репликации гарантирует, что информация реплицируется не только между исходной репликой и главным сервером, но и между другими репликами.
В дальнейшем буду использовать такую схему:
| 1 | 2 |
|---|---|
| Имя домена | my.local |
| Master host | freeipa1.dc1.my.local (192.168.0.1) |
| Slave host 1 | freeipa2.dc1.my.local (192.168.0.2) |
| Slave host 2 | freeipa1.dc2.my.local (192.168.0.3) |
| Slave host 3 | freeipa2.dc2.my.local (192.168.0.4) |
.
Также замечу что я рассматривал вариант с установкой в уже production сети и у меня уже были сервера NTP, и все сервера синхронизировались с этими NTP. Поэтому я опускаю настройку функцию NTP сервера в FreeIpa. В целом там ничего сложного. Так что если у вас нет NTP сервера в сети, то включайте функцию Ntp сервера в FreeIpa.
Установка master сервера
Установка будет происходить на CentOS Stream (CentOS 8 уже лучше не использовать).
- Как обычно сперва обновляем систему и добавляем репозиторий
Epelsudo dnf install epel-release sudo dnf update - Добавляем модуль
Identity Managementsudo dnf module enable idm:DL1 sudo dnf distro-sync - Задаём имя сервера с доменном который будем поднимать
hostnamectl set-hostname freeipa1.dc1.my.local hostnamectl set-hostname freeipa1.dc1.my.local --static echo "192.168.0.1 freeipa1.dc1.my.local" >> /etc/hosts - Устанавливаем freeIPA и
bind(Будут выдаваться доменные имена серверам, вступившим в домен)sudo dnf install ipa-server ipa-server-dns - Настройка сервера freeIpa.
ipa-server-install --setup-dns - Отвечаем на запросы.
`Do you want to configure DNS forwarders? [yes]:` yes `Server host name []:` freeipa1.dc1.my.local `Please confirm the domain name []:` my.local `Please provide a realm name []:` MY.LOCAL `Directory Manager password:` password `IPA admin password:` password `Do you want to configure these servers as DNS forwarders? [yes]:` no `Enter an IP address for a DNS forwarder, or press Enter to skip:` (Задаём DNS сервера для пересылки, если надо конечно ) `Do you want to create reverse zone :` YES (Соглашаемся на создание обратных зон) - После финального YES о подтверждении настроек FreeIpa установится и выдаст уведомление о том, что нужно открыть порты
- Открываем порты на
firewallsudo firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent sudo firewall-cmd --reload - После всех этих процедур станет доступна вtб-консоль администрирования сервера FreeIpa, находящаяся по адресу: https://freeipa1.dc1.my.local
Установка первого slave сервера (сервер репликации)
- Как обычно сперва обновляем систему и добавляем репозиторий
Epelsudo dnf install epel-release sudo dnf update - Добавляем модуль
Identity Managementsudo dnf module enable idm:DL1 sudo dnf distro-sync - Задаём имя сервера с доменном который будем поднимать
hostnamectl set-hostname freeipa2.dc1.my.local hostnamectl set-hostname freeipa2.dc1.my.local --static echo "192.168.0.2 freeipa2.dc1.my.local" >> /etc/hosts - Устанавливаем freeIPA и
bind(Будут выдаваться доменные имена серверам, вступившим в домен)sudo dnf install ipa-server ipa-server-dns - Открываем порты на
firewallsudo firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent sudo firewall-cmd --reload - Прописываем
DNSсервером наш freeipa1.dc1.my.local - Выполняем ввод этого сервера в домен
sudo ipa-client-install - Отвечаем на вопросы
`Provide the domain name of your IPA server (ex: example.com):` my.local `Provide your IPA server name (ex: ipa.example.com):` freeipa1.dc1.my.local `User authorized to enroll computers:` admin `Password for admin@MY.LOCAL:` password - Если всё прошло то мы в веб консоли увидим добавленный сервер https://freeipa1.dc1.my.local/ipa/ui/#/e/host/search
- Выполняем установку репликации
LDAP-каталогаsudo ipa-replica-install - Устанавливаем репликацию
DNSзонsudo ipa-dns-install - Устанавливаем репликацию центра сертификации
sudo ipa-ca-install - Создаём группу с местоположением (DC1) для наших серверов https://freeipa1.dc1.my.local/ipa/ui/#/e/location/search
- Собственно добавляем эти сервера в группу DC1
На этом slave создан и можно посоздавать учетные записи, параллельно проверяя что они создаются на обоих серверах.
Установка второго slave сервера (сервер репликации)
- Как обычно сперва обновляем систему и добавляем репозиторий
Epelsudo dnf install epel-release sudo dnf update - Добавляем модуль
Identity Managementsudo dnf module enable idm:DL1 sudo dnf distro-sync - Задаём имя сервера с доменном который будем поднимать
hostnamectl set-hostname freeipa1.dc2.my.local hostnamectl set-hostname freeipa1.dc2.my.local --static echo "192.168.0.3 freeipa1.dc2.my.local" >> /etc/hosts - Устанавливаем freeIPA и
bind(Будут выдаваться доменные имена серверам, вступившим в домен)sudo dnf install ipa-server ipa-server-dns - Открываем порты на
firewallsudo firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent sudo firewall-cmd --reload - Прописываем
DNSсервером наш freeipa1.dc1.my.local - Выполняем ввод этого сервера в домен
sudo ipa-client-install - Отвечаем на вопросы
`Provide the domain name of your IPA server (ex: example.com):` my.local `Provide your IPA server name (ex: ipa.example.com):` freeipa1.dc1.my.local `User authorized to enroll computers:` admin `Password for admin@MY.LOCAL:` password - Если всё прошло то мы в веб консоли увидим добавленный сервер https://freeipa1.dc1.my.local/ipa/ui/#/e/host/search
- Выполняем установку репликации
LDAP-каталогаsudo ipa-replica-install - Устанавливаем репликацию
DNSзонsudo ipa-dns-install - Устанавливаем репликацию центра сертификации
sudo ipa-ca-install
Установка третьего slave сервера (сервер репликации)
- Как обычно сперва обновляем систему и добавляем репозиторий
Epelsudo dnf install epel-release sudo dnf update - Добавляем модуль
Identity Managementsudo dnf module enable idm:DL1 sudo dnf distro-sync - Задаём имя сервера с доменном который будем поднимать
hostnamectl set-hostname freeipa2.dc2.my.local hostnamectl set-hostname freeipa2.dc2.my.local --static echo "192.168.0.4 freeipa2.dc2.my.local" >> /etc/hosts - Устанавливаем freeIPA и
bind(Будут выдаваться доменные имена серверам, вступившим в домен)sudo dnf install ipa-server ipa-server-dns - Открываем порты на
firewallsudo firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent sudo firewall-cmd --reload - Прописываем
DNSсервером наш freeipa2.dc1.my.local - Выполняем ввод этого сервера в домен
sudo ipa-client-install - Отвечаем на вопросы
`Provide the domain name of your IPA server (ex: example.com):` my.local `Provide your IPA server name (ex: ipa.example.com):` freeipa1.dc1.my.local `User authorized to enroll computers:` admin `Password for admin@MY.LOCAL:` password - Если всё прошло то мы в веб консоли увидим добавленный сервер https://freeipa1.dc1.my.local/ipa/ui/#/e/host/search
- Выполняем установку репликации
LDAP-каталога(тут мастером для него будет уже slave в dc1 - freeipa2.dc1.my.local)sudo ipa-replica-install - Устанавливаем репликацию
DNSзонsudo ipa-dns-install - Устанавливаем репликацию центра сертификации
sudo ipa-ca-install - Создаём группу с местоположением (DC2) для наших серверов https://freeipa1.dc1.my.local/ipa/ui/#/e/location/search
- Собственно добавляем эти 2 сервера в группу DC2
- Также не лишним будет для сервера freeipa2.dc2.my.local вторичный
DNSустановить freeipa1.dc2.my.local, а для freeipa1.dc2.my.local - freeipa2.dc2.my.local и аналогично для серверов DC1


Комментарии