Fallo: muestra el intento fallido de conexión en Linux
Un administrador del sistema debe monitorear cualquier actividad inusual en el sistema. Un usuario no autorizado puede intentar acceder al sistema probando diferentes contraseñas. Una característica de Linux que se puede usar para monitorear estos intentos fallidos de inicio de sesión es la utilidad «faillog».
El comando «faillog» muestra todos los intentos fallidos de inicio de sesión de un usuario. Si hay demasiados intentos fallidos, entonces la cuenta se puede deshabilitar usando «faillog». Esto se puede usar para bloquear la cuenta durante unos segundos después de que un usuario no pueda iniciar sesión.
Sintaxis del comando Faillog
Estos errores se almacenan en un archivo llamado «faillog» presente en el directorio /var/log. El comando «faillog» usa este archivo (/var/log/faillog) para mostrar los inicios de sesión fallidos. El comando «faillog» autointroducido imprime cualquier intento fallido de un usuario:
# faillog
Login Failures Maximum Latest On
student 1 0 06/28/12 15:27:27 +0530 tty1
Después de un inicio de sesión fallido, se puede bloquear al usuario durante un tiempo especificado con la opción -l. Para bloquear una cuenta (por ejemplo, estudiante) durante 1 minuto (60 segundos), use lo siguiente:
# faillog -l 60 -u student
# faillog
Login Failures Maximum Latest On
student 2 0 06/28/12 15:28:32 +0530 tty1 [51s left]
Como puede ver, el tiempo restante desde el inicio de sesión fallido se muestra en la última columna. La opción -u se usa para especificar un nombre de usuario (cuya cuenta se bloqueará). Además, se puede establecer un límite máximo en el número de intentos de conexión a través de la opción -m.
# faillog -m 0 -u student
Este comando deshabilitará la cuenta de «estudiante» después de 3 inicios de sesión fallidos.
pam_tally.so:
Si lee con atención, «faillog» no registra los errores, solo los muestra. La supervisión real de tales intentos es responsabilidad del módulo pam_tally.so. Ahora, antes de entrar en los detalles de este módulo, tengamos una breve descripción general de PAM.
Módulos de autenticación conectables (PAM)
Como sugiere el nombre, PAM realiza todas las tareas de autenticación en Linux. Pero estos módulos son «conectables», lo que significa que pueden usarse con otras aplicaciones. PAM no es un «programa o utilidad» que proporcione funciones de autenticación. Es un módulo que ayuda a todas las utilidades que necesitan funciones de autenticación. Por ejemplo, cuando iniciamos sesión en cualquier terminal (indicador que se parece a esto: «iniciar sesión en localhost:») en un sistema Linux, la utilidad que se ejecuta en segundo plano es la utilidad de «inicio de sesión». Esta utilidad utiliza módulos PAM. Otras utilidades como ssh (utilizado para el inicio de sesión remoto), su (para cambiar de usuario), at, cron (ambas utilizadas para la programación de tareas), etc. también utilizan módulos PAM para la autenticación.
Así que volvamos a nuestra discusión sobre el módulo pam_tally.so. Este módulo cuenta los intentos de inicio de sesión fallidos y los almacena en el archivo /var/log/faillog. Si su sistema no está configurado para usar este módulo, «faillog» no funcionará. Entonces, para configurar el sistema para usar este módulo, necesitamos editar el archivo /etc/pam.d/system-auth. Agregue estas 2 líneas al archivo:
auth required pam_tally.so
account required pam_tally.so
Mi archivo /etc/pam.d/system-auth se ve así (puede ver estas líneas rodeadas de comentarios, en negrita y cursiva):
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
###---------Added by Raghu---------###
auth required pam_tally.so
###--------------------------------###
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
###---------Added by Raghu---------###
account required pam_tally.so
###--------------------------------###
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
Gracias por leer y por favor dé su sugerencia en la sección de comentarios a continuación.