Come bloccare gli utenti dopo 5 tentativi di accesso non riusciti?


12

Come bloccare gli utenti dopo 5 tentativi di accesso non riusciti?

Ho raccolto alcune distribuzioni / versioni su come farlo, ma non riesco a provarlo.

RHEL4 : aggiungendo:

auth        required      /lib/security/$ISA/pam_tally.so no_magic_root
account     required      /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root

per:

/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd

RHEL4 : ???

SLES9 : aggiungendo:

auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root

per:

/etc/pam.d/login
/etc/pam.d/sshd

SLES11 o SLES10 : aggiungendo:

auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time

per:

/etc/pam.d/common-auth

E aggiungendo:

account required pam_tally.so

per:

/etc/pam.d/common-account

DOMANDA : Qualcuno può confermare che questo è il modo migliore / funzionante per bloccare gli utenti dopo 5 tentativi di accesso falliti? O COME FARE QUESTO?

ps:

/sbin/pam_tally --user USERNAME --reset

è una cosa utile da fare prima di farlo? Posso bloccare l'utente root con questi? Modificare PAM è una cosa molto delicata, perché le persone potrebbero bloccarsi dal server (intendo es .: l'utente root). Qualche suggerimento quando lo fai?


il modulo tally è il modo per farlo, ma consiglierei pam_tally2 poiché quello originale è abbastanza rotto e non intuitivo. Inoltre, root è aperto per essere bloccato in questo modo ma devi abilitarlo tramiteno_magic_root
Bratchley

A proposito, non consiglierei di fare alcun blocco sull'account di root, questo è il tuo tratteggio di fuga se qualcosa dovesse andare storto (come ad esempio con il blocco dell'account) e gli attaccanti non dovrebbero comunque avere vettori diretti su di esso.
Bratchley,

SLES10 ha bisogno anche di no_magic_root?
gasko peter,

Tutte le distribuzioni GNU / Linux si basano sullo stesso insieme di base di progetti upstream, quindi a meno che Novell non abbia fatto uno sforzo per cambiare la versione del modulo pam_tally in modo da confondere le persone, dovrebbe essere lo stesso su SuSE come su altre distribuzioni.
Bratchley,

1
Sei sicuro che sia una buona idea? In questo modo ogni utente può facilmente impedire a qualsiasi altro utente di accedere. L'uso di un ritardo elevato è IMO più pratico, ma decidi tu stesso.
Marco

Risposte:


17

Potresti dare un'occhiata a fail2ban. Può essere configurato per bloccare un account dopo un determinato numero di tentativi falliti e quindi sbloccarlo dopo un determinato periodo di tempo.

http://www.fail2ban.org/wiki/index.php/Downloads

Se sei davvero serio sull'uso pam_tally, probabilmente vorrai usare pam_tally2invece. Dovrebbe essere installato con qualsiasi pacchetto PAM attuale. Puoi fare un uomo pam_tally2 per vedere come usarlo.

Ecco un esempio per iniziare. Aggiungi quanto segue all'inizio della sezione auth nel file pam /etc/pam.d/password-auth:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

Nello stesso file aggiungilo alla sezione account:

account     required      pam_tally2.so

I parametri sopra riportati sono i seguenti:

  • file=/var/log/tallylog - Il file di registro predefinito viene utilizzato per mantenere i conteggi di accesso.
  • deny=3 - Nega l'accesso dopo 3 tentativi e blocca l'utente.
  • even_deny_root - La politica si applica anche all'utente root.
  • unlock_time=1200 - 20 min. (60 sec. * 20 min. = 1200 sec.)

Se non vuoi bloccare il root, cambia even_deny_root in magic_root .

È discutibile se si desidera bloccare l'account di root. Potresti voler fare qualcosa del genere invece, in cui l'account di root può essere bloccato, ma solo per una durata inferiore rispetto ad altri account:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60

Questo bloccherà l'account root solo per un minuto, tutti gli altri i normali 1200 secondi.

Un file di registro di esempio sarebbe simile al seguente:

$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine

Puoi informarti sugli account bloccati usando il comando pam_tally2:

$ pam_tally2 --user=me
Login           Failures  Latest    failure     From
me                   5    06/04/13  21:21:06    someothermachine

Puoi sbloccare la restrizione in questo modo:

pam_tally2 --user=me --reset
Login           Failures  Latest    failure     From
me                  5     06/04/13  21:21:06    someothermachine

Ora l'account si presenta in pam_tally2 in questo modo:

$ pam_tally2 --user=me
Login           Failures   Latest   failure     From
me                 0

Riferimenti


2

pam_tally2inizialmente mi ha confuso, ma l'ho capito dopo aver seguito man pam_tally2-

  EXAMPLES
   Add the following line to /etc/pam.d/login to lock the account after 4 failed logins.
   Root account will be locked as well. The accounts will be automatically unlocked after
   20 minutes. The module does not have to be called in the account phase because the
   login calls pam_setcred(3) correctly.

   auth     required       pam_securetty.so
   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200
   auth     required       pam_env.so
   auth     required       pam_unix.so

la formulazione sopra è un po 'confusa, perché in realtà aggiungi solo la pam_tally2.soriga.

quindi puoi modificarlo /etc/pam.d/logine aggiungerlo sotto tutte le altre authrighe:

   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200

o se hai /etc/pam.d/system-authpuoi aggiungerlo lì.

non è necessario riavviare o ricaricare alcun servizio: diventa immediatamente attivo per i nuovi accessi locali.

nota: se si desidera pam_tally2applicare anche ad sshdaltri servizi remoti, sarà necessario aggiungere la linea a /etc/pam.d/sshde / o/etc/pam.d/password-auth


per verificare che funzioni, eseguire un tentativo di accesso fallito con un utente valido, quindi eseguire pam_tally2

ad esempio, per un utente chiamato jacobrun:

  $ sudo pam_tally2 -u jacob

e produrrà qualcosa del tipo:

  Login           Failures Latest   failure     From
  jacob           1        01/01/01 11:00:00    tty1

se troppi tentativi di accesso falliscono e l'account è bloccato, è possibile sbloccare manualmente l'account:

  $ sudo pam_tally2 -u jacob --reset
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.