FreeIPA es una herramienta de login centralizado, es decir, sirve para gestionar todos los usuarios, los hosts y los accesos de una manera centralizada. Permite varias opciones además del clasico login con contraseña, por ejemplo, OTP, mediante certificados SSH, servidor RADIUS, Tickets… La instalación no es demasiado complicada y permite varias opciones. Es muy recomendable para poder tener bien gestionados todos los accesos.
Para instalar FreeIPA es necesario tener un servidor DNS. En este caso el servidor DNS va a ser externo aquí un tutorial de como instalar un servidor DNS. Pero también se puede instalar en la misma máquina. Como sistema operativo, se utilizará CentOS ya que es el único además de fedora que trae en los repositorios oficiales el paquete de freeIPA
También hay que tener en cuenta los requisitos mínimos para instalar FreeIPA
Servidor
Para empezar, configurar correctamente el archivo hosts
vim /etc/hosts
192.168.0.103 freeipa.ichasco.com freeipa
Deshabilitar el firewall (o si no abrir los puertos necesarios)
systemctl disable firewalld
systemctl stop firewalld
Antes que nada, desinstalar chrony e instalar ntp
yum erase chrony
yum install ntp
Lanzar el demonio ntp
ntpd
A continuación instalar el instalador del servidor freeIPA
yum install ipa-server
Y empezar a con la instalación de FreeIPA
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. This includes: * Configure a stand-alone CA (dogtag) for certificate management * Configure the Network Time Daemon (ntpd) * Create and configure an instance of Directory Server * Create and configure a Kerberos Key Distribution Center (KDC) * Configure Apache (httpd) 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 [freeipa.ichasco.com]: freeipa.ichasco.com The domain name has been determined based on the host name. Please confirm the domain name [ichasco.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 [ICHASCO.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): The IPA Master Server will be configured with: Hostname: freeipa.ichasco.com IP address(es): 192.168.0.103 Domain name: ichasco.com Realm name: ICHASCO.COM Continue to configure the system with these values? [no]: yes
Y una vez que termine de configurar todos los paquetes, ya estaría listo. Ahora habría que conectarse a la web mediante un navegador
https://freeipa.ichasco.com
Ahora se pueden crear usuarios, añadirles claves SSH, OTPs…
Cliente Linux
En este caso el cliente que vamos a utilizar va a ser un cliente Debian
Añadir los repositorios necesarios
vim /etc/apt/sources.list
deb http://apt.numeezy.fr jessie main
Añadir la clave publica
wget -qO - http://apt.numeezy.fr/numeezy.asc | apt-key add -
Actualizar los repositorios
apt update
Instalar el cliente
apt install freeipa-client
Crear la carpeta para almacenar los certificados
mkdir -p /etc/pki/nssdb
Crear la base de datos para almacenar las credenciales
certutil -N -d /etc/pki/nssdb
Crear la carpeta para el proceso
mkdir -p /var/run/ipa
Eliminar la configuración por defecto
rm -f /etc/ipa/default.conf
Lanzar el configurador (cuando pregune algo, dejarlo por defecto)
ipa-client-install --no-ntp --no-dns-sshfp --mkhomedir
Using existing certificate '/etc/ipa/ca.crt'. DNS discovery failed to determine your DNS domain Provide the domain name of your IPA server (ex: example.com): ichasco.com Provide your IPA server name (ex: ipa.example.com): freeipa.ichasco.com The failure to use DNS to find your IPA server indicates that your resolv.conf file is not properly configured. 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 Hostname: ns1.ichasco.com Realm: ICHASCO.COM DNS Domain: ichasco.com IPA Server: freeipa.ichasco.com BaseDN: dc=ichasco,dc=com Continue to configure the system with these values? [no]: yes Synchronizing time with KDC... Unable to sync time with IPA NTP server, assuming the time is in sync. Please check that 123 UDP port is opened. User authorized to enroll computers: admin Password for admin@ICHASCO.COM: Enrolled in IPA realm ICHASCO.COM Created /etc/ipa/default.conf New SSSD config will be created Configured sudoers in /etc/nsswitch.conf Configured /etc/sssd/sssd.conf Added the CA to the default NSS database. Configured /etc/krb5.conf for IPA realm ICHASCO.COM trying https://freeipa.ichasco.com/ipa/json Forwarding 'ping' to json server 'https://freeipa.ichasco.com/ipa/json' Forwarding 'env' to json server 'https://freeipa.ichasco.com/ipa/json' 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_rsa_key.pub Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub Forwarding 'host_mod' to json server 'https://freeipa.ichasco.com/ipa/json' SSSD enabled Configured /etc/openldap/ldap.conf Configured /etc/ssh/ssh_config Configured /etc/ssh/sshd_config Configuring ichasco.com as NIS domain. Client configuration complete.
Habilitar la autocreación de los homes de los usuarios de LDAP
echo 'session required pam_mkhomedir.so' >> /etc/pam.d/common-session
Modificar el archivo de configuración de nsswitch.conf
sed -i -e 's/compat/files/g' /etc/nsswitch.conf
Y por último, reiniciar la máquina
reboot
Y con esto ya nos podríamos conectar por ssh con nuestro usuario
Hola, muy buen tutorial. Si quisiera conectar a mis pcs linux para iniciar sesión grafica que debo hacer?. Gracias
Buenas,
Configurar el cliente linux para que se conecte contra el servidor FreeIPA
Un saludo
Con eso ya también.puedo iniciar sesión con clientes Windows???
Meterlos al dominio de freeipa-server?
Eso es, tendrás que meter el windows al dominio de freeIPA
mi pana expiro las llaves del ipa como hago ene se caso, tambien en los registros equipos en el dns estan se estan duplicando con ipv6
Prueba a desactivar IPv6 en el equipo de IPA
Hola,
Tengo freeipa instalado, como uso el servidor DNS para resolver los hosts internos una vez que ya los di de alta en la zona?
Saludos