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;
- In primo luogo, ho eseguito l'SSH nel server CentOS 8 remoto come utente root tramite SSH e la connessione è stata stabilita correttamente.
- Quindi, ho aperto una nuova scheda e SSH nello stesso server dell'utente normale "otechnix" e la connessione è riuscita.
- 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