Sie sind auf Seite 1von 12

Red Hat Enterprise Linux 8

Uso de authselect para modificar


mecanismos de autenticación
Procedimiento elaborado por:
Mtro. Carrillo Sánchez Ricardo David
Correo: dominus.ceo@gmail.com

Aclaraciones
Todos los logotipos y nombres relacionados a Red Hat, Red Hat
Enterprise Linux, (logo Shadowman), JBoss, Red Hat OpenShift,
Fedora (el logo del infinito), Linux, y relacionados, son marcas
registradas de sus respectivos dueños.

Introducción
Con la liberación de Red Hat Enterprise Linux 8 (en adelante RHEL 8), se han introducido diversas
mejoras y características que hacen a este sistema operativo perfecto para ambientes virtualizados, on-
premise y por supuesto de nube.

Una de las características introducidas, tiene que ver con el manejo de la autenticación a través de
authselect, que para RHEL 8 ha sustituido a la conocida authconfig (además de todas las utilerías
relacionadas) como herramienta para la configuración de la autenticación de usuarios sobre este
sistema operativo

Con authselect, la configuración de la autenticación en RHEL 8 se simplifican, con authconfig, con la cual
se creaban y modifican varios y diferentes archivos de configuración para la autenticación del sistema,
por consiguiente, este proceso era enredoso y complejo en el caso de realizar troubleshooting, fuese
más complejo, ya que la resolución de un problema requeriría una mayor inversión de tiempo.

Sin duda, con authselect se da la simplicidad de configuración de la autenticación de un sistema RHEL


que anteriormente no se tenía, y por lo que su uso da orden, eficacia y simplicidad en llevar acabo la
administración de administración de sistemas en relación con la autenticación.

Beneficios
Esta nueva herramienta cuenta con los siguientes beneficios:
• Manejar el concepto de perfiles predefinidos que pueden ser universalmente utilizados con
modernos sistemas de autenticación existentes, algunos ejemplos de estos perfiles tenemos:

o SSSD
o Winbind
o NIS (Este existe por razones de compatibilidad con sistemas legacy).

• En versiones previas de RHEL 8, se usaba la utilería authconfig, la cual creaba y modificaba


diferentes archivos de configuración, haciendo las tareas de troubleshooting complejas; con
authselect este proceso de configuración se simplifica, haciendo que este proceso sea más
sencillo.

Desventajas
Como nueva implementación en RHEL 8, está lejos de ser perfecta, cuenta con las siguientes
desventajas:

• Aunque ciertamente authselect cuenta con la habilidad para crear respaldos de la configuración
existente, no provee opción alguna para restaurarla automáticamente.
• Al no existir un proceso de restauración que pueda ser ejecutado con la herramienta, los
administradores de sistemas deben de copiar manualmente los archivos en orden de restaurar
la configuración, esto en caso de haber hecho un upgrade al sistema y a causa de eso, algo vaya
mal específicamente con el proceso de autenticación.
• Al momento de escribir este documento, se nos percatamos que no existen herramientas
gráficas disponibles que sirvan como apoyo para la modificación de los mecanismos de
autenticación mediante authselect.

Consideraciones
Para la implementación de authselect como mecanismo de autenticación en RHEL 8, tome en cuenta
los siguientes puntos:

• No utilizar authselect si el host es parte de Red Hat Enterprise Linux Identity Management o
Active Directory, ya que las configuraciones realizadas mediante la utilería ipa-client-install,
realiza modificaciones sobre la autenticación, si se utiliza las modificaciones tienen que
realizarse manualmente.
• En ambientes de contenedores, la configuración de los mecanismos de autenticación con la
utilería authselect, puede llegar a generar alertas SELinux, por lo que hay que estar atentos a las
bitácoras en busca de algún evento que derive en una negación de servicio.
• Asegurarse de que los archivos relevantes relacionados al proceso de autenticación no se
configuren a mano, de hacerlo, en caso de que esté mal configurado, los usuarios locales no
podrán ser capaces de autenticarse.
• En caso de modificar directamente el archivo /etc/nsswitch.conf, authselect debido a que hace
uso de perfiles personalizados, se pueden llegar a tener problemas.
• Asegúrese de que el servicio sssd este habilitado y esté funcionando para un reinicio del sistema.
• Cuando se implementa un perfil personalizado, este se aplica a cada usuario que se firme al host
en el cual se aplicaron los perfiles.
• Authselect modifica información y configuración sobre los directorios/archivos siguientes:
o /etc/nsswitch.conf – La modificación de este archivo va en relación con la
configuración de NSS (NSS, Name Service Switch), que es utilizado por la librería GNU
C y otras aplicaciones, para determinar las fuentes de donde se obtiene la información
de los usuarios relacionados a la base de datos o servicio en un rango de categorías. El
orden de la configuración de las fuentes y mecanismos de autenticación en este
archivo es importante.

o /etc/pam.d/* - Con authselect, se modifican archivos en esta ubicación, además


también se toma de base para realizar copias al momento de generar nuevos perfiles.
Por otro lado, recordemos este directorio se manejan módulos relacionados a las tareas
de autenticación de servicios sobre un sistema (PAM, Pluggable Authentication
Modules).

o /etc/dconf/db/distro.d/* - Sobre esta ruta se encuentran aquellos archivos que


utiliza dconf para modificar el comportamiento del escritorio, por ejemplo, el archivo
20-authselect, se utiliza para cambiar el comportamiento de la pantalla de inicio de
sesión, ya sea con la finalidad de habilitar o deshabilitar características de autenticación
con smartcards y la autenticación con huella dactilar, por mencionar algunos.

o /etc/dconf/db/distro.d/locks/* - Bien pudiera incluirse en el punto anterior, sin


embargo, merece mención especial, ya que en este subdirectorio es donde se pueden
modificar los valores de bloqueo para los firmados al sistema.

Objetivo
Configurar los mecanismos autenticación de un sistema operativo RHEL 8 o CentOS 8 mediante el uso
de la utilería authselect.

Alcance
El procedimiento este conformado por las siguientes secciones:

a. Elección de perfiles con authselect


b. Modificación de perfiles authselect activos
c. Creación e implementación de perfiles personalizados
d. Ejemplos para usar authselect

Fuera de alcance
Queda fuera del alcance de este documento:
• Configuración de smartcards y fingerprint con authselect.

Procedimiento

a. Elección de perfiles con authselect


Como administrador de sistemas, se puede seleccionar un perfil para host específico, el cual será
aplicado a cada usuario que se firme en el equipo.
1. Antes de cambiar de perfil, se sugiere validar cual es el que se tiene en ejecución, para ello
ejecutamos:

~]#authselect current

~]#authselect current
ID del perfil: sssd
Características activas:
- with-fingerprint
- with-silent-lastlog

2. Ya teniendo en cuenta el perfil en aplicado por defecto, es conveniente saber los perfiles
disponibles en el sistema:

3. De acuerdo con las necesidades de la organización, se puede seleccionar el perfil más


apropiado1 con la misma utilería authselect. Por ejemplo, si tuviéramos servicio NIS en la
organización, se puede ejecutar la siguiente instrucción:

~]#authselect select nis

1
Se debe tomar en cuenta, que la elección debe ser con relación al proveedor de autenticación con el que la organización trabaje.
Como podemos ver, la ejecución de authselect con la selección del perfil NIS, la herramienta
realiza la modificación de varios mapas dentro de nsswitch.conf, que evidentemente si se decide
modificar a mano (no recomendable), se es propenso a cometer algún error.

4. Opcionalmente, podemos revisar el contenido del archivo antes mencionado en /etc/:

Verificando el estado del perfil seleccionado:

5. De igual forma se puede revisar el contenido del archivo /etc/pam.d/system-auth (no modificar
este archivo manualmente), para verificar los cambios realizados en este:

6. Ahora seleccionamos el perfil con el que contábamos inicialmente y lo verificamos:


7. Como podemos ver, en la parte de las características activas no contamos con ellas (como las
teníamos inicialmente), por lo que se hace lo propio para establecer el mismo estado:

b. Modificación de perfiles authselect activos


Como administrador de sistemas, se puede modificar los perfiles por defecto (sssd, winbind, o nis),
considerando las necesidades de la organización. El archivo para modificar es /etc/authselect/user-
nsswitch.conf, pero es importante no realizar configuración alguna sobre los siguientes elementos:

• passwd
• group
• netgroup
• automount
• services

Con la modificación del archivo /etc/authselect/user-nsswitch.conf, y luego la selección de un perfil con


authselect, los cambios hechos, se verán reflejados en /etc/nsswitch.conf2.

1. Verificamos el estado actual del sistema con authselect:

~]# authselect current

2. Editamos el archivo /etc/authselect/user-nsswitch.conf.


a. Realizamos el cambio en la línea amarrilla con el editor de nuestra preferencia:

passwd: sss files systemd


shadow: files sss
group: sss files system

b. Por la línea siguiente (cyan):

2
Los cambios no reconocidos se sobrescribirán por la configuración del perfil por defecto seleccionado.
passwd: sss files systemd
shadow: sss files
group: sss files systemd

c. Guardamos los cambios y validamos:

d. Antes de aplicar los cambios con base a los cambios realizados, verificamos ahora el
contenido de /etc/nsswitch.conf:

~]# egrep -e "shadow" /etc/nsswitch.conf


# shadow: db files
shadow: files sss

e. Se aplican las modificaciones con la utilería authselect, luego verificamos nuevamente:

~]# authselect apply-changes


Se han aplicado los cambios.

f. Como vemos, al aplicar los cambios estos se propagarán al archivo /etc/nsswitch.conf.

3. Creación e implementación de perfiles personalizados


Entre las labores de un administrador de sistemas, está la de realizar las modificaciones pertinentes para
que un equipo se mantenga en operación. Con authselect, como se ha visto, sirve para realizar
modificaciones relacionadas con la autenticación de un usuario a un sistema.

Con authselect, se puede escoger un perfil para la autenticación del usuario, y también permite crear e
implementar perfiles personalizados y estos pueden estar basados en los perfiles existentes (sssd, nis
, o winbind).

A continuación, se realizan los pasos para llevar a cabo la creación de un perfil personalizado:

a. Creación del perfil personalizado user-harndning utilizando authselect create-profile,


basado en el perfil sssd:

~]# authselect create-profile user-hardening -b sssd --symlink-meta --symlink-pam


Se creó el nuevo perfil en /etc/authselect/custom/user-hardening
A continuación, una breve explicación de las opciones dadas:

Opcion Detalle
Esta opción se integrada con la finalidad de utilizar templates
PAM existentes como enlaces simbólicos al perfil creado,
--symlink-pam
evitando así que se copien archivos al directorio creado por el
perfil que definimos.
De manera similar, esta opción lo que realiza es indicar que los
meta files, así como los archivos README y REQUIREMENTS
--symlink-meta
sean enlaces simbólicos a los archivos originales del perfil en
lugar hacer una copia.

NOTAS
• La inclusión de estas opciones asegura que en futuras actualizaciones a las plantillas del
directorio PAM y archivos meta relacionados al perfil se vean reflejadas en los perfiles
personalizados creados.

• La ejecución del comando crea una copia del archivo /etc/nsswitch.conf en el directorio
/etc/authselect/custom/user-hardening/.

2. Configure ahora el archivo /etc/authselect/custom/user-hardening/nsswitch.conf de acuerdo


sus necesidades:

a. Al momento de crear el perfil user-hardening, ingresamos a la ruta donde se generaron


los archivos relacionados a este y verificamos el contenido del archivo nsswitch.conf:

~]# cd /etc/authselect/custom/user-hardening/
~]#cat nsswitch.conf
3. Seleccionamos el perfil personalizado ejecutando la herramienta authselect, de la siguiente
forma:
a. Seleccionando un perfil personalizado:

~]# authselect select custom/user-hardening

b. Seleccionando un perfil personalizado habilitando opciones:

~]# authselect select custom/user-hardening with-mkhomedir with-sudo

NOTA
• Para este ejemplo se realiza la instalación del paquete oddjob-mkhomedir para que en el primer
firmado del usuario, se le cree su directorio hogar.
• Debe contar con el servicio oddjobd, para la creación automática del directorio hogar, de otra
forma, el primer firmado del usuario, generará errores.

~]#systemctl enable oddjobd


Created symlink /etc/systemd/system/multi-user.target.wants/oddjobd.service →
/usr/lib/systemd/system/oddjobd.service.
]# systemctl status oddjobd
● oddjobd.service - privileged operations for unprivileged applications
Loaded: loaded (/usr/lib/systemd/system/oddjobd.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Created symlink /etc/systemd/system/multi-user.target.wants/oddjobd.service →
/usr/lib/systemd/system/oddjobd.service.
[root@test-rhel8 home]# systemctl status oddjobd
● oddjobd.service - privileged operations for unprivileged applications
Loaded: loaded (/usr/lib/systemd/system/oddjobd.service; enabled; vendor preset: disabled)
Active: inactive (dead)

c. Verificamos su estado y realizamos un firmado:

Vemos que tiene las características que indicamos y al firmarse el usuario, el directorio hogar se
ha creado.

Ejemplos para configuración de mecanismos de


autenticación con utilería authselect
a. Autenticación con LDAP, creación de directorio hogar de forma automática:

~]# authselect select sssd with-faillock with-mkhomedir

Ya de paso, teniendo seleccionado el proveedor de autenticación con authselect, podríamos


realizar algunas configuraciones adicionales para la autenticación contra un IdM o un Directory
Server:

~]# cat /etc/sssd/sssd.conf


[domain/ca.example.com]
ldap_uri="ldaps://idm-n1.ca.example.com ldaps://idm-n2.ca.example.com ldaps://idm-n3.ca.example.com"
ldap_group_search_base = cn=groups,cn=accounts,dc=ca,dc=example,dc=com
ldap_search_base = cn=accounts,dc=ca,dc=example,dc=com
cache_credentials = True
krb5_store_password_if_offline = True
ipa_domain = ca.example.com
id_provider = ipa
auth_provider = ipa
access_provider = ipa
ipa_hostname = test-rhel8.ca.example.com
chpass_provider = ipa
ipa_server = _srv_, idm-n1.ca.example.com
ldap_tls_cacert = /etc/ipa/ca.crt
autofs_provider = ipa
#ipa_automount_location = homes-nfs
[sssd]
#services = nss, sudo, pam, autofs, ssh
services = nss, sudo, pam, ssh
domains = ca.example.com
[nss]
homedir_substring = /home

[pam]

[sudo]

[autofs]

[ssh]

[pac]

[ifp]

[secrets]

[session_recording]

Conclusiones
Sin duda, las mejoras realizadas a RHEL 8 buscan desde simplificar procesos de configuración hasta
muchas otras como la de brindar estabilidad, mejorar la funcionalidad de las aplicaciones provistas y de
seguridad, con authselect, contamos con la manera de modificar los mecanismos de autenticación
(ingreso al sistema operativo a través de la acción de proveer usuario/contraseña), sin tener que hacerlo
manualmente.

Con la provisión de herramientas para crear perfiles personalizados en relación con los mecanismos de
seguridad, se da la posibilidad de realizar las adaptaciones necesarias de acuerdo con las necesidades
de una organización lo que sin duda trae flexibilidad y practicidad en la administración del sistema. Por
otro lado, esperemos que en futuras versione se pueda agregar características como restauración de
los perfiles a partir de un respaldo o se extiendan funcionalidades para realizar la modificación de
servicios como el SSSD, sería genial.

Si cuenta con la oportunidad de experimentar la misma, verificara sus beneficios y será de gran utilidad
para un administrador de sistemas.
Recursos adicionales
Se puede consultar los siguientes recursos adicionales:

• Red Hat Inc (s.f.). Red Hat Enterprise Linux 8 Using authselect on a Red Hat Enterprise Linux host
- Understanding, selecting, modifying, and creating authselect profile. Consultado en octubre 21
del 2019. Recurso disponible en del proveedor en
https://access.redhat.com/documentation/en-
us/red_hat_enterprise_linux/8/pdf/using_authselect_on_a_red_hat_enterprise_linux_host/Re
d_Hat_Enterprise_Linux-8-Using_authselect_on_a_Red_Hat_Enterprise_Linux_host-en-
US.pdf

• Server World, (s.f.). Fedora 29 - OpenLDAP: Configure LDAP Client. Consultado en octubre 22
del 2019. Recurso disponible en del proveedor en https://www.server-
world.info/en/note?os=Fedora_29&p=openldap&f=3

• Git Hub. (s.f.). Select authentication and indentity profile to use on the system. Consultado en
octubre 22 del 2019. Recurso disponible en del proveedor en
https://github.com/pbrezina/authselect/tree/master/profiles/sssd

• Páginas del manual del sistema authselect-profiles(5) , authselect(8), nsswitch.conf(5) y


PAM(8), además de revisar la documentación de los perfiles por defecto ubicada en
/usr/share/authselect/default.

Das könnte Ihnen auch gefallen