Опис
В попередній статті FreeIPA – огляд та встановлення на Centos / Fedora ми підготували та розгорнули freeipa сервер на хості ipa-1. Сьогодні ж підготуємо хост ipa-2 та налаштуємо реплікацію між хостами для відмовостійкості.
Налаштування
налаштування DNS / hostname
Називаємо наш сервер ipa-2.example.com:
hostnamectl set-hostname "ipa-2.example.com"
додаємо запис в файл /etc/hosts як нового сервера так і серверу ipa-1:
echo "184.***.*.23 ipa-1.example.com" >> /etc/hosts echo "52.***.*.215 ipa-2.example.com" >> /etc/hosts
на сервер ipa-1 додаємо запис з данними сервера ipa-2:
echo "52.***.*.215 ipa-2.example.com" >> /etc/hosts
Повинно вийти так, щоб в /etc/hosts на обох серверах ipa були вказані записи двох серверів!
встановлення ipa-client
Тепер на сервері ipa-2 який ми хочемо реплікувати з головним сервером встановлюємо ipa-client
[root@ipa-2 ~]# yum install ipa-client -y
після встановлення налаштовуємо, скориставшись наступною командою:
[root@ipa-2 ~]# ipa-client-install --hostname=`hostname -f` \ --mkhomedir \ --server=ipa-1.example.com \ --domain example.com \ --realm EXAMPLE.COM
в полі “Proceed with fixed values and no DNS discovery?” вводимо yes та тиснемо Enter:
Autodiscovery of servers for failover cannot work with this configuration. If you proceed with the installation, services will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure. Proceed with fixed values and no DNS discovery? [no]: yes
далі в полі “Do you want to configure chrony with NTP server or pool address?” натискаємо Enter а в “Continue to configure the system with these values? [no]:” вводимо yes та тиснемо Enter:
Do you want to configure chrony with NTP server or pool address? [no]: Client hostname: ipa-2.example.com Realm: EXAMPLE.COM DNS Domain: example.com IPA Server: ipa-1.example.com BaseDN: dc=example, dc=com Continue to configure the system with these values? [no]: yes
спостерігаємо процес налаштування клієнта:
Synchronizing time No SRV records of NTP servers found and no NTP server or pool address was provided. Using default chrony configuration. Attempting to sync time with chronyc. Time synchronization was successful. User authorized to enroll computers: admin Password for [email protected]: Successfully retrieved CA cert Subject: CN=Certificate Authority,O=EXAMPLE.COM Issuer: CN=Certificate Authority,O=EXAMOLE.COM Valid From: 2023-01-02 14:40:36 Valid Until: 2043-01-02 14:40:36 Valid Until: 2043-01-02 14:40:36 Enrolled in IPA realm EXAMPLE.COM Created /etc/ipa/default.conf Configured sudoers in /etc/authselect/user-nsswitch.conf Configured /etc/sssd/sssd.conf Configured /etc/krb5.conf for IPA realm EXAMPLE.COM Systemwide CA database updated. Adding SSH public key from /etc/ssh/ssh_host_rsa_key.pub Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub Adding SSH public key from /etc/ssh/ssh_host_dsa_key.pub Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub Could not update DNS SSHFP records. SSSD enabled Configured /etc/openldap/ldap.conf Configured /etc/ssh/ssh_config Configured /etc/ssh/sshd_config.d/04-ipa.conf Configuring example.com NIS domain. Client configuration complete. The ipa-client-install command was successful
перед налаштуванням реплікаїї потрібно на головному сервері ipa-1 додати в хост групу “ipaservers” репліка сервер ipa-2, скористаємось наступною командою:
[root@ipa-1 ~]# ipa hostgroup-add-member ipaservers --hosts ipa-2.example.com Host-group: ipaservers Description: IPA server hosts Member hosts: ipa-1.example.com, ipa-2.example.com ------------------------- Number of members added 1 -------------------------
переглянемо в web доданий нами хост, для цього переходимо в Identity > Groups > Host Groups > ipaservers:
доданий хост присутнів в групі, переходимо до налаштування реплікації.
налаштування реплікації
На сервері ipa-2 встанолюємо ipa-server:
[root@ipa-2 ~]# yum install ipa-server -y
після встановлення запускаємо команду ipa-replica-install:
[root@ipa-2 ~]# ipa-replica-install Invalid IP address fe80::888:bfff:fec1:bb22 for ipa-2.example.com: cannot use link-local IP address fe80::888:bfff:fec1:bb22 Run connection check to master Connection check OK Disabled p11-kit-proxy Configuring directory server (dirsrv). Estimated time: 30 seconds [1/38]: creating directory server instance Validate installation settings ... Create file system structures ... Perform SELinux labeling ... ..... ..... WARNING: The CA service is only installed on one server (ipa-1.example.com). It is strongly recommended to install it on another server. Run ipa-ca-install(1) on another master to accomplish this. The ipa-replica-install command was successful
бачимо що є повідомлення “WARNING: The CA service is only installed on one server (ipa-1.example.com)”, де нам пропонують встановити “СА service” на сервер реплікації, що ж, встановлюємо:
[root@ipa-2 ~]# ipa-ca-install Directory Manager (existing master) password: Run connection check to master Connection check OK Configuring certificate server (pki-tomcatd). Estimated time: 3 minutes [1/27]: creating certificate server db [2/27]: setting up initial replication Starting replication, please wait until this has completed. Update in progress, 6 seconds elapsed Update succeeded [3/27]: creating ACIs for admin [4/27]: creating installation admin user [5/27]: configuring certificate server instance [6/27]: stopping certificate server instance to update CS.cfg [7/27]: backing up CS.cfg [8/27]: Add ipa-pki-wait-running [9/27]: secure AJP connector [10/27]: reindex attributes [11/27]: exporting Dogtag certificate store pin [12/27]: disabling nonces [13/27]: set up CRL publishing [14/27]: enable PKIX certificate path discovery and validation [15/27]: authorizing RA to modify profiles [16/27]: authorizing RA to manage lightweight CAs [17/27]: Ensure lightweight CAs container exists [18/27]: destroying installation admin user [19/27]: starting certificate server instance [20/27]: Finalize replication settings [21/27]: configure certificate renewals [22/27]: Configure HTTP to proxy connections [23/27]: updating IPA configuration [24/27]: enabling CA instance [25/27]: importing IPA certificate profiles [26/27]: configuring certmonger renewal for lightweight CAs [27/27]: deploying ACME service Done configuring certificate server (pki-tomcatd).
отримаємо квиток Kerberos скориставшись командою kinit <USERNAME>:
[root@ipa-2 ~]# kinit admin Password for [email protected]:
створимо користувача для перевірки реплікації:
[root@ipa-2 ~]# ipa user-add test-user --first=User --last=Test [email protected] --password Password: Enter Password again to verify: ---------------------- Added user "test-user" ---------------------- User login: test-user First name: User Last name: Test Full name: User Test Display name: User Test Initials: UT Home directory: /home/test-user GECOS: User Test Login shell: /bin/sh Principal name: [email protected] Principal alias: [email protected] User password expiration: 20230112102519Z Email address: [email protected] UID: 436300500 GID: 436300500 Password: True Member of groups: ipausers Kerberos keys available: True
переглянемо наявність користувача на сервері ipa-2:
і на сервері ipa-1:
Додатково можемо переглянути топологію реплікації, для цього потрібно перейти в IPA-SERVER > Topology > Topology Graph:
Налаштування завершено.
Далі залишається створити загальний запис на фронті (ALB / NGINX) або безпосередньо на Доменному реєстраторі (Route53) для використання спільного посилання з балансуванням між двома серверами, дане посилання потрібно в подальшому використовувати в інтеграціях.