Come proteggere il server SSH nella top 10 di Ubuntu.Top 10 da Basic a Advanced

Come proteggere il server SSH nella top 10 di Ubuntu.Top 10 da Basic a Advanced
Proprio come tutti gli altri server, il server SSH è anche soggetto a tentativi di accesso non autorizzati. Pertanto, ogni volta che si desidera utilizzare un server SSH, devi aver preso in considerazione la possibilità di proteggerlo per salvarti da qualsiasi situazione indesiderata a lungo termine. Generalmente, il termine "protezione di un server" è anche noto come "indurire un server."Questo può essere fatto prendendo più misure. Queste misure dipendono dal livello di sicurezza necessario.

Le misure di protezione del server SSH vanno da base a avanzate e, come abbiamo detto in precedenza, puoi prenderle in base al livello di sicurezza di cui hai bisogno. Puoi saltare una qualsiasi delle misure prescritte se hai una conoscenza sufficiente sulle conseguenze e se sei in una buona posizione per affrontarle. Inoltre, non possiamo mai dire che un singolo passaggio garantirà la sicurezza del 100% o un certo passaggio è migliore dell'altro.

Tutto dipende dal tipo di sicurezza di cui abbiamo effettivamente bisogno. Pertanto, oggi intendiamo darti una visione molto profonda dei passaggi di base e avanzati per proteggere un server SSH in Ubuntu 20.04. Oltre a questi metodi, condivideremo anche con te alcuni suggerimenti aggiuntivi per proteggere il tuo server SSH come bonus. Quindi iniziamo con la discussione interessante di oggi.

Metodo di protezione del server SSH in Ubuntu 20.04:

Tutte le configurazioni SSH sono archiviate nel suo file/ecc/ssh/sshd_config. Questo file è considerato molto cruciale per il normale funzionamento del server SSH. Pertanto, prima di apportare eventuali modifiche a questo file, si consiglia vivamente di creare un backup di questo file eseguendo il seguente comando nel tuo terminale:

sudo cp/etc/ssh/sshd_config/etc/ssh/sshd_config.Bak


Se questo comando viene eseguito correttamente, non ti verrà presentato alcun output, come mostrato nell'immagine seguente:

Dopo aver creato un backup di questo file, questo passaggio è facoltativo e viene eseguito se si desidera controllare tutte le opzioni attualmente abilitate in questo file di configurazione. Puoi verificarlo eseguendo il seguente comando nel tuo terminale:

sudo sshd -t


Le opzioni attualmente abilitate del file di configurazione SSH sono mostrate nell'immagine seguente. Puoi scorrere questo elenco per visualizzare tutte le opzioni.

Ora puoi iniziare a proteggere il tuo server SSH mentre passa dai passaggi di base ai passaggi avanzati in Ubuntu 20.04.

Passaggi di base per proteggere il server SSH in Ubuntu 20.04:

I passaggi di base per proteggere un server SSH in Ubuntu 20.04 sono i seguenti:

Passaggio n. 1: Apertura del file di configurazione SSH:

È possibile aprire il file di configurazione SSH eseguendo il comando indicato di seguito nel tuo terminale:

sudo nano/etc/ssh/sshd_config


Il file di configurazione SSH è mostrato nella seguente immagine:

Passaggio n. 2: disabilitazione dell'autenticazione basata su password:

Invece di utilizzare le password per l'autenticazione, le chiavi SSH sono considerate più sicure. Pertanto, se hai generato le chiavi SSH per l'autenticazione, è necessario disabilitare l'autenticazione basata su password. Per questo, è necessario individuare la variabile di "passwordautenticazione", raggruppare e impostare il suo valore su "no", come evidenziato nell'immagine mostrata di seguito:

Passaggio n. 3: rifiuto/ negando password vuote:

A volte, gli utenti trovano estremamente conveniente creare password vuote per il salvataggio dalla memoria di password complesse. Questa pratica può rivelarsi dannosa per la sicurezza del server SSH. Pertanto, è necessario rifiutare tutti i tentativi di autenticazione con password vuote. Per questo, è necessario individuare la variabile "AutoMemptyPasswords" e semplicemente il disagio poiché il suo valore è già impostato su "NO" per impostazione predefinita, come evidenziato nella seguente immagine:

Passaggio n. 4: proibire l'accesso alla root:

Dovresti vietare rigorosamente gli accessi alla radice per proteggere qualsiasi intruso dall'ottenere l'accesso a livello di radice al server. Puoi farlo individuando la variabile "PermistrootLogin", impostare il suo valore su "NO", come evidenziato nell'immagine mostrata di seguito:

Passaggio n. 5: utilizzando il protocollo SSH 2:

Il server ssh può funzionare su due diversi protocolli, i.e., Protocollo 1 e protocollo 2. Il protocollo 2 implementa funzionalità di sicurezza più avanzate, motivo per cui è preferito dal protocollo 1. Tuttavia, il protocollo 1 è il protocollo predefinito di SSH e non è esplicitamente menzionato nel file di configurazione SSH. Pertanto, se si desidera lavorare con il protocollo 2 anziché con il protocollo 1, è necessario aggiungere esplicitamente la linea "Protocollo 2" al tuo file di configurazione SSH come evidenziato nella seguente immagine:

Passaggio # 6: Impostazione di un timeout di sessione:

A volte, gli utenti lasciano i loro computer incustoditi per molto tempo. Nel frattempo, qualsiasi intruso può venire e ottenere l'accesso al tuo sistema violando la sua sicurezza. È qui che entra in gioco il concetto di timeout di sessione. Questa funzione viene utilizzata per logout di un utente se rimane inattivo per molto tempo in modo che nessun altro utente possa accedere al suo sistema.

Questo timeout può essere impostato individuando la variabile "ClienaliveInterval", il rompere e assegnarlo qualsiasi valore (in secondi) a scelta. Nel nostro caso, gli abbiamo assegnato il valore di "300 secondi" o "5 minuti". Significa che se l'utente rimane lontano dal server SSH per "300 secondi", verrà automaticamente disconnesso come evidenziato nell'immagine mostrata di seguito:

Passaggio n. 7: consentire agli utenti specifici di accedere al server SSH:

Il server SSH non è un server il cui accesso è richiesto da ogni altro utente. Pertanto, il suo accesso deve essere limitato solo a quegli utenti che ne hanno effettivamente bisogno. Per consentire agli utenti specifici di accedere al server SSH, è necessario aggiungere una variabile denominata "consentire" al file di configurazione SSH e quindi scrivere i nomi di tutti gli utenti che si desidera consentire l'accesso al server SSH separato da uno spazio. Nel nostro caso, volevamo solo consentire a un utente di accedere al server SSH. Ecco perché abbiamo aggiunto solo il suo nome come evidenziato nella seguente immagine:

Passaggio n. 8: limitare il numero di tentativi di autenticazione:

Ogni volta che un utente cerca di accedere a un server e non è in grado di autenticarsi per la prima volta, cerca di farlo di nuovo. L'utente continua a fare questi tentativi fino a quando e a meno che non sia in grado di autenticarsi correttamente, ottenendo l'accesso al server SSH. Questa è considerata una pratica altamente insicura poiché un hacker può lanciare un attacco di forza bruta (un attacco che tenta ripetutamente di indovinare una password fino a quando non viene trovata la corrispondenza giusta). Di conseguenza, sarà in grado di accedere al server SSH.

Ecco perché si consiglia altamente limitare il numero di tentativi di autentica. Il valore predefinito dei tentativi di autenticazione al server SSH è impostato su "6". Tuttavia, puoi cambiarlo a seconda del livello di sicurezza di cui hai bisogno. Per questo, è necessario individuare le variabili "Maxauthtries", rimuovere e impostare il suo valore su qualsiasi numero desiderato. Volevamo limitare i tentativi di autenticazione a "3", come evidenziato nell'immagine mostrata di seguito:

Passaggio n. 9: eseguire il server SSH in modalità test:

Ormai abbiamo preso tutte le misure di base per proteggere il nostro server SSH su Ubuntu 20.04. Tuttavia, dobbiamo ancora assicurarci che le opzioni che abbiamo appena configurate funzionino correttamente. Per questo, salveremo per la prima volta il nostro file di configurazione. Dopo averlo fatto, proveremo a eseguire il nostro server SSH in modalità test. Se viene eseguito correttamente nella modalità test, implicherà che non ci sono errori nel file di configurazione. È possibile eseguire il tuo server SSH nella modalità test eseguendo il seguente comando nel tuo terminale:

sudo sshd -t


Quando questo comando viene eseguito correttamente, non visualizzerà alcun output sul terminale, come mostrato nell'immagine seguente. Tuttavia, se ci saranno errori nel file di configurazione, l'esecuzione di questo comando renderà tali errori sul terminale. Deve quindi risolvere quegli errori. Solo allora sarai in grado di procedere oltre.

Passaggio # 10: Ricaricare il server SSH con nuove configurazioni:

Ora, quando il server SSH è stato eseguito correttamente in modalità test, dobbiamo ricaricarlo in modo che possa leggere il nuovo file di configurazione, i.e., Le modifiche che abbiamo apportato al file di configurazione SSH nei passaggi sopra. Per ricaricare il server SSH con nuove configurazioni, è necessario eseguire il seguente comando nel tuo terminale:

Sudo Service Sshd Reload


Se il server SSH viene riavviato correttamente, il terminale non visualizzerà alcun output, come mostrato nell'immagine seguente:

Passaggi avanzati per la protezione del server SSH in Ubuntu 20.04:

Dopo aver eseguito tutti i passaggi di base per proteggere il server SSH in Ubuntu 20.04, puoi finalmente andare ai passaggi avanzati. Questo è solo un passo avanti per proteggere il tuo server SSH. Tuttavia, se si intende solo raggiungere un livello moderato di sicurezza, i passaggi sopra descritti saranno sufficienti. Ma se vuoi andare un po 'più lontano, allora puoi seguire i passaggi spiegati di seguito:

Passaggio n. 1: aprire ~/.File SSH/AUTORITED_KEYS:

I passaggi di base della protezione del server SSH sono implementati all'interno del file di configurazione SSH. Significa che queste politiche saranno valide per tutti gli utenti che proveranno ad accedere al server SSH. Implica inoltre che i passaggi di base rappresentano un metodo generico per proteggere il server SSH. Tuttavia, se proviamo a considerare il principio della "difesa in profondità", allora ci rendiamo conto che dobbiamo proteggere ogni singolo tasto SSH separatamente. Questo può essere fatto definendo parametri di sicurezza espliciti per ogni singola chiave. Le chiavi SSH sono archiviate in ~/.File SSH/Authorized_keys, quindi accederemo prima a questo file per modificare i parametri di sicurezza. Eseguimo il seguente comando nel terminale per accedere al ~/.File SSH/AUTORITED_KEYS:

sudo nano ~/.SSH/AUTORITED_KEYS

L'esecuzione di questo comando aprirà il file specificato con l'Editor Nano. Tuttavia, è possibile utilizzare qualsiasi altro editor di testo a tua scelta per aprire questo file. Questo file conterrà tutte le chiavi SSH che hai generato finora.

Passaggio n. 2: definizione di configurazioni specifiche per chiavi particolari:

Per raggiungere un livello avanzato di sicurezza, sono disponibili le seguenti cinque opzioni:

  • No-agent-forwarding
  • no-port-forwarding
  • no-pty
  • No-User-Rc
  • no-x11-forwarding

Queste opzioni possono essere scritte prima di qualsiasi chiave SSH a tua scelta di renderle disponibili per quella particolare chiave. Ancora più di un'opzione può anche essere configurata per una singola chiave SSH. Ad esempio, si desidera disabilitare il port forwarding per qualsiasi chiave particolare o, in altre parole, si desidera implementare il non-port-forwarding per una chiave specifica, la sintassi sarà la seguente:

DesiredSshkey desiderato

Qui, invece di DesiredSshkey, avrai una chiave SSH reale all'interno del tuo ~/.file ssh/autorized_keys. Dopo aver applicato queste opzioni per le chiavi SSH desiderate, dovrai salvare ~/.file ssh/autorized_keys e chiuderlo. Un bene questo su questo metodo avanzato è che non richiederà di ricaricare il tuo server SSH dopo aver apportato queste modifiche. Piuttosto queste modifiche verranno lette automaticamente dal server SSH.

In questo modo, sarai in grado di proteggere ogni chiave SSH in profondità applicando i meccanismi di sicurezza avanzati.

Alcuni suggerimenti aggiuntivi per proteggere il server SSH in Ubuntu 20.04:

Oltre a tutti i passaggi di base e avanzati che abbiamo preso sopra, ci sono anche alcuni suggerimenti aggiuntivi che possono rivelarsi molto buoni per proteggere il server SSH in Ubuntu 20.04. Questi suggerimenti aggiuntivi sono stati discussi di seguito:

Mantieni i tuoi dati crittografati:

I dati che risiedono sul server SSH, così come quello che rimane in transito, devono essere crittografati e anche quello, con un forte algoritmo di crittografia. Ciò non solo proteggerà l'integrità e la riservatezza dei tuoi dati, ma impedirà anche a compromettere la sicurezza dell'intero server SSH.

Mantieni aggiornato il tuo software:

Il software che funziona sul server SSH deve essere aggiornato. Questo viene fatto per garantire che nessun bug di sicurezza nel tuo software rimanga incustodito. Piuttosto dovrebbero essere ben rattoppati in tempo. Ciò ti farà risparmiare da eventuali potenziali danni a lungo termine e impedirà anche al tuo server di scendere o non essere disponibile a causa di problemi di sicurezza.

Assicurarsi che Selinux sia abilitato:

Selinux è il meccanismo che pone la pietra fondamentale della sicurezza all'interno dei sistemi a base di Linux. Funziona implementando il controllo degli accessi obbligatorio (MAC). Implementa questo modello di controllo dell'accesso definendo le regole di accesso nella sua politica di sicurezza. Questo meccanismo è abilitato per impostazione predefinita. Tuttavia, agli utenti è autorizzato a modificare questa impostazione in qualsiasi momento. Significa che possono disabilitare Selinux ogni volta che vogliono. Tuttavia, si consiglia vivamente di mantenere sempre abilitato Selinux in modo che possa impedire al server SSH di tutti i potenziali danni.

Usa politiche rigorose sulla password:

Se hai protetto il tuo server SSH con password, è necessario creare politiche di password forti. Idealmente, le password dovrebbero essere lunghe più di 8 caratteri. Dovrebbero essere cambiati dopo un tempo specificato, diciamo, ogni 2 mesi. Non dovrebbero contenere parole del dizionario; Piuttosto, dovrebbero essere una combinazione di alfabeti, numeri e personaggi speciali. Allo stesso modo, puoi definire alcune altre misure extra rigorose per le tue politiche di password per assicurarsi che siano abbastanza forti.

Monitorare e mantenere i registri di audit del server SSH:

Se qualcosa va storto con il tuo server SSH, il tuo primo aiutante può essere i registri di audit. Pertanto, è necessario continuare a mantenere quei registri in modo da poter tracciare la causa principale del problema. Inoltre, se continui a monitorare la salute e il funzionamento del server SSH continuamente, ciò impedirà anche a eventuali problemi importanti.

Mantieni i backup regolari dei tuoi dati:

Ultimo ma non meno importante, dovresti sempre tenere un backup dell'intero server SSH. In questo modo non solo salverà i tuoi dati dall'essere danneggiati o completamente persi; Piuttosto, puoi anche utilizzare questo server di backup ogni volta che il tuo server principale si trasferisce. Ciò limiterà anche i tempi di inattività del server e garantirà la disponibilità.

Conclusione:

Prendendo cura di tutte le misure che sono state prescritte in questo articolo, puoi facilmente proteggere o indurire il tuo server SSH in Ubuntu 20.04. Tuttavia, se vieni da un background di sicurezza delle informazioni, allora devi essere ben consapevole di questo fatto che non c'è nulla come la sicurezza al 100%. Tutto ciò che possiamo ottenere è la promessa di miglior sforzo e che lo sforzo migliore sarà sicuro solo fino al momento in cui verrà anche violato. Ecco perché anche dopo aver adottato tutte queste misure, non si può dire che il tuo server SSH sia sicuro al 100%; Piuttosto, potrebbe ancora avere tali vulnerabilità a cui non avresti mai potuto nemmeno pensare. Tali vulnerabilità possono essere curate solo se teniamo d'occhio il nostro server SSH e continuiamo ad aggiornarlo ogni volta che è necessario.