Fallimento: mostra il tentativo di connessione non riuscito in Linux
Un amministratore di sistema dovrebbe monitorare qualsiasi attività insolita nel sistema. Un utente non autorizzato può tentare di accedere al sistema provando password diverse. Una funzionalità di Linux che può essere utilizzata per monitorare questi tentativi di accesso falliti è l’utilità “faillog”.
Il comando “faillog” visualizza tutti i tentativi di accesso falliti di un utente. Se ci sono troppi tentativi falliti, l’account può essere disabilitato usando “faillog”. Questo può essere utilizzato per bloccare l’account per alcuni secondi dopo che un utente non riesce ad accedere.
Sintassi del comando Faillog
Questi errori sono memorizzati in un file chiamato “faillog” presente nella directory /var/log. Il comando “faillog” utilizza questo file (/var/log/faillog) per visualizzare gli accessi non riusciti. Il comando autointrodotto “faillog” stampa tutti i tentativi falliti da parte di un utente:
# faillog
Login Failures Maximum Latest On
student 1 0 06/28/12 15:27:27 +0530 tty1
Dopo un accesso non riuscito, l’utente può essere bloccato per un periodo di tempo specificato con l’opzione -l. Per bloccare un account (ad es. studente) per 1 minuto (60 secondi), utilizzare quanto segue:
# faillog -l 60 -u student
# faillog
Login Failures Maximum Latest On
student 2 0 06/28/12 15:28:32 +0530 tty1 [51s left]
Come puoi vedere, il tempo rimanente dall’accesso non riuscito viene visualizzato nell’ultima colonna. L’opzione -u viene utilizzata per specificare un nome utente (il cui account deve essere bloccato). Inoltre, è possibile impostare un limite massimo al numero di tentativi di connessione tramite l’opzione -m.
# faillog -m 0 -u student
Questo comando disabiliterà l’account “studente” dopo 3 accessi falliti.
pam_tally.so:
Se leggi attentamente, “faillog” non registra gli errori, li visualizza solo. L’effettivo monitoraggio di tali tentativi è responsabilità del modulo pam_tally.so. Ora, prima di entrare nei dettagli di questo modulo, diamo una breve panoramica di PAM.
Moduli di autenticazione collegabili (PAM)
Come suggerisce il nome, PAM esegue tutte le attività di autenticazione in Linux. Ma questi moduli sono “collegabili”, nel senso che possono essere utilizzati con altre applicazioni. PAM non è un “programma o utilità” che fornisce funzioni di autenticazione. È un modulo che aiuta tutte le utilità che necessitano di funzioni di autenticazione. Ad esempio, quando accediamo a qualsiasi terminale (prompt simile a questo: “localhost login:”) su un sistema Linux, l’utilità in esecuzione in background è l’utilità “login”. Questa utility utilizza i moduli PAM. Altre utility come ssh (utilizzato per l’accesso remoto), su (per cambiare utente), at, cron (entrambi utilizzati per la pianificazione delle attività) ecc. usano anche moduli PAM per l’autenticazione.
Quindi torniamo alla nostra discussione sul modulo pam_tally.so. Questo modulo conta i tentativi di accesso falliti e li memorizza nel file /var/log/faillog. Se il tuo sistema non è configurato per utilizzare questo modulo, “faillog” non funzionerà. Quindi, per configurare il sistema per utilizzare questo modulo, dobbiamo modificare il file /etc/pam.d/system-auth. Aggiungi queste 2 righe al file:
auth required pam_tally.so
account required pam_tally.so
Il mio file /etc/pam.d/system-auth ha questo aspetto (puoi vedere queste righe circondate da commenti, grassetto e corsivo):
#%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
Grazie per aver letto e per favore dai il tuo suggerimento nella sezione commenti qui sotto.