Что такое этот 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
уже лучше не использовать).
- Как обычно сперва обновляем систему и добавляем репозиторий
Epel
sudo dnf install epel-release sudo dnf update
- Добавляем модуль
Identity Management
sudo 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 установится и выдаст уведомление о том, что нужно открыть порты
- Открываем порты на
firewall
sudo 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 сервера (сервер репликации)
- Как обычно сперва обновляем систему и добавляем репозиторий
Epel
sudo dnf install epel-release sudo dnf update
- Добавляем модуль
Identity Management
sudo 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
- Открываем порты на
firewall
sudo 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 сервера (сервер репликации)
- Как обычно сперва обновляем систему и добавляем репозиторий
Epel
sudo dnf install epel-release sudo dnf update
- Добавляем модуль
Identity Management
sudo 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
- Открываем порты на
firewall
sudo 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 сервера (сервер репликации)
- Как обычно сперва обновляем систему и добавляем репозиторий
Epel
sudo dnf install epel-release sudo dnf update
- Добавляем модуль
Identity Management
sudo 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
- Открываем порты на
firewall
sudo 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
Комментарии