Pada artikel ini kita membahas secara detail instalasi dan konfigurasi Server FreeIPA pada sistem Rocky Linux 9 / AlmaLinux 9. FreeIPA adalah solusi manajemen identitas yang populer dan banyak digunakan yang berguna dalam pengelolaan otentikasi pengguna, pembuatan dan penegakan kebijakan, penyimpanan identitas, dan kebijakan otorisasi di domain Linux. FreeIPA bertujuan untuk menghilangkan overhead untuk Administrator Linux yang bekerja di infrastruktur bertenaga Linux skala menengah hingga besar.
Beberapa fitur lanjutan dari FreeIPA adalah;
- Dukungan untuk kelompok besar mesin Linux
- Memiliki integrasi asli dengan Windows Active Directory
- Fitur lanjutan dari lingkungan sistem operasi Linux
- Replikasi multi master penuh untuk redundansi dan skalabilitas yang lebih tinggi
- Penyediaan antarmuka manajemen yang dapat diperluas (Web UI, CLI, XMLRPC dan JSONRPC API) dan Python SDK
Manfaat Utama menggunakan FreeIPA
- Central Authentication Management – Manajemen terpusat dari pengguna, mesin, dan layanan dalam lingkungan perusahaan Linux/Unix yang besar.
- Kontrol Akses Berbutir Halus : Menyediakan metode yang jelas untuk mendefinisikan kebijakan kontrol akses untuk mengatur identitas pengguna dan pendelegasian tugas administratif.
- One Time Password (OTP) : Menyediakan metode populer untuk mencapai otentikasi dua faktor (2FA).
- Direct Connect to Active Directory : Anda dapat mengambil informasi dari Active Directory (AD) dan bergabung dengan domain atau ranah dengan cara standar.
- Active Directory Cross-Realm Trust : Sebagai Administrator Sistem, Anda dapat membuat trust Kerberos lintas hutan dengan Microsoft Active Directory. Hal ini memungkinkan pengguna Active Directory (AD) eksternal akses mudah ke sumber daya di domain Manajemen Identitas.
- Layanan Infrastruktur Kunci Publik Terpadu (PKI) : Ini menyediakan layanan PKI yang menandatangani dan menerbitkan sertifikat untuk host dan layanan, Daftar Pencabutan Sertifikat (CRL) dan layanan OCSP untuk perangkat lunak yang memvalidasi sertifikat yang diterbitkan, dan API untuk meminta, menunjukkan, dan menemukan sertifikat .
Pastikan instalasi ini dilakukan pada sistem Rocky Linux 9 / AlmaLinux 9 yang baru diinstal karena port layanan IPA dapat bertentangan dengan layanan Linux lainnya.
Langkah 1: Perbarui sistem, atur nama host, zona waktu
Perbarui server Rocky Linux / AlmaLinux 8 Anda:
sudo yum -y update sudo reboot
Setelah reboot, atur nama host sistem yang benar.
sudo hostnamectl set-hostname ipa.example.com
Nama host harus nama domain yang sepenuhnya memenuhi syarat, seperti ipa.example.com. Setelah disetel, konfigurasikan juga zona waktu sistem agar sesuai dengan wilayah Anda:
sudo timedatectl set-timezone Africa/Nairobi
Konfirmasi pengaturan zona waktu Anda:
$ timedatectl Local time: Wed 2022-07-27 21:44:27 EAT Universal time: Wed 2022-07-27 18:44:27 UTC RTC time: Wed 2022-07-27 18:44:27 Time zone: Africa/Nairobi (EAT, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no
Langkah 2: Periksa pra-persyaratan instalasi server FreeIPA
Komponen server FreeIPA utama adalah:
- MIT Kerberos KDC – Menyediakan solusi otentikasi Single-Sign-on
- 389 Directory Server – Penyimpanan data utama dan menyediakan infrastruktur direktori LDAPv3 multi-master penuh.
- ISC Bind DNS server – Bind adalah layanan resolusi nama Domain default di FreeIPA.
- Sistem Sertifikat Dogtag – Komponen ini menyediakan CA & RA yang digunakan untuk fungsi manajemen sertifikat.
- Server NTP – Untuk sinkronisasi waktu di seluruh armada node yang bergabung ke domain
- Antarmuka Web UI / CLI – Digunakan untuk mengelola kontrol akses, pendelegasian tugas administratif, dan tugas administrasi jaringan lainnya secara terpusat.
Persyaratan perangkat keras minimum saat menginstal Server FreeIPA di Rocky Linux 9 / AlmaLinux 9:
- RAM 4GB
- 2 vCPU
- FQDN – Itu harus dapat diselesaikan dari server DNS yang dikonfigurasi dalam sistem
- Ketersediaan ruang disk minimal 10 GB
Gunakan perintah yang dibagikan di bawah ini untuk memeriksa CPU, Memori, dan ruang disk pada instance Rocky Linux 9 / AlmaLinux 9 Anda.
# CPU Cores $ grep -c ^processor /proc/cpuinfo 4 # Memory check $ free -h # Disk space $ lsblk -fp
Tambahkan alamat IP Server FreeIPA dan nama DNS-nya di dalam /etc/hosts
file:
$ sudo vi /etc/hosts 172.20.30.252 ipa.example.com
Validasi pengaturan IP Anda:
$ hostname --ip-address 172.20.30.252
Verifikasi konfigurasi DNS terbalik (catatan PTR) diatur dengan benar di Server DNS Anda menggunakan perintah dig :
$ dig +short -x <ServerIPAddress>
Langkah 3: Instal server FreeIPA di Rocky Linux 9 / AlmaLinux 9
Selanjutnya kita melakukan instalasi paket FreeIPA pada server Rocky Linux 9 / AlmaLinux 9. Tidak diperlukan repositori RPM tambahan, semua paket dan dependensi tersedia di repositori default OS default.
Instal semua paket server dan klien FreeIPA dengan perintah berikut:
sudo dnf -y install freeipa-server freeipa-server-dns freeipa-client
Jalankan penginstal server FreeIPA
Konfigurasi server FreeIPA dilakukan menggunakan ipa-server-install
alat baris perintah. Skrip installer akan membuat file log di /var/log/ipaserver-install.log :
sudo ipa-server-install
Skrip meminta beberapa pengaturan yang diperlukan dan menawarkan nilai default yang direkomendasikan dalam tanda kurung.
- Untuk menerima nilai default, tekan Enter .
- Untuk memberikan nilai khusus, masukkan nilai yang diperlukan.
Untuk instalasi Non-interaktif untuk IdM tanpa DNS:
sudo ipa-server-install --realm EXAMPLE.COM \ --ds-password DM_password \ --admin-password admin_password \ --unattended # OR sudo ipa-server-install \ --domain example.com \ --realm EXAMPLE.COM \ --ds-password DM_password \ --admin-password admin_password
Opsi minimum yang diperlukan untuk instalasi non-interaktif adalah:
--realm
untuk memberikan nama ranah Kerberos--ds-password
untuk memberikan kata sandi untuk Directory Manager (DM), pengguna super Directory Server--admin-password
untuk memberikan kata sandi untukadmin
, administrator IdM--unattended
untuk membiarkan proses instalasi memilih opsi default untuk nama host dan nama domain
Instalasi non-interaktif untuk IdM dengan DNS terintegrasi:
sudo ipa-server-install --domain example.com --realm EXAMPLE.COM \ --reverse-zone=30.20.172.in-addr.arpa. \ --no-forwarders \ --no-ntp \ --setup-dns \ --ds-password StrongDMPassw0rd \ --admin-password StrongDMPassw0rd \ --unattended
Instalasi interaktif server FreeIPA
Lihat di bawah untuk petunjuk lengkap yang akan Anda dapatkan selama instalasi dan tanggapan yang diharapkan:
$ sudo 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. Version 4.9.8 This includes: * Configure a stand-alone CA (dogtag) for certificate management * Configure the NTP client (chronyd) * Create and configure an instance of Directory Server * Create and configure a Kerberos Key Distribution Center (KDC) * Configure Apache (httpd) * Configure SID generation * Configure the KDC to enable PKINIT To accept the default shown in brackets, press the Enter key. 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. Server host name [ipa.example.com]: ipa.example.com The domain name has been determined based on the host name. Please confirm the domain name [example.com]: example.com The kerberos protocol requires a Realm name to be defined. This is typically the domain name converted to uppercase. Please provide a realm name [EXAMPLE.COM]: EXAMPLE.COM 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 password: <Directory-Manager-Password> Password (confirm): <Confirm-Directory-Manager-Password> The IPA server requires an administrative user, named 'admin'. This user is a regular system account used for IPA server administration. IPA admin password: Password (confirm): Do you want to configure chrony with NTP server or pool address? [no]: yes Enter NTP source server addresses separated by comma, or press Enter to skip: 0.de.pool.ntp.org,1.de.pool.ntp.org Enter a NTP source pool address, or press Enter to skip: The IPA Master Server will be configured with: Hostname: ipa.example.com IP address(es): 172.20.30.252 Domain name: example.com Realm name: EXAMPLE.COM The CA will be configured with: Subject DN: CN=Certificate Authority,O=EXAMPLE.COM Subject base: O=EXAMPLE.COM Chaining: self-signed NTP server: 0.de.pool.ntp.org NTP server: 1.de.pool.ntp.org Continue to configure the system with these values? [no]: yes The following operations may take some minutes to complete. Please wait until the prompt is returned. Disabled p11-kit-proxy Synchronizing time Configuration of chrony was changed by installer. Attempting to sync time with chronyc. Process chronyc waitsync failed to sync time! Unable to sync time with chrony server, assuming the time is in sync. Please check that 123 UDP port is opened, and any time server is on network. Warning: IPA was unable to sync time with chrony! Time synchronization is required for IPA to work correctly Configuring directory server (dirsrv). Estimated time: 30 seconds [1/41]: creating directory server instance [2/41]: tune ldbm plugin .....
Jika instalasi server FreeIPA Anda di Rocky Linux 9 / AlmaLinux 9 berhasil, harapkan output seperti ini:
...... Sudoers I/O plugin version 1.8.29 Client hostname: ipa.example.com Realm: EXAMPLE.COM DNS Domain: example.com IPA Server: ipa.example.com BaseDN: dc=example,dc=com Configured sudoers in /etc/authselect/user-nsswitch.conf Configured /etc/sssd/sssd.conf Systemwide CA database updated. Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub Adding SSH public key from /etc/ssh/ssh_host_rsa_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 Configuring example.com as NIS domain. Client configuration complete. The ipa-client-install command was successful Please add records in this file to your DNS system: /tmp/ipa.system.records.hh7e7u2h.db ============================================================================== 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 UDP Ports: * 88, 464: kerberos * 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 The ipa-server-install command was successful
Buka port layanan FreeIPA di firewall
Daftar port layanan FreeIPA adalah seperti yang tercantum dalam tabel berikut:

Mari kita buka port pada firewall menggunakan firewall-cmd
:
sudo firewall-cmd --add-service={dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent
Kemudian muat ulang konfigurasi firewalld agar perubahan segera berlaku:
sudo firewall-cmd --reload
Daftar layanan yang diizinkan di firewall:
$ sudo firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens18 sources: services: cockpit dhcpv6-client dns freeipa-ldap freeipa-ldaps ntp ssh ....
Langkah 4: Akses Dasbor Manajemen FreeIPA
Setelah instalasi, konsol administrasi berbasis web FreeIPA Server dapat diakses menggunakan nama host server di https:
https://ipa.example.com
Abaikan peringatan SSL dengan mengklik “ Lanjutan ” > “ Lanjutkan ke ipa.example.com (tidak aman) “

Masuk dengan nama pengguna dan kata sandi admin yang ditetapkan selama instalasi.

Setelah login berhasil, Anda akan disajikan dengan antarmuka yang memiliki tampilan seperti ini:

Langkah 5: Amankan FreeIPA Dengan Let’s Encrypt SSL
Setelah instalasi, kami sarankan menggunakan SSL aman di Server FreeIPA Anda. Jika berjalan pada instance publik, ikuti panduan kami di tautan berikutnya:
Langkah 6: Kelola FreeIPA menggunakan Antarmuka CLI
Perintah ipa dapat digunakan untuk melakukan semua operasi server FreeIPA. Tapi pertama-tama, dapatkan tiket admin pengguna Kerberos:
$ kinit admin Password for [email protected]:
Validitas waktu tiket yang ditetapkan dapat diperiksa menggunakan klist
:
$ klist Ticket cache: KCM:0 Default principal: [email protected] Valid starting Expires Service principal 07/27/2022 17:42:38 07/28/2022 21:49:26 krbtgt/[email protected]
Setel shell default pengguna ke /bin/bash
.
$ ipa config-mod --defaultshell=/bin/bash Maximum username length: 32 Home directory base: /home Default shell: /bin/bash Default users group: ipausers Default e-mail domain: example.com Search time limit: 2 Search size limit: 100 User search fields: uid,givenname,sn,telephonenumber,ou,title Group search fields: cn,description Enable migration mode: FALSE Certificate Subject base: O=EXAMPLE.COM Password Expiration Notification (days): 4 Password plugin features: AllowNThash, KDC:Disable Last Success SELinux user map order: guest_u:s0$xguest_u:s0$user_u:s0$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023 Default SELinux user: unconfined_u:s0-s0:c0.c1023 Default PAC types: MS-PAC, nfs:NONE IPA masters: ipa.example.com IPA CA servers: ipa.example.com IPA CA renewal master: ipa.example.com IPA master capable of PKINIT: ipa.example.com
Uji dengan menambahkan akun pengguna dan daftar akun yang ada:
$ ipa user-add test --first=Test --last=User [email protected] --password Password: Enter Password again to verify: ------------------- Added user "test" ------------------- User login: test First name: Test Last name: User Full name: Test User Display name: Test User Initials: TU Home directory: /home/test GECOS: Test User Login shell: /bin/bash Principal name: [email protected] Principal alias: [email protected] User password expiration: 20210802153038Z Email address: [email protected] UID: 1201400001 GID: 1201400001 Password: True Member of groups: ipausers Kerberos keys available: True
Untuk membuat daftar akun pengguna yang ditambahkan, jalankan:
$ ipa user-find --------------- 2 users matched --------------- User login: admin Last name: Administrator Home directory: /home/admin Login shell: /bin/bash Principal alias: [email protected] UID: 1201400000 GID: 1201400000 Account disabled: False User login: test First name: Test Last name: User Home directory: /home/test Login shell: /bin/bash Principal name: [email protected] Principal alias: [email protected] Email address: [email protected] UID: 1201400001 GID: 1201400001 Account disabled: False ---------------------------- Number of entries returned 2 ----------------------------
Coba login sebagai test
pengguna. Pada login pertama Anda, Anda akan diminta untuk mengubah kata sandi Anda:
$ ssh [email protected] Password: Password expired. Change your password now. Current Password: New password: <Set new password> Retype new password: Activate the web console with: systemctl enable --now cockpit.socket [[email protected] ~]$ id uid=1201400003(test1) gid=1201400003(test1) groups=1201400003(test1) cont
Jika Anda ingin mengubah masa kadaluwarsa kata sandi pengguna, lihat panduan berikut:
Anda dapat bermain dengan antarmuka untuk memahami penempatan berbagai fungsi manajemen FreeIPA. Dalam panduan untuk diikuti, kami membahas contoh penggunaan – bagaimana server FreeIPA dapat membantu pengguna, grup, host, dan manajemen kebijakan di seluruh Infrastruktur. Tetap terhubung untuk pembaruan.