Instalar y configurar el servidor FreeIPA en CentOS 8

FreeIPA es una solución integrada de identidad y autenticación de código abierto para sistemas basados en Linux y Unix. Proporciona una autenticación centralizada mediante el almacenamiento de datos sobre usuarios, grupos, hosts y otros objetos. Proporciona un servicio de gestión de identidades integrado para Linux, Mac y Windows. FreeIPA se basa en el servidor de directorio 389, Kerberos, SSSD, Dogtag, NTP y DNS. Proporciona una interfaz basada en la web para gestionar los usuarios y clientes de Linux en tu reino desde la ubicación central.

En este tutorial, te mostraremos cómo instalar el servidor FreeIPA en CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada el servidor.

Configurar el nombre de host

En primer lugar, tendrás que configurar el nombre de host completamente cualificado en tu sistema. Puedes configurarlo con el siguiente comando:

hostnamectl set-hostname freeipa.mydomain10.com

A continuación, edita el archivo /etc/hosts y añade la IP y el nombre de tu servidor:

nano /etc/hosts

Añade las siguientes líneas:

45.58.43.185 freeipa.mydomain10.com

Guarda y cierra el archivo cuando hayas terminado.

Instalar el servidor FreeIPA

Por defecto, el paquete FreeIPA no está disponible en el repositorio estándar de CentOS. Así que tendrás que habilitar el repositorio idm:DL1 en tu sistema.

Puedes habilitarlo con el siguiente comando:

dnf module enable idm:DL1

A continuación, sincroniza el repositorio con el siguiente comando:

dnf distro-sync

A continuación, ejecuta el siguiente comando para instalar el servidor FreeIPA en tu sistema.

dnf install ipa-server ipa-server-dns -y

Una vez completada la instalación, puedes pasar al siguiente paso.

Configurar el servidor FreeIPA

A continuación, tendrás que configurar el servidor FreeIPA. Puedes configurarlo con el siguiente comando:

ipa-server-install

Se te pedirá que configures el DNS integrado como se muestra a continuación:

The log file for this installation can be found in /var/log/ipaserver-install.log
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.8.4

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]: 

Pulsa Intro para seleccionar no. Se te pedirá que proporciones el nombre de host de tu servidor:

Enter the fully qualified domain name of the computer
on which you're setting up server software. Using the form
.
Example: master.example.com.


Server host name [freeipa.mydomain10.com]: 

Pulsa Intro para seleccionar el nombre de host por defecto. Se te pedirá que confirmes tu nombre de dominio como se muestra a continuación:

The domain name has been determined based on the host name.

Please confirm the domain name [mydomain10.com]: 

Pulsa Intro para seleccionar el nombre de dominio por defecto. Se te pedirá que establezcas la contraseña del gestor de directorios como se muestra a continuación:

The kerberos protocol requires a Realm name to be defined.
This is typically the domain name converted to uppercase.

Please provide a realm name [MYDOMAIN10.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): 

Proporciona la contraseña que desees y pulsa Intro. Se te pedirá que establezcas la contraseña de administrador de la IPA como se muestra a continuación:

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): 

Proporciona la contraseña que desees y pulsa Intro. Se te pedirá que configures el servidor NTP como se muestra a continuación:

Do you want to configure chrony with NTP server or pool address? [no]: 

Pulsa Intro para seleccionar la opción por defecto. Deberías obtener la siguiente salida:

The IPA Master Server will be configured with:
Hostname:       freeipa.mydomain10.com
IP address(es): 45.58.43.185
Domain name:    mydomain10.com
Realm name:     MYDOMAIN10.COM

The CA will be configured with:
Subject DN:   CN=Certificate Authority,O=MYDOMAIN10.COM
Subject base: O=MYDOMAIN10.COM
Chaining:     self-signed

Continue to configure the system with these values? [no]: yes

Escribe sí y pulsa Intro para configurar el sistema con los valores anteriores. Una vez completada la configuración, deberías obtener la siguiente salida:

SSSD enabled
Configured /etc/openldap/ldap.conf
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config
Configuring mydomain10.com as NIS domain.
Client configuration complete.
The ipa-client-install command was successful

unable to resolve host name freeipa.mydomain10.com. to IP address, ipa-ca DNS record will be incomplete
unable to resolve host name freeipa.mydomain10.com. to IP address, ipa-ca DNS record will be incomplete
Please add records in this file to your DNS system: /tmp/ipa.system.records._u0fzahd.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

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar el cortafuegos y SELinux

Si el firewalld está instalado en tu sistema, tendrás que permitir algunos puertos utilizados por FreeIPA. Puedes permitirlos con el siguiente comando:

firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent

A continuación, recarga el firewalld con el siguiente comando para aplicar los cambios:

firewall-cmd --reload

A continuación, también tendrás que desactivar el SELinux en tu sistema.

Puedes desactivar el SELinux editando el archivo /etc/selinux/config:

nano /etc/selinux/config

Busca la siguiente línea:

SELINUX=enforcing

Y, sustitúyela por la siguiente línea:

SELINUX=permissive

Guarda y cierra el archivo. A continuación, reinicia tu sistema para aplicar los cambios:

Accede a la interfaz web de FreeIPA

Ahora, abre tu navegador web y accede a la interfaz web de FreeIPA utilizando la URL https://freeipa.mydomain10.com. Serás redirigido a la página de inicio de sesión de FreeIPA como se muestra a continuación:

Gestión de la identidad en CentOS

Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de FreeIPA en la siguiente página:

Servidor FreeIPA

Trabajar con FreeIPA CLI

FreeIPA también proporciona una herramienta de línea de comandos para añadir un nuevo usuario, grupo, servicio principal y conceder acceso de escritura a ciertos atributos de un grupo a otro.

Antes de utilizar la herramienta CLI, deberás obtener un ticket Kerberos con el siguiente comando:

kinit admin

Se te pedirá que proporciones la contraseña como se muestra a continuación:

Password for [email protected]:

Proporciona tu contraseña de administrador y pulsa Intro para obtener un ticket Kerberos.

A continuación, ejecuta el siguiente comando para comprobar la caducidad del ticket:

klist

Deberías obtener la siguiente salida:

Ticket cache: KCM:0
Default principal: [email protected]

Valid starting       Expires              Service principal
2020-09-28T03:36:54  2020-09-29T03:36:50  krbtgt/[email protected]

A continuación, añade una nueva cuenta de usuario con el siguiente comando:

ipa user-add user1 --first=hit --last=jethva [email protected] --password

Deberías obtener la siguiente salida:

Password: 
Enter Password again to verify: 
------------------
Added user "user1"
------------------
  User login: user1
  First name: hit
  Last name: jethva
  Full name: hit jethva
  Display name: hit jethva
  Initials: hj
  Home directory: /home/user1
  GECOS: hit jethva
  Login shell: /bin/sh
  Principal name: [email protected]
  Principal alias: [email protected]
  User password expiration: 20200928073905Z
  Email address: [email protected]
  UID: 384600001
  GID: 384600001
  Password: True
  Member of groups: ipausers
  Kerberos keys available: True

También puedes listar todas las cuentas de usuario de tu sistema con el siguiente comando:

ipa user-find

Deberías ver la siguiente salida:

---------------
2 users matched
---------------
  User login: admin
  Last name: Administrator
  Home directory: /home/admin
  Login shell: /bin/bash
  Principal alias: [email protected]
  UID: 384600000
  GID: 384600000
  Account disabled: False

  User login: user1
  First name: hit
  Last name: jethva
  Home directory: /home/user1
  Login shell: /bin/sh
  Principal name: [email protected]
  Principal alias: [email protected]
  Email address: [email protected]
  UID: 384600001
  GID: 384600001
  Account disabled: False
----------------------------
Number of entries returned 2

Conclusión

Enhorabuena! has instalado y configurado con éxito el servidor FreeIPA en CentOS 8. Ahora puedes instalar el cliente FreeIPA y añadirlo al servidor FreeIPA para centralizar la autenticación. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...