Los módulos de autenticación conectables (PAM) existen en Linux desde hace mucho tiempo. El objetivo de PAM es centralizar la autenticación y los requisitos de autenticación para servicios y módulos.
En un artículo reciente que presentaba PAM, mencioné que muchos cambios de configuración se realizan utilizando otras utilidades. Una de esas utilidades es authconfig
. Esta herramienta se usa con Red Hat Enterprise Linux, hasta RHEL7 inclusive. Las últimas versiones de Fedora y RHEL8 usan authselect
en su lugar, aunque puede encontrar el authconfig
utilidad en un modo de compatibilidad.
El authconfig
La herramienta se creó para ayudar en la configuración del cliente para la autenticación centralizada. Los archivos PAM son solo una parte de esta configuración. Por ejemplo, usando authconfig
para habilitar la autenticación Kerberos realiza cambios en /etc/nsswitch.conf
y el archivo /etc/krb5.conf
archivo además de agregar el pam_krb5
módulo al /etc/pam.d/{system,password}-auth
archivos Ahora también es posible una configuración adicional de PAM con authconfig
herramienta, como veremos en los ejemplos a continuación.
Tres interfaces authconfig
Al igual que muchas utilidades de configuración del sistema, la autenticación se puede configurar con una herramienta de interfaz gráfica de usuario (GUI), a través de una interfaz de texto interactivo (TUI) o en la línea de comandos. Veamos las tres opciones.
La herramienta gráfica la proporciona authconfig-gtk
paquete. Esta utilidad tiene múltiples pestañas para organizar las opciones:
Se accede a la versión de texto interactivo ("TUI") con el authconfig-tui
dominio. Usa la TAB
tecla para mover campos y el SPACE
barra para seleccionar o deseleccionar opciones:
Finalmente, está la herramienta de línea de comandos programable authconfig
. Este comando también tiene muchas opciones que se describen con --help
y en la opción man
página.
Las versiones gráfica y de texto son interactivas, pero tienen opciones limitadas. Por ejemplo, puede habilitar la autenticación mediante un lector de huellas dactilares en las tres interfaces, pero solo la herramienta de línea de comandos tiene una opción para configurar pam_faillock
módulo. Cambios en la seguridad de la contraseña usando pam_pwquality
se realizan con la herramienta gráfica y la herramienta de línea de comandos, pero no con la interfaz de texto interactivo.
Primer ejemplo:habilitar el lector de huellas dactilares
Antes de llegar a los detalles del uso de las opciones de la línea de comandos, veamos los cambios realizados al habilitar el lector de huellas dactilares mediante authconfig-tui
o authconfig-gtk
:
[demo]$ grep fprintd /etc/pam.d/* # before enabling the fingerprint reader
/etc/pam.d/fingerprint-auth:auth sufficient pam_fprintd.so
/etc/pam.d/fingerprint-auth-ac:auth sufficient pam_fprintd.so
Con la opción deshabilitada, solo el fingerprint-auth
El archivo contiene referencias al fprintd
módulo. Después de habilitar la opción, se agregan nuevas líneas a /etc/pam.d/system-auth
archivos:
[demo]$ grep fprintd /etc/pam.d/* # after enabling the fingerprint reader
/etc/pam.d/fingerprint-auth:auth sufficient pam_fprintd.so
/etc/pam.d/fingerprint-auth-ac:auth sufficient pam_fprintd.so
/etc/pam.d/system-auth:auth sufficient pam_fprintd.so
/etc/pam.d/system-auth-ac:auth sufficient pam_fprintd.so
Segundo ejemplo:configuración de pwquality
La herramienta gráfica también tiene Opciones de contraseña pestaña que controla el /etc/security/pwquality
archivo:
[demo]# grep '^[^# ]' /etc/security/pwquality.conf # before changing a field
Este archivo tiene muchos comentarios útiles que muestran la sintaxis y los valores predeterminados. Después de cambiar uno de los campos, todas las opciones se establecen al final del archivo:
[demo]# grep '^[^# ]' /etc/security/pwquality.conf # after changing a field
minlen = 12
minclass = 2
maxrepeat = 0
maxclassrepeat = 0
lcredit = 0
ucredit = 0
dcredit = 0
ocredit = 0
Cambié la longitud requerida y el número requerido de clases de caracteres.
Utilice la herramienta CLI authconfig
Una de las cosas difíciles de recordar al usar authconfig
en la línea de comandos es agregar --update
opción. Hay un --test
opción para verificar la sintaxis, un --update
opción para actualizar el authconfig
información y los archivos de configuración reales para las opciones especificadas, y un --updateall
opción que restablece todos los archivos de configuración para que coincidan con authconfig
ajustes. El --updateall
La opción es una excelente manera de eliminar todos los cambios manuales que un administrador puede haber realizado en el sistema. Mi flujo de trabajo generalmente solo usa --update
opción para cada cambio.
Si ejecuta authconfig
comandos como un usuario normal, se le solicita una contraseña para escalar los privilegios antes de que se ejecuten los comandos. Esto es cierto incluso con --help
consultas:
[demo]# authconfig --help
Usage: authconfig [options] {--update|--updateall|--test|--probe|--restorebackup <name>|--savebackup <name>|--restorelastbackup}
Options:
...omitted...
--test do not update the configuration files, only print new settings
--update, --kickstart opposite of --test, update configuration files with changed settings
--updateall update all configuration files
Como se ve en las versiones GUI y TUI, la autenticación de huellas dactilares es un interruptor de encendido/apagado. Las opciones de la línea de comandos son:
[demo]# authconfig --help | grep finger
--enablefingerprint enable authentication with fingerprint readers by default
--disablefingerprint disable authentication with fingerprint readers by default
Y el comando para habilitar la función de huella digital es:
[demo]# authconfig --enablefingerprint --update
Las configuraciones de contraseña que están disponibles en la versión GUI pero no en la versión TUI también se pueden establecer en la línea de comandos.
[demo]# authconfig --help | grep passmin
--passminlen=<number> minimum length of a password
--passminclass=<number> minimum number of character classes in a password
Puede establecer varias opciones al mismo tiempo:
[demo]# authconfig --passminlen=12 --passminclass=2 --update
Dado que no todos los pwquality
la configuración se puede realizar con todas las versiones de authconfig
, es común usar una de las opciones de la línea de comandos, como --passminlen
opción, para configurar inicialmente el /etc/security/pwquality
expediente. La utilidad establece valores para todas las opciones en la parte inferior del archivo. Un administrador puede editar manualmente cualquiera de esos campos fácilmente con un sed
o mediante el comando lineinfile
de Ansible módulo.
El faillock
module es un ejemplo de un cambio en los archivos de configuración de PAM que solo está disponible con la versión de línea de comandos de authconfig
. Este módulo cuenta los intentos de autenticación fallidos por usuario durante un intervalo específico y bloquea la cuenta si hay demasiadas autenticaciones fallidas consecutivas.
[demo]# authconfig --help | grep fail
--enablefaillock enable account locking in case of too many consecutive authentication failures
--disablefaillock disable account locking on too many consecutive authentication failures
--faillockargs=<options> the pam_faillock module options
El faillock
El módulo también es un poco diferente. Hay opciones para habilitar y deshabilitar, pero también hay una opción para pasar argumentos. El umbral de conteo se puede ajustar, al igual que la duración del intervalo y el tiempo de espera de desbloqueo. También puede elegir si el módulo se aplica solo a usuarios comunes o también a la cuenta raíz. La página man para pam_faillock
muestra las opciones válidas y muestras de la línea final en el /etc/pam.d/*
archivos Los --faillockargs
opción para authconfig
espera una cadena entre comillas de todas las opciones que configuró en los archivos PAM. Si lo deja desactivado, se utilizan las opciones predeterminadas del módulo.
Cuando está deshabilitado, no hay referencias a pam_faillock
módulo. Sin embargo, si grep
por solo fallar es posible que vea el pam_faildelay
módulo:
[demo]# grep faillock /etc/pam.d/* # before enabling the faillock module
Asegúrese de citar el faillock
argumentos si incluye esa opción:
[demo]# authconfig --enablefaillock --faillockargs='deny=4 unlock_time=300' --update
Después de habilitar el módulo, se agregan varias líneas a varios /etc/pam.d/*auth
archivos.
¿Qué pasa con las ediciones manuales de los archivos PAM?
Durante la exploración de archivos PAM modificados por authconfig
, puede notar que varios archivos en /etc/pam.d
directorio tiene un comentario en la parte superior sobre las ediciones manuales que la utilidad sobrescribe. La utilidad se ha ampliado para cubrir muchas de las funciones estándar de PAM, pero a veces es necesario realizar cambios manuales. Si realiza cambios manuales, debe deshabilitar los cambios directamente desde authconfig
.
Hay un artículo de la base de conocimiento y una publicación de blog de servicios que proporcionan pasos para las ediciones manuales. También puede encontrar ejercicios de capacitación formales para cambios manuales y profundizar en varios módulos específicos asistiendo al curso Red Hat Security:Linux in Physical, Virtual, and Cloud (RH415).
Después de todo eso, ¿es una herramienta obsoleta?
El authconfig
Las utilidades se crearon originalmente para ayudar a configurar diferentes tipos de autenticación centralizada. Durante muchos años, se ha expandido para manejar también otras configuraciones de PAM. En los sistemas actuales, la mayor parte de la autenticación centralizada ahora se configura a través de ipa-client-install
o realmd
, los cuales esperan el sssd
y el pam_sss
módulos. El authselect
utilidad reemplaza authconfig
en versiones recientes de Fedora y se introdujo en Red Hat Enterprise Linux con la versión 8. Esta nueva herramienta administra configuraciones a través de perfiles y ya no edita todos los diferentes archivos de configuración centralizados. El foco está en /etc/nsswitch.conf
y los archivos de configuración de PAM. Tiene muchas opciones similares para habilitar y deshabilitar funciones como lectores de huellas dactilares, tarjetas inteligentes y faillock
. módulo. Puede obtener más información sobre la migración con man authselect-migration
.
[ Descarga gratuita:hoja de referencia de comandos avanzados de Linux. ]