FreeIPA es un sistema centralizado de autenticación, autorización e información de cuentas. FreeIPA significa Free Identity, Policy, Audit y es una solución de administración de identidades de código abierto basada en un directorio LDAP y Kerberos con componentes opcionales como servidor DNS, autoridad de certificación y más. Puede administrar un dominio con usuarios, computadoras, políticas y relaciones de confianza. Es similar a Microsoft Active Directory.
FreeIPA también puede configurar una confianza de bosque a bosque con bosques de Active Directory existentes e incluso vivir en una zona DNS debajo de una zona administrada por Active Directory, siempre que no se superpongan. Consta de una interfaz web y herramientas de administración de línea de comandos.
Compruebe también:
- Cómo instalar el servidor Puppet 7 en Rocky Linux/Centos 8
- Cómo administrar usuarios y grupos en FreeIPA Server
- Cómo instalar el cliente FreeIPA en Fedora 35
- Cómo configurar la replicación FreeIPA en Rocky Linux/Alma Linux/Centos 8
- Cómo instalar y configurar FreeIPA en Rocky Linux/Centos
- Cómo instalar y configurar el cliente FreeIPA en Ubuntu 20.04
Requisitos
Para seguir bien, asegúrese de tener:
- Un servidor basado en RHEL 8 como Rocky Linux
- El servidor debe tener al menos 1 GB de RAM, 2 GB para un rendimiento óptimo
- El servidor debe tener al menos 10 GB de espacio en disco
- Acceso raíz o usuario con acceso sudo
- Configure un nombre de dominio completo como nombre de host. Usaremos el subdominio
ipa.citizix.com
en nuestro caso
Tabla de contenido
- Actualizar sistema, establecer nombre de host y zona horaria
- Instalación del servidor FreeIPA
- Ejecutando el instalador del servidor FreeIPA
- Configurar el cortafuegos de Linuxd
- Acceda a la interfaz web de FreeIPA Gui
- Uso de la interfaz CLI de FreeIPA para realizar operaciones básicas
1. Actualizar sistema, establecer nombre de host y zona horaria
Utilice este comando para asegurarse de que los paquetes de nuestro sistema estén actualizados:
sudo dnf -y update
Necesitamos configurar el FQDN (nombre de dominio completo) que queremos usar para apuntar a nuestro servidor. Necesitamos configurar el subdominio (ipa.citizix.com
) DNS para resolver en nuestro servidor. si no tiene un servidor DNS, debemos agregar entradas manualmente en el archivo de host de nuestro servidor para resolver la dirección IP del sistema para nuestro nombre de host totalmente calificado.
Establecer nombre de host:
sudo hostnamectl set-hostname ipa.citizix.com
Reemplazar ipa.citizix.com con el que desea configurar para el nombre de host de su servidor.
Confirme el nombre de host:
$ hostnamectl
Static hostname: ipa.citizix.com
Icon name: computer-vm
Chassis: vm
Machine ID: ee3563997878469ebfcc3f721aec3c66
Boot ID: 029a7962df24475091296d32b222f166
Virtualization: kvm
Operating System: Rocky Linux 8.4 (Green Obsidian)
CPE OS Name: cpe:/o:rocky:rocky:8.4:GA
Kernel: Linux 4.18.0-305.3.1.el8_4.x86_64
Architecture: x86-64
$ hostname
ipa.citizix.com
El dominio utilizado para el nombre de host debe resolver la dirección IP para llegar al servidor. A continuación, apunte la dirección IP de su servidor al nombre de host, es decir, el nombre de dominio completamente calificado, en el archivo Host.
echo "10.2.40.149 ipa.citizix.com ipa" | sudo tee -a /etc/hosts
Reemplazar 10.2.40.149 con la dirección IP de su servidor y ipa.citizix.com con su nombre de host FQDN.
Una vez hecho esto, confirme que el sistema puede hacer ping al host para resolver el mismo.
ping -c 2 ipa.citizix.com
Salida en mi máquina
# ping -c 2 ipa.citizix.com
PING ipa.citizix.com (10.2.40.149) 56(84) bytes of data.
64 bytes from ipa.citizix.com (10.2.40.149): icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from ipa.citizix.com (10.2.40.149): icmp_seq=2 ttl=64 time=0.029 ms
--- ipa.citizix.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1039ms
rtt min/avg/max/mdev = 0.029/0.031/0.033/0.002 ms
Finalmente, configuremos la zona horaria para que coincida con la región en la que se encuentra. Para mí, estoy en Africa/Nairobi
zona horaria, usaré este comando:
sudo timedatectl set-timezone Africa/Nairobi
Confirme que se configuró como se esperaba:
$ timedatectl
Local time: Tue 2021-11-09 07:58:09 EAT
Universal time: Tue 2021-11-09 04:58:09 UTC
RTC time: Tue 2021-11-09 04:58:08
Time zone: Africa/Nairobi (EAT, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
2. Instalación del servidor FreeIPA
No se requiere un repositorio RPM adicional, todos los paquetes y dependencias están disponibles en los repositorios predeterminados del sistema operativo.
En los sistemas basados en EL8, los paquetes necesarios para instalar el servidor FreeIPA se envían en un flujo de módulo llamado flujo DL1 . Deberá habilitar la transmisión antes de realizar la instalación de paquetes desde la transmisión.
Puede usar el siguiente comando para listar módulos que contienen paquetes IdM.
$ sudo yum module list idm Rocky Linux 8 - AppStream Name Stream Profiles Summary idm DL1 adtrust, client, common [d], dn The Red Hat Enterprise Linux Identity Management syst s, server em module idm client [d] common [d] RHEL IdM long term support client module Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Puede consultar más sobre el Stream usando el comando:
sudo dnf module info idm:DL1
Ahora habilite el idm:DL1 corriente:
sudo dnf module enable idm:DL1
Salida en mi sistema
$ sudo dnf module enable idm:DL1
Last metadata expiration check: 0:45:05 ago on Tue 09 Nov 2021 07:22:21 AM EAT.
Dependencies resolved.
=====================================================================================================
Package Architecture Version Repository Size
=====================================================================================================
Enabling module streams:
389-ds 1.4
httpd 2.4
idm DL1
pki-core 10.6
pki-deps 10.6
Transaction Summary
=====================================================================================================
Is this ok [y/N]: y
Complete!
Elija una de las siguientes opciones, según sus requisitos de IdM:
- Instalando Servidor IdM sin DNS integrado:
sudo dnf module install idm:DL1/server
- Instalación del servidor FreeIPA con DNS integrado:
sudo dnf module install idm:DL1/dns
- Instalando Servidor FreeIPA que tiene un acuerdo de confianza con Active Directory:
sudo dnf module install idm:DL1/adtrust
- Para varios perfiles, por ejemplo, perfiles dns y adtrust:
sudo dnf module install idm:DL1/{dns,adtrust}
- Para clientes FreeIPA
sudo dnf module install idm:DL1/client
3. Ejecutando el instalador del servidor FreeIPA
Con los paquetes FreeIPA instalados, ahora podemos ejecutar la utilidad ipa-server-install. La secuencia de comandos del instalador creará un archivo de registro en /var/log/ipaserver-install.log:
sudo ipa-server-install
El script solicita varias configuraciones requeridas y ofrece valores predeterminados recomendados entre paréntesis.
Para aceptar un valor predeterminado, presione Entrar. Para proporcionar un valor personalizado, ingrese el valor requerido. Para la instalación no interactiva de IdM sin DNS, use esto:
sudo ipa-server-install \
--realm IPA.CITIZIX.COM \
-domain ipa.citizix.com \
--ds-password ds_password \
--admin-password admin_password \
--unattended
Las opciones mínimas requeridas para la instalación no interactiva son:
--realm
para proporcionar el nombre de dominio de Kerberos--ds-password
para proporcionar la contraseña para el administrador de directorios (DM), el superusuario del servidor de directorios--admin-password
para proporcionar la contraseña para admin, el administrador de IdM--unattended
para permitir que el proceso de instalación seleccione las opciones predeterminadas para el nombre de host y el nombre de dominio
Para la instalación no interactiva de IdM con DNS integrado, use esto:
sudo ipa-server-install \
--domain ipa.citizix.com \
--realm IPA.CITIZIX.COM \
--reverse-zone=40.2.10.in-addr.arpa. \
--no-forwarders \
--no-ntp \
--setup-dns \
--ds-password ds_password \
--admin-password admin_password \
--unattended
Este es el resultado de una sesión interactiva en mi servidor:
$ 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.2
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 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]: no
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.citizix.com]: ipa.citizix.com
The domain name has been determined based on the host name.
Please confirm the domain name [citizix.com]: ipa.citizix.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 [IPA.CITIZIX.COM]: IPA.CITIZIX.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:
Password (confirm):
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]: no
The IPA Master Server will be configured with:
Hostname: ipa.citizix.com
IP address(es): 10.2.40.149
Domain name: ipa.citizix.com
Realm name: IPA.CITIZIX.COM
The CA will be configured with:
Subject DN: CN=Certificate Authority,O=IPA.CITIZIX.COM
Subject base: O=IPA.CITIZIX.COM
Chaining: self-signed
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
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.
Configuring directory server (dirsrv). Estimated time: 30 seconds
[1/41]: creating directory server instance
[2/41]: tune ldbm plugin
[3/41]: adding default schema
...
Tras una instalación exitosa:
...
Client configuration complete.
The ipa-client-install command was successful
Please add records in this file to your DNS system: /tmp/ipa.system.records.87gb3voq.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
4. Configurar el cortafuegos de Linuxd
Si tiene firewalld instalado y habilitado en su sistema, debe abrir los puertos FreeIPA para acceder.
Debe asegurarse de que estos puertos de red estén abiertos:
Puertos TCP:
80, 443:HTTP/HTTPS
389, 636:LDAP/LDAPS
88, 464:Kerberos
Puertos UDP:
88, 464:Kerberos
123:NTP
Para abrir los puertos usando firewalld, use estos comandos:
sudo firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent sudo firewall-cmd --reload
5. Acceda a la interfaz web GUI de FreeIPA
Una vez que la secuencia de comandos complete la instalación, abra el navegador de su sistema y diríjalo al nombre de host FQDN que configuró para el sistema al principio, por ejemplo, https://ipa.citizix.com
o incluso si escribes https://your-server-ip
esto lo redirigirá automáticamente al FQDN.
Ignore la advertencia de SSL haciendo clic en "Avanzado ”> “Ir a ipa.citizix.com (inseguro) ” si lo entiendes.
Al iniciar sesión con éxito, se le presenta la interfaz del Panel de identidad
La ipa El comando se puede utilizar para realizar todas las operaciones del servidor FreeIPA.
Pero primero, obtenga el ticket Kerberos del usuario administrador:
$ sudo kinit admin
Password for [email protected]:
Verifique la información de caducidad del boleto usando klist.
$ sudo klist
Ticket cache: KCM:0
Default principal: [email protected]
Valid starting Expires Service principal
11/09/2021 09:03:25 11/10/2021 09:03:19 krbtgt/[email protected]
- Establezca el shell predeterminado del usuario en
/bin/bash
.
$ sudo ipa config-mod --defaultshell=/bin/bash
Maximum username length: 32
Maximum hostname length: 64
Home directory base: /home
Default shell: /bin/bash
Default users group: ipausers
Default e-mail domain: ipa.citizix.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=IPA.CITIZIX.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$sysadm_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.citizix.com
IPA master capable of PKINIT: ipa.citizix.com
IPA CA servers: ipa.citizix.com
IPA CA renewal master: ipa.citizix.com
2. Agregar un usuario a FreeIPA
$ sudo ipa user-add etowett --first=Eutychus --last=Towett \
> [email protected] --password
Password:
Enter Password again to verify:
--------------------
Added user "etowett"
--------------------
User login: etowett
First name: Eutychus
Last name: Towett
Full name: Eutychus Towett
Display name: Eutychus Towett
Initials: ET
Home directory: /home/etowett
GECOS: Eutychus Towett
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
User password expiration: 20211109060518Z
Email address: [email protected]
UID: 1063800001
GID: 1063800001
Password: True
Member of groups: ipausers
Kerberos keys available: True
3. Lista de cuentas de usuario en FreeIPA
$ sudo ipa user-find
---------------
2 users matched
---------------
User login: admin
Last name: Administrator
Home directory: /home/admin
Login shell: /bin/bash
Principal alias: [email protected], [email protected]
UID: 1063800000
GID: 1063800000
Account disabled: False
User login: etowett
First name: Eutychus
Last name: Towett
Home directory: /home/etowett
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
Email address: [email protected]
UID: 1063800001
GID: 1063800001
Account disabled: False
----------------------------
Number of entries returned 2
----------------------------
4. Inicie sesión como crear etowett
usuario. En su primer inicio de sesión, se le pedirá que cambie su contraseña:
$ ssh [email protected]
Password:
Password expired. Change your password now.
Current Password:
New password:
Retype new password:
$ id
uid=1063800001(etowett) gid=1063800001(etowett) groups=1063800001(etowett) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Conclusión
En esta guía, logramos configurar FreeIPA en nuestro sistema Rocky Linux. Puede jugar con la interfaz para comprender la ubicación de varias funciones de administración de FreeIPA.