Integrasi ini memungkinkan Administrator Sistem untuk dengan mudah mengkonfigurasi server secara terpusat, di server FreeIPA. Saat perintah manajemen dijalankan pada mesin Klien, klien FreeIPA mengirimkannya ke server tempat perintah tersebut dieksekusi.
Konten Terkait
- Cara mengelola pengguna dan grup di Server FreeIPA
- Cara Memasang Klien FreeIPA di Fedora 35
- Cara Menginstal dan Mengonfigurasi FreeIPA di Rocky Linux/Centos 8
- Cara Memasang dan Mengonfigurasi Klien FreeIPA di Ubuntu 20.04
- Cara mengkonfigurasi Replikasi FreeIPA di Rocky Linux/Alma Linux/Centos 8
Prasyarat
Untuk mengikuti, pastikan Anda memiliki yang berikut
- Server berbasis Rocky Linux/Centos 8 atau Any Rhel 8
- Server IPA tempat klien akan bergabung
- Akses sudo ke server atau pengguna dengan akses sudo
- Akses internet dari server
Daftar Isi
- Memasang paket FreeIPA
- Menyiapkan Klien
- Aktifkan Pembuatan direktori home pada Login pertama
- Uji Penambahan Klien
- Menggunakan Alat Manajemen Baris Perintah FreeIPA ipa
- Aktifkan Autentikasi Tanpa Kata Sandi menggunakan Kunci Pribadi
- Menghapus Klien IPA Rocky Linux/Alma Linux
1. Menginstal paket FreeIPA
Di server Rocky Linux 8, klien FreeIPA tersedia sebagai modul AppStream. Daftar modul menggunakan perintah ini:
$ sudo dnf module list idm
Name Stream Profiles Summary
idm DL1 [e] adtrust, client [i], common [d], dns, The Red Hat Enterprise Linux Identity Management system
server module
idm client [d] common [d] RHEL IdM long term support client module
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Dari output, Anda dapat melihat bahwa kami memiliki DL1
dan client
aliran. Untuk informasi lebih lanjut tentang aliran klien FreeIPA, jalankan:
sudo dnf module info idm:DL1/client
Instal paket Klien FreeIPA menggunakan perintah ini.
sudo dnf module -y install idm:DL1/client
Konfirmasi penambahan klien menggunakan rpm -qi
perintah
$ rpm -qi ipa-client
Name : ipa-client
Version : 4.9.2
Release : 4.module+el8.4.0+664+1636a961
Architecture: x86_64
Install Date: Fri 12 Nov 2021 08:53:52 PM EAT
Group : Unspecified
Size : 266180
License : GPLv3+
Signature : RSA/SHA256, Tue 02 Nov 2021 07:33:39 PM EAT, Key ID 15af5dac6d745a60
Source RPM : ipa-4.9.2-4.module+el8.4.0+664+1636a961.src.rpm
Build Date : Tue 02 Nov 2021 07:21:45 PM EAT
Build Host : ord1-prod-x86build001.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager : [email protected]
Vendor : Rocky
URL : http://www.freeipa.org/
Summary : IPA authentication for use on clients
Description :
IPA is an integrated solution to provide centrally managed Identity (users,
hosts, services), Authentication (SSO, 2FA), and Authorization
(host access control, SELinux user roles, services). The solution provides
features for further integration with Linux based clients (SUDO, automount)
and integration with Active Directory based infrastructures (Trusts).
If your network uses IPA for authentication, this package should be
installed on every client machine.
This package provides command-line tools for IPA administrators.
2. Menyiapkan klien
Setelah instalasi paket Klien FreeIPA selesai. Tambahkan nama host dan alamat IP Server IPA Anda ke /etc/hosts file jika Anda tidak memiliki resolusi DNS yang berfungsi.
echo "10.2.40.149 ipa.citizix.com" | sudo tee /etc/hosts
Setel nama host sistem Anda.
sudo hostnamectl set-hostname ipa-client.citizix.com
Kami kemudian dapat mengatur klien dengan menentukan server FreeIPA dan nama domain
sudo ipa-client-install --server=ipa.citizix.com --domain ipa.citizix.com
Anda juga dapat menambahkan lebih banyak argumen yang menentukan nama host, server, domain, dan ranah klien ipa seperti dalam contoh ini.
sudo ipa-client-install --hostname=ipa-client.citizix.com \
--mkhomedir \
--server=ipa.citizix.com \
--domain ipa.citizix.com \
--realm IPA.CITIZIX.COM
Ini adalah keluaran saya. Anda akan melihat sesuatu yang mirip dengan ini
# ipa-client-install --server=ipa.citizix.com --domain ipa.citizix.com
This program will set up IPA client.
Version 4.9.2
Sudo version 1.8.29
Configure options: --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --prefix=/usr --sbindir=/usr/sbin --libdir=/usr/lib64 --docdir=/usr/share/doc/sudo --disable-root-mailer --with-logging=syslog --with-logfac=authpriv --with-pam --with-pam-login --with-editor=/bin/vi --with-env-editor --with-ignore-dot --with-tty-tickets --with-ldap --with-ldap-conf-file=/etc/sudo-ldap.conf --with-selinux --with-passprompt=[sudo] password for %p: --with-linux-audit --with-sssd
Sudoers policy plugin version 1.8.29
Sudoers file grammar version 46
Sudoers path: /etc/sudoers
nsswitch path: /etc/nsswitch.conf
ldap.conf path: /etc/sudo-ldap.conf
ldap.secret path: /etc/ldap.secret
Authentication methods: 'pam'
Syslog facility if syslog is being used for logging: authpriv
Syslog priority to use when user authenticates successfully: notice
Syslog priority to use when user authenticates unsuccessfully: alert
Ignore '.' in $PATH
Send mail if the user is not in sudoers
Lecture user the first time they run sudo
Require users to authenticate by default
Root may run sudo
Always set $HOME to the target user's home directory
Allow some information gathering to give useful error messages
Visudo will honor the EDITOR environment variable
Set the LOGNAME and USER environment variables
Length at which to wrap log file lines (0 for no wrap): 80
Authentication timestamp timeout: 5.0 minutes
Password prompt timeout: 5.0 minutes
Number of tries to enter a password: 3
Umask to use or 0777 to use user's: 022
Path to mail program: /usr/sbin/sendmail
Flags for mail program: -t
Address to send mail to: root
Subject line for mail messages: *** SECURITY information for %h ***
Incorrect password message: Sorry, try again.
Path to lecture status dir: /var/db/sudo/lectured
Path to authentication timestamp dir: /run/sudo/ts
Default password prompt: [sudo] password for %p:
Default user to run commands as: root
Value to override user's $PATH with: /sbin:/bin:/usr/sbin:/usr/bin
Path to the editor for use by visudo: /bin/vi
When to require a password for 'list' pseudocommand: any
When to require a password for 'verify' pseudocommand: all
File descriptors >= 3 will be closed before executing a command
Reset the environment to a default set of variables
Environment variables to check for sanity:
TZ
TERM
LINGUAS
LC_*
LANGUAGE
LANG
COLORTERM
Environment variables to remove:
*=()*
RUBYOPT
RUBYLIB
PYTHONUSERBASE
PYTHONINSPECT
PYTHONPATH
PYTHONHOME
TMPPREFIX
ZDOTDIR
READNULLCMD
NULLCMD
FPATH
PERL5DB
PERL5OPT
PERL5LIB
PERLLIB
PERLIO_DEBUG
JAVA_TOOL_OPTIONS
SHELLOPTS
BASHOPTS
GLOBIGNORE
PS4
BASH_ENV
ENV
TERMCAP
TERMPATH
TERMINFO_DIRS
TERMINFO
_RLD*
LD_*
PATH_LOCALE
NLSPATH
HOSTALIASES
RES_OPTIONS
LOCALDOMAIN
CDPATH
IFS
Environment variables to preserve:
XAUTHORITY
_XKB_CHARSET
LINGUAS
LANGUAGE
LC_ALL
LC_TIME
LC_TELEPHONE
LC_PAPER
LC_NUMERIC
LC_NAME
LC_MONETARY
LC_MESSAGES
LC_MEASUREMENT
LC_IDENTIFICATION
LC_COLLATE
LC_CTYPE
LC_ADDRESS
LANG
USERNAME
QTDIR
PS2
PS1
MAIL
LS_COLORS
KDEDIR
HISTSIZE
HOSTNAME
DISPLAY
COLORS
Locale to use while parsing sudoers: C
Compress I/O logs using zlib
Directory in which to store input/output logs: /var/log/sudo-io
File in which to store the input/output log: %{seq}
Add an entry to the utmp/utmpx file when allocating a pty
PAM service name to use: sudo
PAM service name to use for login shells: sudo-i
Attempt to establish PAM credentials for the target user
Create a new PAM session for the command to run in
Perform PAM account validation management
Maximum I/O log sequence number: 0
Enable sudoers netgroup support
Check parent directories for writability when editing files with sudoedit
Query the group plugin for unknown system groups
Allow commands to be run even if sudo cannot write to the audit log
Allow commands to be run even if sudo cannot write to the log file
Resolve groups in sudoers and match on the group ID, not the name
Log entries larger than this value will be split into multiple syslog messages: 960
File mode to use for the I/O log files: 0600
Execute commands by file descriptor instead of by path: digest_only
Type of authentication timestamp record: tty
Ignore case when matching user names
Ignore case when matching group names
Log when a command is allowed by sudoers
Log when a command is denied by sudoers
Don't pre-resolve all group names
Local IP address and netmask pairs:
10.2.40.72/255.255.255.0
10.88.0.1/255.255.0.0
fe80::863:3cff:fec2:9a33/ffff:ffff:ffff:ffff::
fe80::c894:28ff:fe0e:4b89/ffff:ffff:ffff:ffff::
fe80::5857:74ff:fe85:d86d/ffff:ffff:ffff:ffff::
fe80::9896:7dff:fef6:b3be/ffff:ffff:ffff:ffff::
fe80::1445:1aff:fe2e:d9dd/ffff:ffff:ffff:ffff::
Sudoers I/O plugin version 1.8.29
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? [no]: no
Client hostname: ipa-replica.citizix.com
Realm: IPA.CITIZIX.COM
DNS Domain: ipa.citizix.com
IPA Server: ipa.citizix.com
BaseDN: dc=ipa,dc=citizix,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=IPA.CITIZIX.COM
Issuer: CN=Certificate Authority,O=IPA.CITIZIX.COM
Valid From: 2021-11-09 05:42:01
Valid Until: 2041-11-09 05:42:01
Enrolled in IPA realm IPA.CITIZIX.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 IPA.CITIZIX.COM
Systemwide CA database updated.
Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ecdsa_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 ipa.citizix.com as NIS domain.
Client configuration complete.
The ipa-client-install command was successful
3. Aktifkan Pembuatan direktori home pada Login pertama
Jika direktori beranda pengguna tidak dibuat secara otomatis, aktifkan fitur ini dengan menjalankan perintah di bawah ini. Ini akan membuat direktori home pada login awal.
# authselect enable-feature with-mkhomedir
Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.
- with-mkhomedir is selected, make sure pam_oddjob_mkhomedir module
is present and oddjobd service is enabled and active
- systemctl enable --now oddjobd.service
# systemctl enable --now oddjobd
Created symlink /etc/systemd/system/multi-user.target.wants/oddjobd.service → /usr/lib/systemd/system/oddjobd.service.
4. Uji penambahan Klien
Untuk menguji apakah klien berhasil ditambahkan, mari kita login dengan pengguna di freeipa. Jika ini pertama kalinya Anda masuk, Anda akan melihat permintaan perubahan kata sandi jika tidak, Anda akan melihat ini:
$ ssh [email protected]
([email protected]) Password:
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Fri Nov 12 21:03:32 2021 from 10.2.40.10
[[email protected] ~]$
5. Menggunakan Alat Manajemen Baris Perintah FreeIPA ipa
Anda dapat mengelola Server FreeIPA dari mesin klien menggunakan alat baris perintah ipa.
Pertama, dapatkan tiket Kerberos.
$ kinit admin Password for [email protected]:
Periksa informasi kedaluwarsa tiket menggunakan klist.
$ klist Ticket cache: KCM:1000 Default principal: [email protected] Valid starting Expires Service principal 11/12/2021 21:27:59 11/13/2021 21:27:47 krbtgt/[email protected]
Uji dengan menambahkan akun pengguna dan daftar akun yang ada:
$ sudo ipa user-add kip \
--first=Kipkoech \
--last=Towett \
[email protected] \
--password
Password:
Enter Password again to verify:
----------------
Added user "kip"
----------------
User login: kip
First name: Kipkoech
Last name: Towett
Full name: Kipkoech Towett
Display name: Kipkoech Towett
Initials: KT
Home directory: /home/kip
GECOS: Kipkoech Towett
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
User password expiration: 20211112183007Z
Email address: [email protected]
UID: 1063800003
GID: 1063800003
Password: True
Member of groups: ipausers
Kerberos keys available: True
Verifikasi.
$ ipa user-find kip -------------- 1 user matched -------------- User login: kip First name: Kipkoech Last name: Towett Home directory: /home/kip Login shell: /bin/bash Principal name: [email protected] Principal alias: [email protected] Email address: [email protected] UID: 1063800003 GID: 1063800003 Account disabled: False ---------------------------- Number of entries returned 1 ----------------------------
6. Aktifkan Otentikasi Tanpa Kata Sandi menggunakan Kunci Pribadi
Jika Anda ingin mengautentikasi ke server tanpa kata sandi, salin kunci Publik Anda ke Server FreeIPA. Di Profil pengguna, klik Tambahkan tombol di bawah “kunci publik SSH “, tempel kunci publik Anda ke dalam kotak dan simpan.
7. Menghapus Klien IPA Rocky Linux/Alma Linux
Penghapusan klien FreeIPA pada Rocky Linux/Alma Linux 8 dapat dilakukan dengan menjalankan perintah:
$ sudo ipa-client-install --uninstall
Kesimpulan
Dalam panduan ini, kami berhasil menginstal dan mengatur klien FreeIPA di server Rocky Linux/Almas Linux/Centos 8.