GNU/Linux >> Linux Esercitazione >  >> Linux

Limita il numero di accessi SSH per utente/gruppo/sistema

Come probabilmente saprai, possiamo eseguire SSH in un sistema Linux remoto dallo stesso utente più volte. Non c'è limite! Puoi semplicemente aprire più finestre di Terminale (o più schede nel Terminale) e avviare più sessioni SSH da ciascuna scheda con lo stesso account utente. E se volessi cambiare questo comportamento? Ad esempio, potresti voler consentire solo una sessione SSH attiva per un utente. Questo è ciò che vedremo ora. Questo breve tutorial spiega come limitare il numero di accessi SSH per utente o gruppo o sistema su Linux.

Nella maggior parte delle distribuzioni Linux, esiste un file chiamato limits.conf dove puoi definire il numero massimo di sessioni SSH simultanee per un utente o un gruppo di utenti. Se l'utente in particolare tenta di accedere a SSH nel sistema più degli accessi SSH consentiti, gli verrà negato l'accesso.

Limita il numero di accessi SSH per utente o gruppo su Linux

Il limits.conf il file si trova solitamente in /etc/security/ directory su sistemi basati su RPM e DEB.

Vai al tuo sistema remoto e modifica /etc/security/limits.conf file con sudo o root utente:

$ sudo nano /etc/security/limits.conf

Per limitare il numero di sessioni SSH simultanee per un utente specifico , ad esempio otechnix , Aggiungi la seguente riga alla fine:

ostechnix	hard	maxlogins	1

Ecco,

  • Ostechnix - Nome dell'utente nel mio server CentOS 8.
  • maxlogin 1 - Numero massimo di accessi per questo utente. Nel mio caso è 1 . È possibile aumentare questo valore per consentire n. di sessioni SSH attive per utente.
  • difficile - Applicazione di limiti rigidi.

Se desideri limitare il numero di connessioni SSH per un gruppo di utenti , aggiungi questo:

@mygroup	hard    maxlogins	1

Sostituisci @miogruppo con il nome del tuo gruppo. In questo scenario, tutti gli utenti del miogruppo non possono accedere tramite SSH più di una volta.

Se vuoi limitare le sessioni SSH di tutti gli utenti (globali) nel sistema, aggiungi invece questa riga:

*	hard    maxlogins	1

Qui, l'asterisco significa globale (ovvero tutti gli utenti nel sistema). Una volta definito il numero massimo di sessioni SSH per utente/gruppo o per l'intero sistema, salva e chiudi il file.

Ora prova a inviare SSH al sistema con lo stesso utente più di una volta. Vedrai un messaggio di errore come di seguito.

Too many logins for 'ostechnix'.
Last login: Tue Feb 18 17:12:09 2020 from 192.168.225.37
Connection to 192.168.225.52 closed.

Come vedi nell'output sopra;

  1. In primo luogo, ho eseguito l'SSH nel server CentOS 8 remoto come utente root tramite SSH e la connessione è stata stabilita correttamente.
  2. Quindi, ho aperto una nuova scheda e SSH nello stesso server dell'utente normale "otechnix" e la connessione è riuscita.
  3. Infine, ho provato ad accedere a SSH nello stesso server con lo stesso utente (ovvero ostechnix) e questa volta la connessione è stata negata. L'utente "otechnix" non può accedere al sistema tramite SSH più di una volta . Perché il numero massimo di sessioni SSH consentite per questo utente è solo uno tempo. Pertanto, la connessione SSH è negata per questo utente.

In questo esempio, abbiamo limitato il numero totale di sessioni SSH attive per un utente o gruppo o per tutti gli utenti nel sistema. È anche possibile limitare le sessioni SSH in base al sistema. Ad esempio, possiamo consentire un solo accesso SSH da un sistema, non per utente o gruppo.

Limita il numero totale di sessioni SSH per sistema

Per limitare il numero totale di connessioni SSH attive per sistema, aggiungi la seguente riga in /etc/security/limits.conf file:

*       hard    maxsyslogins    1

Qui, maxsyslogins fa riferimento al numero massimo di accessi al sistema, non per utente o per gruppo.

Prova a eseguire l'SSH nel sistema e non puoi accedere al sistema più del numero massimo di accessi consentiti sul sistema.

Vedere? L'utente "otechnix" non può nemmeno SSH per la prima volta. Perché, il numero totale di accessi SSH consentiti è solo uno per il sistema. Questa volta è stata presa in considerazione anche la connessione SSH effettuata dall'utente root. Quindi il numero massimo di accessi SSH ha superato il limite definito e all'utente "otechnix" è stato negato l'accesso. Spero che tu capisca.

Si prega di notare che questa restrizione si applica solo agli utenti normali. L'utente root può comunque accedere tramite SSH un numero qualsiasi di volte.

Lettura correlata:

  • Consenti o nega l'accesso SSH a un particolare utente o gruppo in Linux
  • Limita l'accesso ai server Linux utilizzando i wrapper TCP
  • Esegui comandi su sistemi Linux remoti tramite SSH
  • Come creare alias SSH in Linux
  • Come inserire SSH in una directory particolare su Linux

Linux
  1. Suggerimento rapido:aggiungi un utente al gruppo sudoers

  2. Ssh:limitare un utente Ssh/scp/sftp a una directory?

  3. La funzione di root del gruppo utente??

  4. Come visualizzare i processi in esecuzione di qualsiasi utente in SSH?

  5. Come fare in modo che ssh acceda come l'utente giusto?

Come limitare l'accesso dell'utente al sistema Linux

Disabilita l'autenticazione con password SSH per utenti o gruppi specifici

Come consentire o negare l'accesso SSH a un particolare utente o gruppo in Linux

Gli effetti dell'aggiunta di utenti a un sistema Linux

Come disabilitare l'accesso SSH per l'utente root in Linux?

Centinaia di accessi ssh falliti