bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Розгортання FreeIPA на

calendar_month Sep 04, 2026 schedule 19 хв. читання visibility 37 переглядів
Развёртывание FreeIPA на VPS для централизованного управления идентификацией
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Розгортання FreeIPA на VPS для централізованого керування ідентифікацією

TL;DR

У цьому посібнику ми покроково налаштуємо FreeIPA на віртуальному приватному сервері (VPS) для створення централізованої системи керування ідентифікацією та доступом. FreeIPA об'єднує Kerberos, LDAP, DNS та Certificate Authority, надаючи єдину точку для автентифікації користувачів і машин, керування доступом та видачі сертифікатів у вашій інфраструктурі на базі Linux.

  • Ви розгорнете FreeIPA 4.10 на Ubuntu Server 24.04 LTS.
  • Налаштуєте базову інфраструктуру ідентифікації, включаючи DNS та Kerberos.
  • Навчитеся керувати користувачами, групами та хостами через веб-інтерфейс та командний рядок.
  • Забезпечите безпеку сервера за допомогою UFW та Fail2ban.
  • Отримаєте рекомендації щодо резервного копіювання та обслуговування FreeIPA.

Що ми налаштовуємо і навіщо

Схема: Що ми налаштовуємо і навіщо
Схема: Що ми налаштовуємо і навіщо

FreeIPA (Identity, Policy and Audit) — це інтегроване рішення з відкритим вихідним кодом для централізованого керування ідентифікацією, політиками та аудитом у переважно Linux/Unix-середовищах. По суті, це потужний інструментарій, що об'єднує в собі кілька ключових компонентів: Kerberos для автентифікації, LDAP (389 Directory Server) для зберігання інформації про ідентифікацію, DNS для розв'язання імен та Certificate Authority (Dogtag) для керування сертифікатами.

Розгортаючи FreeIPA на VPS, ви створюєте єдину точку керування для всіх ваших серверів, робочих станцій та застосунків. Це означає, що користувачі можуть входити на різні машини за допомогою одних і тих самих облікових даних (Single Sign-On, SSO), а адміністратори отримують централізований контроль над доступом, групами та політиками безпеки. Замість того, щоб створювати локальних користувачів на кожній машині або вручну синхронізувати паролі, FreeIPA автоматизує цей процес, значно спрощуючи адміністрування та підвищуючи безпеку.

У підсумку читач отримає повністю функціонуючу систему FreeIPA, здатну керувати ідентифікацією для десятків і сотень систем. Ви зможете створювати користувачів, групи, призначати їм права доступу (наприклад, через HBAC — Host-Based Access Control), керувати DNS-записами для вашої інфраструктури та навіть видавати TLS-сертифікати для внутрішніх сервісів. Це ідеальне рішення для невеликих і середніх команд, яким потрібна потужна, але керована система IDM без витрат на пропрієтарні рішення або складність налаштування окремих компонентів.

Існують альтернативи FreeIPA. Найбільш відомі з них: OpenLDAP (як самостійний компонент), Microsoft Active Directory (для Windows-середовищ, але з можливістю інтеграції з Linux), а також хмарні рішення, такі як Okta, Auth0 або Azure AD. Вибір self-hosted рішення на VPS, такого як FreeIPA, зумовлений кількома факторами:

  • Повний контроль: Ви повністю контролюєте дані, конфігурацію та безпеку вашої системи ідентифікації, що є критичним для деяких організацій.
  • Економія: Відсутність щомісячних платежів за хмарні сервіси може значно знизити операційні витрати, особливо за наявності вже оплаченого VPS.
  • Гнучкість: Можливість тонкого налаштування під конкретні потреби, інтеграція з локальними сервісами, які можуть не мати прямих конекторів до хмарних IDM.
  • Конфіденційність: Дані залишаються на вашому сервері, що важливо для дотримання регуляторних вимог та політики конфіденційності.

Розгортання FreeIPA на VPS — це баланс між функціональністю корпоративного рівня та доступністю для індивідуальних розробників, стартапів або ентузіастів.

Який VPS-конфіг потрібен для цього завдання

Схема: Який VPS-конфіг потрібен для цього завдання
Схема: Який VPS-конфіг потрібен для цього завдання

Для розгортання FreeIPA, особливо в тестовому або невеликому виробничому середовищі, вимоги до ресурсів є відносно помірними. Однак, як і для будь-якої критично важливої інфраструктурної служби, рекомендується мати певний запас.

Мінімальні вимоги:

  • CPU: 2 ядра. FreeIPA активно використовує процесор для обробки запитів Kerberos та LDAP, а також для операцій із сертифікатами.
  • RAM: 4 ГБ. Це критичний параметр. LDAP-сервер та Kerberos-KDC можуть споживати значний обсяг пам'яті, особливо при високому навантаженні або великій кількості користувачів.
  • Диск: 50 ГБ SSD. SSD значно прискорює роботу бази даних LDAP та інших компонентів. 50 ГБ достатньо для операційної системи, FreeIPA та невеликого обсягу логів. Для більших розгортань або тривалого зберігання логів знадобиться більше.
  • Мережа: 100 Мбіт/с. Для більшості завдань цього достатньо, оскільки трафік FreeIPA зазвичай не дуже інтенсивний, якщо тільки ви не реплікуєте його між географічно віддаленими вузлами.

Рекомендований VPS-план для середнього використання (до 1000 користувачів/хостів):

  • CPU: 4 ядра.
  • RAM: 8 ГБ.
  • Диск: 100-150 ГБ SSD.
  • Мережа: 1 Гбіт/с.

Для цих характеристик можна розглянути VPS із зазначеними характеристиками. Важливо, щоб провайдер надавав можливість налаштування реверсних DNS-записів (PTR), оскільки це критично для коректної роботи Kerberos.

Коли потрібен dedicated, а не VPS:

Dedicated-сервер стає кращим для FreeIPA у таких випадках:

  • Дуже велика кількість користувачів/хостів: Понад 5000-10000 об'єктів у каталозі.
  • Висока інтенсивність запитів: Якщо FreeIPA використовується для автентифікації багатьох високонавантажених застосунків або сервісів.
  • Вимоги до продуктивності I/O: При дуже активних операціях читання/запису в LDAP-каталог, коли продуктивність SSD на VPS може стати вузьким місцем.
  • Специфічні вимоги безпеки або відповідності: Деякі регуляторні вимоги можуть диктувати використання фізично ізольованого обладнання.
  • Необхідність апаратного забезпечення: Наприклад, для використання апаратних модулів безпеки (HSM) для захисту ключів CA.

У таких сценаріях відповідний dedicated сервер забезпечить необхідну продуктивність та ізоляцію.

Локація: на що впливає

  • Затримка (Latency): Вибирайте локацію VPS, яка географічно близька до більшості ваших користувачів та клієнтів FreeIPA. Це мінімізує затримку при автентифікації та доступі до каталогу.
  • Геополітика та законодавство: Залежно від чутливості даних та вимог до їх зберігання, юрисдикція, в якій знаходиться ваш VPS, може бути критичною. Враховуйте закони про захист даних (наприклад, GDPR).
  • Мережева зв'язність: Деякі локації мають кращу зв'язність з певними регіонами світу, що може бути важливим для глобально розподілених команд.

Підготовка сервера

Схема: Підготовка сервера
Схема: Підготовка сервера

Перед встановленням FreeIPA необхідно виконати базове налаштування операційної системи. У цьому посібнику ми будемо використовувати Ubuntu Server 24.04 LTS, яка буде актуальною та підтримуваною у 2026 році. Переконайтеся, що у вас є доступ до сервера по SSH з правами root або користувача з sudo.

1. Оновлення системи

Насамперед оновіть усі пакети до останніх версій, щоб забезпечити стабільність та безпеку.


sudo apt update && sudo apt upgrade -y

Ця команда оновлює список доступних пакетів і потім встановлює всі доступні оновлення без запиту підтвердження.

2. Налаштування імені хоста та DNS

FreeIPA надзвичайно чутлива до правильного налаштування DNS та імені хоста. Використовуйте повне доменне ім'я (FQDN) для вашого сервера FreeIPA. Наприклад, ipa.example.com.


sudo hostnamectl set-hostname ipa.example.com

Встановіть ім'я хоста сервера. Замініть ipa.example.com на ваше реальне FQDN.


echo "127.0.0.1   ipa.example.com ipa localhost" | sudo tee -a /etc/hosts
echo "::1         ipa.example.com ipa localhost" | sudo tee -a /etc/hosts

Додайте запис про FQDN до файлу /etc/hosts. Це гарантує, що сервер зможе розв'язати своє власне ім'я.

Переконайтеся, що ваше FQDN розв'язується в публічну IP-адресу вашого VPS. Це необхідно налаштувати на вашому DNS-провайдері (наприклад, Cloudflare, Namecheap, GoDaddy). Створіть A-запис для ipa.example.com, що вказує на IP-адресу вашого VPS.

3. Створення користувача з sudo (якщо не root)

Для кращої безпеки рекомендується працювати не під root, а під звичайним користувачем з правами sudo.


sudo adduser username
sudo usermod -aG sudo username

Створіть нового користувача (замініть username) та додайте його до групи sudo.

Після цього вийдіть із сесії root та увійдіть під новим користувачем.

4. Налаштування SSH-ключів

Для підвищення безпеки SSH-доступу рекомендується використовувати автентифікацію за ключами замість пароля.


# На вашій локальній машині
ssh-keygen -t rsa -b 4096 -C "[email protected]"
ssh-copy-id username@your_vps_ip

На вашій локальній машині згенеруйте SSH-ключ (якщо його немає) та скопіюйте публічний ключ на VPS. Потім на VPS вимкніть автентифікацію за паролем.


sudo nano /etc/ssh/sshd_config

Знайдіть рядки:


#PasswordAuthentication yes
#PermitRootLogin yes

Змініть їх на:


PasswordAuthentication no
PermitRootLogin no

Перезапустіть SSH-сервіс:


sudo systemctl restart sshd

5. Налаштування брандмауера (UFW)

UFW (Uncomplicated Firewall) — це простий у використанні інтерфейс для iptables. FreeIPA вимагає відкриття кількох портів.


sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 389/tcp   # LDAP
sudo ufw allow 636/tcp   # LDAPS
sudo ufw allow 88/tcp    # Kerberos (TCP)
sudo ufw allow 88/udp    # Kerberos (UDP)
sudo ufw allow 464/tcp   # Kerberos (TCP)
sudo ufw allow 464/udp   # Kerberos (UDP)
sudo ufw allow 123/udp   # NTP
sudo ufw allow 53/tcp    # DNS (TCP)
sudo ufw allow 53/udp    # DNS (UDP)
sudo ufw enable
sudo ufw status verbose

Встановіть UFW, дозвольте необхідні порти для SSH, HTTP/HTTPS, LDAP, Kerberos, NTP та DNS, потім активуйте брандмауер та перевірте його статус.

6. Встановлення Fail2ban

Fail2ban захищає сервер від атак методом підбору пароля, блокуючи IP-адреси, з яких надходять численні невдалі спроби входу.


sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Встановіть Fail2ban та переконайтеся, що він запущений і запускатиметься при кожному завантаженні системи.

Тепер ваш сервер готовий до встановлення FreeIPA.

Встановлення ПЗ — покроково

Схема: Встановлення ПЗ — покроково
Схема: Встановлення ПЗ — покроково

У цьому розділі ми покроково встановимо FreeIPA 4.10 на Ubuntu Server 24.04 LTS. Процес включає встановлення пакетів, ініціалізацію сервера та базове налаштування DNS.

1. Встановлення пакетів FreeIPA

FreeIPA доступна у стандартних репозиторіях Ubuntu. Встановіть основний пакет ipa-server та його залежності.


sudo apt update
sudo apt install ipa-server -y

Ця команда оновить список пакетів та встановить FreeIPA сервер з усіма необхідними компонентами, такими як 389 Directory Server, BIND, Kerberos KDC та Dogtag CA.

2. Запуск скрипта встановлення FreeIPA

Після встановлення пакетів необхідно запустити скрипт ipa-server-install, який виконає ініціалізацію всіх компонентів FreeIPA. Цей скрипт є інтерактивним і поставить вам кілька запитань.


sudo ipa-server-install

Далі представлені типові відповіді на запитання скрипта:

  • Do you want to configure integrated DNS? [no]: Введіть yes. Інтегрований DNS спрощує керування та є рекомендованим способом для більшості розгортань FreeIPA.
  • Server host name [ipa.example.com]: Підтвердьте FQDN вашого сервера. Натисніть Enter, якщо воно правильне.
  • Please enter the name of the domain for which you want to configure FreeIPA. [example.com]: Введіть домен FreeIPA. Це домен, який використовуватиметься для Kerberos та LDAP. Наприклад, example.com.
  • Please enter the name of the realm for which you want to configure FreeIPA. [EXAMPLE.COM]: Підтвердьте Kerberos Realm (зазвичай це ваш домен у верхньому регістрі). Натисніть Enter.
  • The IPA server will be configured with: Перевірте запропоновані налаштування.
  • Continue to configure the system with these values? [no]: Введіть yes.
  • Directory Manager password: Введіть та підтвердьте пароль для користувача Directory Manager. Це дуже важливий пароль, використовуйте складний.
  • IPA admin password: Введіть та підтвердьте пароль для користувача admin FreeIPA. Це основний адміністративний користувач для керування FreeIPA. Також використовуйте складний пароль.

Процес встановлення займе деякий час (5-15 хвилин), оскільки FreeIPA налаштовує LDAP-сервер, Kerberos Key Distribution Center (KDC), Certificate Authority (CA) та DNS-сервер.

3. Перевірка статусу служб FreeIPA

Після завершення встановлення переконайтеся, що всі служби FreeIPA запущені коректно.


sudo ipactl status

Ця команда покаже статус усіх компонентів FreeIPA (Directory Server, KDC, NTP, DNS, Web UI, CA). Усі вони повинні бути у стані running.

4. Налаштування клієнтського середовища на сервері FreeIPA

Для того щоб користуватися командами FreeIPA та веб-інтерфейсом, необхідно налаштувати Kerberos-автентифікацію для користувача admin на самому сервері.


kinit admin

Введіть пароль адміністратора FreeIPA, який ви задали під час встановлення. Ця команда отримає Kerberos-квиток для користувача admin, дозволяючи йому взаємодіяти з FreeIPA.


ipa user-find admin

Перевірте, що команда ipa user-find admin успішно повертає інформацію про користувача admin. Це означає, що Kerberos-автентифікація працює.

5. Налаштування DNS-клієнта на сервері (опціонально, але рекомендується)

Хоча FreeIPA налаштувала свій власний DNS-сервер, переконайтеся, що ваш VPS використовує його для розв'язання імен. Це особливо важливо для клієнтів FreeIPA.


# Тимчасово встановіть DNS-сервер FreeIPA як основний
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf

Ця команда встановить локальний DNS-сервер (який тепер обслуговує FreeIPA) як основний. У більш складних конфігураціях ви можете використовувати systemd-resolved або інші методи для постійного налаштування.

Перевірте розв'язання DNS:


dig ipa.example.com
dig example.com

Обидві команди повинні коректно розв'язувати ваші домени, використовуючи локальний DNS-сервер FreeIPA.

6. Доступ до веб-інтерфейсу

Тепер ви можете отримати доступ до веб-інтерфейсу FreeIPA, перейшовши за адресою https://ipa.example.com/ipa/ui/ у вашому браузері. При першому доступі ви зіткнетеся з попередженням про самопідписаний сертифікат. Це нормально, оскільки FreeIPA розгорнула свій власний Certificate Authority. Ви можете додати цей сертифікат до винятків браузера або імпортувати CA-сертифікат FreeIPA до довірених сховищ вашої операційної системи.

Увійдіть під користувачем admin з паролем, який ви встановили раніше.

Конфігурація

Схема: Конфігурація
Схема: Конфігурація

Після успішного встановлення FreeIPA настав час для базової конфігурації. Ми створимо першого користувача, додамо хост та налаштуємо клієнтську машину для роботи з FreeIPA.

1. Створення нового користувача

З метою безпеки та для повсякденної роботи не рекомендується використовувати обліковий запис admin. Створимо нового звичайного користувача.


kinit admin # Якщо ваш Kerberos-квиток закінчився
ipa user-add user01 --first=User --last=One --password

Вам буде запропоновано ввести та підтвердити пароль для user01. Після створення, можна скинути термін дії пароля, щоб він не закінчувався негайно (для тестування).


ipa user-mod user01 --setattr=krbPasswordExpiration=20300101000000Z

Ця команда встановить термін дії пароля на 1 січня 2030 року. У реальному середовищі краще використовувати політики паролів.

2. Додавання хоста до FreeIPA

Щоб інші Linux-сервери могли автентифікуватися через FreeIPA, їх необхідно зареєструвати в каталозі FreeIPA.


ipa host-add client01.example.com

Замініть client01.example.com на FQDN вашої клієнтської машини. Переконайтеся, що ця машина має A-запис у DNS, яка вказує на її IP-адресу.

3. Налаштування клієнтської машини (Ubuntu Server 24.04)

Для інтеграції клієнтської машини з FreeIPA, встановіть пакет freeipa-client та запустіть скрипт налаштування.

На клієнтській машині виконайте наступні кроки:


sudo apt update && sudo apt upgrade -y
sudo hostnamectl set-hostname client01.example.com
echo "192.168.1.100 ipa.example.com" | sudo tee -a /etc/hosts # Замініть IP-адресу на IP вашого FreeIPA сервера
echo "nameserver 192.168.1.100" | sudo tee /etc/resolv.conf # Замініть IP-адресу на IP вашого FreeIPA сервера
sudo apt install freeipa-client -y

Встановіть ім'я хоста, додайте запис для FreeIPA сервера до /etc/hosts та налаштуйте DNS-сервер на IP-адресу вашого FreeIPA сервера. Потім встановіть клієнтський пакет FreeIPA.

Тепер запустіть скрипт налаштування клієнта:


sudo ipa-client-install --domain=example.com --server=ipa.example.com --realm=EXAMPLE.COM --force-join --mkhomedir -p admin --password <ПАРОЛЬ_ADMIN> --unattended

Замініть example.com, ipa.example.com, EXAMPLE.COM та <ПАРОЛЬ_ADMIN> на ваші значення. Опція --mkhomedir створює домашній каталог для користувачів FreeIPA при першому вході. --unattended та -p admin --password <ПАРОЛЬ_ADMIN> дозволяють автоматизувати процес, якщо ви впевнені в параметрах. В інтерактивному режимі скрипт запитає пароль адміністратора FreeIPA.

Після завершення встановлення клієнта на клієнтській машині:


kinit user01

Введіть пароль user01. Якщо Kerberos-квиток отримано успішно, значить, клієнтська машина успішно інтегрована.


ssh user01@localhost

Спробуйте увійти на клієнтську машину під користувачем user01. Якщо вхід успішний, і був створений домашній каталог, інтеграція пройшла успішно.

4. Налаштування TLS/HTTPS (FreeIPA CA)

FreeIPA за замовчуванням використовує свій вбудований Certificate Authority (CA) для видачі TLS-сертифікатів для своїх служб (веб-інтерфейс, LDAP-S). Це означає, що при доступі до веб-інтерфейсу ви побачите попередження про самопідписаний сертифікат, доки не імпортуєте кореневий сертифікат FreeIPA CA до довірених сховищ вашої ОС або браузера.

Для імпорту CA-сертифіката (на клієнтській машині або вашій робочій станції):


# На вашій робочій станції або клієнтській машині
# Завантажте CA-сертифікат із сервера FreeIPA
curl -o /tmp/ipa.crt http://ipa.example.com/ipa/config/ca.crt

# Імпортуйте його до довірених сховищ (приклад для Ubuntu/Debian)
sudo cp /tmp/ipa.crt /usr/local/share/ca-certificates/ipa.crt
sudo update-ca-certificates

Після цього браузери та інші програми на цій машині довірятимуть сертифікатам, виданим вашим FreeIPA CA.

Використання Caddy/Certbot для інших сервісів:

Якщо ви хочете використовувати FreeIPA для автентифікації в інших веб-сервісах, а для них отримати сертифікати від Let's Encrypt, ви можете налаштувати Caddy або Certbot. Ці інструменти працюватимуть незалежно від FreeIPA, але можуть використовувати FreeIPA для автентифікації користувачів.


# Приклад встановлення Caddy на окремому сервері або проксі
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y

Потім налаштуйте Caddyfile для вашого домену, і Caddy автоматично отримає та оновить сертифікати Let's Encrypt.


# Приклад Caddyfile для proxy_service.example.com
proxy_service.example.com {
    reverse_proxy localhost:8080 # Ваш сервіс, що працює на порту 8080
}

Для інтеграції автентифікації з FreeIPA, ваш веб-сервіс повинен бути налаштований на використання LDAP або Kerberos для автентифікації, вказуючи на ваш FreeIPA сервер.

5. Перевірка працездатності

Кілька команд для перевірки:


# На сервері FreeIPA
ipa ping

Повинен повернути Ping successful.


curl -v https://ipa.example.com/ipa/ui/

Перевірте доступність веб-інтерфейсу. Зверніть увагу на статус TLS-сертифіката.


# На клієнтській машині
id user01

Повинен показати інформацію про користувача user01, включаючи його UID, GID та групи, отримані з FreeIPA.


klist

На клієнтській машині після kinit user01 повинно показати діючий Kerberos-квиток.

Резервне копіювання та обслуговування

Схема: Резервне копіювання та обслуговування
Схема: Резервне копіювання та обслуговування

Резервне копіювання та регулярне обслуговування FreeIPA є критично важливими для забезпечення безперервності роботи та безпеки вашої інфраструктури ідентифікації.

1. Що резервувати

Для FreeIPA необхідно резервувати наступні компоненти:

  • База даних 389 Directory Server (LDAP): Містить всю інформацію про користувачів, групи, хости, політики тощо.
  • Конфігураційні файли FreeIPA: Налаштування Kerberos, DNS, CA.
  • Сертифікати CA: Ключі та сертифікати, видані вашим FreeIPA CA.
  • Конфігурація BIND (DNS): Якщо використовується інтегрований DNS.

На щастя, FreeIPA надає вбудовану утиліту для резервного копіювання, яка охоплює більшість цих компонентів.

2. Простий скрипт авторезервування

FreeIPA має вбудовану команду ipa-server-backup, яка створює повний дамп всіх необхідних даних.


#!/bin/bash

BACKUP_DIR="/var/lib/ipa/backup"
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/ipa_backup_${DATE}.tar.gz"
RETENTION_DAYS=7 # Скільки днів зберігати резервні копії

echo "Починаємо резервне копіювання FreeIPA до ${BACKUP_FILE}..."

# Створюємо директорію для резервних копій, якщо її немає
sudo mkdir -p ${BACKUP_DIR}

# Виконуємо резервне копіювання FreeIPA
# Використовуємо --dir для вказівки директорії, куди FreeIPA збереже свої файли
# Потім архівуємо цю директорію
sudo ipa-server-backup --dir /tmp/ipa_backup_temp_dir

if [ $? -eq 0 ]; then
    echo "Резервна копія FreeIPA успішно створена в тимчасовій директорії. Архівуємо..."
    sudo tar -czf ${BACKUP_FILE} -C /tmp ipa_backup_temp_dir
    if [ $? -eq 0 ]; then
        echo "Архів резервної копії успішно створено: ${BACKUP_FILE}"
        sudo rm -rf /tmp/ipa_backup_temp_dir # Видаляємо тимчасову директорію

        # Видалення старих резервних копій
        echo "Видалення старих резервних копій (старше ${RETENTION_DAYS} днів)..."
        sudo find ${BACKUP_DIR} -name "ipa_backup_*.tar.gz" -type f -mtime +${RETENTION_DAYS} -delete
        echo "Старі резервні копії видалено."
    else
        echo "Помилка при архівуванні резервної копії."
        sudo rm -rf /tmp/ipa_backup_temp_dir
        exit 1
    fi
else
    echo "Помилка при виконанні ipa-server-backup."
    exit 1
fi

echo "Резервне копіювання завершено."

Збережіть цей скрипт, наприклад, як /usr/local/bin/ipa_backup.sh, і зробіть його виконуваним:


sudo chmod +x /usr/local/bin/ipa_backup.sh

Потім додайте його до cron для щоденного виконання (наприклад, о 3:00 ранку):


sudo crontab -e

Додайте наступний рядок:


0 3 * * * /usr/local/bin/ipa_backup.sh > /var/log/ipa_backup.log 2>&1

3. Куди зберігати резервні копії

Зберігання резервних копій на тому ж сервері, що й оригінальні дані, не є надійним. Рекомендується використовувати зовнішні сховища:

  • Хмарне S3-сумісне сховище: Amazon S3, DigitalOcean Spaces, Backblaze B2. Використовуйте s3cmd, rclone або aws cli для завантаження архівів.
  • Окремий VPS: Виділіть невеликий VPS виключно для зберігання резервних копій. Використовуйте rsync або scp для передачі файлів по SSH.
  • Локальний NAS/сервер: Якщо у вас є власне обладнання.

Приклад додавання завантаження до S3 у скрипт (потребує встановлення та налаштування aws cli):


# ... (початок скрипта) ...
# Після успішного створення архіву:
if [ $? -eq 0 ]; then
    echo "Архів резервної копії успішно створено: ${BACKUP_FILE}"
    sudo rm -rf /tmp/ipa_backup_temp_dir

    echo "Завантаження резервної копії до S3..."
    # Переконайтеся, що AWS CLI встановлено та налаштовано (aws configure)
    /usr/local/bin/aws s3 cp ${BACKUP_FILE} s3://your-s3-bucket-name/ipa-backups/

    if [ $? -eq 0 ]; then
        echo "Резервна копія успішно завантажена до S3."
    else
        echo "Помилка при завантаженні резервної копії до S3."
        # Можна додати сповіщення про помилку
    fi

    # ... (видалення старих резервних копій) ...

Завжди шифруйте резервні копії перед відправкою до зовнішніх сховищ, використовуючи GPG або інші інструменти.

4. Відновлення з резервної копії

Для відновлення FreeIPA з резервної копії використовується команда ipa-server-restore. Зазвичай це робиться на свіжовстановленій системі Ubuntu з пакетом ipa-server, але без запуску ipa-server-install.


sudo systemctl stop ipa.service
sudo ipa-server-restore --restore-dir /path/to/your/backup/directory

5. Оновлення: rolling vs maintenance window

Оновлення FreeIPA та базової ОС — важлива частина обслуговування.

  • Оновлення ОС: Регулярно застосовуйте оновлення безпеки для Ubuntu. Використовуйте sudo apt update && sudo apt upgrade -y. Для критичних систем рекомендується тестувати оновлення на тестовому сервері перед застосуванням на продакшені.
  • Оновлення FreeIPA: Оновлення пакета ipa-server зазвичай включають оновлення FreeIPA. Після оновлення пакетів FreeIPA може знадобитися запустити ipa-server-upgrade.
    
    sudo apt update && sudo apt upgrade -y
    sudo ipa-server-upgrade
                

    Ця команда виконує необхідні міграції схеми LDAP та інші оновлення компонентів FreeIPA.

  • Стратегія оновлень:
    • Rolling updates (для реплікованих середовищ): Якщо у вас є кілька FreeIPA-серверів у режимі реплікації, ви можете оновлювати їх по черзі, мінімізуючи простій.
    • Maintenance window (для одиночних серверів): Для одиночного FreeIPA-сервера плануйте оновлення в період найменшої активності, щоб мінімізувати потенційні перебої. Завжди майте свіжу резервну копію перед великими оновленнями.

Вирішення проблем + FAQ

Що робити, якщо FreeIPA не запускається після перезавантаження?

Перш за все, перевірте статус основних служб FreeIPA за допомогою sudo ipactl status. Якщо будь-яка служба зупинена або знаходиться в стані збою, перевірте логи: sudo journalctl -xeu [email protected] для LDAP, sudo journalctl -xeu krb5kdc.service для Kerberos, sudo journalctl -xeu named-ipa.service для DNS. Часті причини: проблеми з DNS-розділенням власного імені сервера, нестача пам'яті, пошкодження бази даних LDAP або помилки в конфігурації.

Який VPS-конфіг мінімально підійде для FreeIPA?

Мінімально рекомендований конфіг для FreeIPA в тестовому або невеликому середовищі — це 2 ядра CPU, 4 ГБ RAM та 50 ГБ SSD-диска. Однак для стабільної роботи та масштабування до кількох сотень користувачів/хостів, краще орієнтуватися на 4 ядра CPU, 8 ГБ RAM та 100 ГБ SSD. Це забезпечить достатню продуктивність для Kerberos, LDAP та інших служб FreeIPA.

Що вибрати — VPS чи dedicated для цього завдання?

Вибір між VPS та dedicated-сервером залежить від масштабу та вимог до продуктивності. Для більшості невеликих та середніх розгортань (до кількох тисяч користувачів/хостів) VPS з адекватними ресурсами буде достатнім та економічно вигідним. Dedicated-сервери стають необхідними при дуже високому навантаженні (десятки тисяч користувачів), специфічних вимогах до апаратного забезпечення (наприклад, HSM), жорстких SLA або якщо потрібна повна ізоляція ресурсів та максимальна продуктивність I/O.

Не можу увійти до веб-інтерфейсу FreeIPA. Що перевіряти?

Переконайтеся, що служба HTTPD запущена (sudo systemctl status httpd.service або sudo systemctl status [email protected]). Перевірте, що порти 80 та 443 відкриті в брандмауері (sudo ufw status). Очистіть кеш браузера або спробуйте інший браузер. Переконайтеся, що ви використовуєте правильне FQDN сервера і що воно розв'язується в IP-адресу сервера. Перевірте логи веб-сервера (наприклад, /var/log/httpd/error_log).

Клієнт FreeIPA не може підключитися до сервера.

Перевірте DNS-розділення на клієнті: dig ipa.example.com має вказувати на IP-адресу вашого FreeIPA сервера. Переконайтеся, що порти FreeIPA відкриті на сервері (53, 80, 443, 389, 636, 88, 464, 123). Перевірте синхронізацію часу між клієнтом і сервером (Kerberos дуже чутливий до цього): sudo timedatectl status. Спробуйте виконати ipa-client-install з опцією --debug для отримання докладних логів.

Як скинути пароль користувача admin у FreeIPA?

Якщо ви забули пароль admin, його можна скинути через користувача Directory Manager. Спочатку отримайте Kerberos-квиток для Directory Manager: kinit admin/admin (пароль Directory Manager). Потім скиньте пароль користувача admin: ipa user-mod admin --password. Вам буде запропоновано ввести новий пароль. Якщо ви забули і пароль Directory Manager, це складніше і може вимагати прямого втручання в LDAP-каталог (що виходить за рамки цього посібника).

Проблеми з сертифікатами або TLS при доступі до FreeIPA.

FreeIPA використовує власний CA. Переконайтеся, що ви імпортували кореневий сертифікат FreeIPA CA до довірених сховищ вашої операційної системи або браузера. Якщо це не допомагає, перевірте термін дії сертифікатів FreeIPA: ipa-getcert list. Якщо термін дії сертифікатів закінчився, їх потрібно оновити через ipa-server-certinstall або ipa-certupdate.

Висновки та наступні кроки

Схема: Висновки та наступні кроки
Схема: Висновки та наступні кроки

Вітаємо! Ви успішно розгорнули та налаштували FreeIPA на вашому VPS, створивши централізовану систему управління ідентифікацією. Тепер у вас є потужний інструмент для автентифікації користувачів і машин, управління доступом та видачі сертифікатів, що значно спрощує адміністрування вашої Linux-інфраструктури.

Подальші кроки можуть включати:

  • Інтеграція додаткових сервісів: Підключіть інші ваші сервери, робочі станції та програми до FreeIPA для централізованої автентифікації.
  • Налаштування політик доступу: Вивчіть можливості Host-Based Access Control (HBAC) для тонкого налаштування того, хто і куди може входити.
  • Розгортання реплік: Для підвищення відмовостійкості та розподілу навантаження розгляньте можливість розгортання додаткових серверів FreeIPA в режимі реплікації.
  • Моніторинг: Налаштуйте моніторинг FreeIPA за допомогою таких інструментів, як Prometheus/Grafana, щоб відстежувати стан служб та продуктивність.

Чи був цей гайд корисним?

Ваш відгук допомагає нам покращувати гайди.

Share this post:

Надішліть гайд тому, кому він може стати в пригоді.

Telegram VKVK WhatsApp Facebook LinkedIn XX

розгортання FreeIPA на VPS для централізованого управління ідентифікацією
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.