Come si modifica il ritardo che si verifica dopo aver inserito una password errata?


32

Dopo aver inserito una password errata al prompt di accesso, si verifica un ritardo di circa 3 secondi. Come posso cambiarlo su un sistema Linux con PAM?


1
Ricevo la necessità di un ritardo dal punto di vista della sicurezza, ma il ritardo predefinito è piuttosto fastidioso
Mike Pennington,

3
Questo è stato interessante; forse scriverò un modulo che consente N tentativi senza ritardo seguiti da un numero qualsiasi di tentativi con un lungo ritardo.
Shawn J. Goff,

1
Invece di un nuovo modulo (suggerito nel mio commento precedente), ho usato pam_unixcon l' nodelayopzione e pam_tally2con deny=5 unlock_time=15; ciò consente 5 tentativi immediati, ma nega l'accesso (anche con una password corretta) per 15 secondi. Ho ancora intenzione di provare a scrivere il modello descritto, ma ora è un progetto back-burner, perché questo non sarebbe adatto se il tuo accesso principale al sistema è basato sulla rete poiché rende un attacco DOS banale.
Shawn J. Goff,

1
se sei preoccupato per una rete DoS da timeout, usa fail2ban ... in effetti usalo anche se pensi di essere al sicuro :-). uso due volte di divieto
Mike Pennington,

Risposte:


21

Presumo che tu stia usando Linux e PAM. Il ritardo è probabilmente causato da pam_faildelay.so. Controlla la tua configurazione pam /etc/pam.dusando pam_faildelay, ad esempio:

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000

Per modificare il tempo, regolare il parametro ritardo. Se si desidera eliminare il ritardo, è possibile eliminare / commentare la riga completa.

Un'altra fonte per il ritardo potrebbe essere pam_unix.so. Per disabilitare il ritardo causato pam_unix.sodall'aggiunta del nodelayparametro e facoltativamente aggiungere una linea che chiama pam_faildelay.soper aggiungere un ritardo (variabile), ad esempio:

auth       optional   pam_faildelay.so  delay=100000

2
Non vi è alcuna menzione di ritardo da nessuna parte in /etc/pam.d/*. La cosa più vicina che vedo è pam_tally.soche consente il blocco dopo un certo numero di tentativi. Ma ho n /etc/login.defs, che potrebbe essere quello di cui ho bisogno.
Shawn J. Goff,

@ ShawnJ.Goff pam_tally.sonon causa un ritardo per quanto ne so. Un'altra fonte per i non udenti potrebbe essere pam_unix.so- puoi disabilitarla con l' nodelayopzione - vedi linux.die.net/man/8/pam_unix per maggiori dettagli
Ulrich Dangel

1
Aggiungendo l' nodelayopzione pam_unix.soe aggiungendo una nuova voce con pam_faildelay.so delay=$some_numbermi consente di impostare ciò che voglio. Grazie!
Shawn J. Goff,

2
Con fedora 23, ho dovuto disabilitare il pam_unix.soritardo e iniziare a usare pam_faildelay.soquello come dice @ ShawnJ.Goff. Tuttavia, la maggior parte delle pam.dconfigurazioni ha " Questo file viene generato automaticamente. Le modifiche dell'utente verranno distrutte alla successiva esecuzione di authconfig " . Quindi dove posso configurare permanentemente il ritardo?
jozxyqk,

11

È necessario passare il nodelayparametro a auth pam_unix.so.

A seconda di come stai eseguendo l'autenticazione, dove è necessario impostare il parametro varia. Comunque la maggior parte delle distribuzioni di Linux hanno qualcosa del genere /etc/pam.d/system-authincluso in tutti i diversi file.

Quindi, ad esempio /etc/pam.d/system-auth, potresti avere una linea simile a questa:

auth            sufficient      pam_unix.so try_first_pass nullok

Questo dovrebbe essere cambiato in:

auth            sufficient      pam_unix.so try_first_pass nullok nodelay

Il pam_unix.somodulo è ciò che esegue l'autenticazione contro /etc/passwde /etc/shadow. Se stai usando LDAP o qualche altro backend di password, probabilmente dovresti comunque impostare nodelaysu pam_unix.socome è ciò che controlla il prompt (quando pam_unix.sonon riesce ad autenticare, di solito passa solo la password che ha ottenuto al modulo successivo).

Puoi leggere di più pam_unix.sofacendoman pam_unix


Sul mio sistema system-authnon esisteva; lo era /etc/common-auth. Grazie!
Luc,
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.