3 modi per proteggere un server SSH su Linux

SSH è fantastico, in quanto ci consente di ottenere l’accesso terminale ad altri PC e server Linux sulla rete, o anche su Internet! Tuttavia, per quanto sorprendente sia questa tecnologia, ci sono alcuni evidenti problemi di sicurezza che ne rendono pericoloso l’utilizzo. Se sei un utente medio, non è necessario installare complicati strumenti di sicurezza SSH. Considera invece di seguire questi passaggi di base per proteggere un server SSH su Linux.

Cambia porta di connessione predefinita

Il modo di gran lunga più rapido e semplice per proteggere un server SSH è cambiare la porta che utilizza. Per impostazione predefinita, il server SSH viene eseguito sulla porta 22. Per modificarlo, aprire una finestra di terminale. All’interno della finestra del terminale, SSH sul PC remoto che ospita il server SSH.

ssh user@local-ip-address

Una volta effettuato l’accesso, passa da un utente normale a Root. Se hai l’account di root, accedere con su è una buona scelta. Altrimenti, dovrai accedere con sudo.

su -

o

sudo -s

Ora che hai accesso come amministratore, apri il file di configurazione SSH in Nano.

nano /etc/ssh/sshd_config

Scorrere il file di configurazione per “Porta 22”. Rimuovere la # se presente, quindi modificare “22” con un altro numero. In genere, sarà sufficiente una porta superiore a 100 o anche una nell’intervallo 1.000. Dopo aver modificato il numero di porta, premere la combinazione di tasti Ctrl + O per salvare le modifiche. Quindi, esci dall’editor premendo Ctrl + X.

La modifica del file di configurazione non commuterà immediatamente il tuo server SSH utilizzando la porta corretta. Invece, dovrai riavviare manualmente il servizio.

systemctl restart sshd

L’esecuzione del comando systemctl dovrebbe riavviare il daemon SSH e applicare le nuove impostazioni. Se il riavvio del daemon non riesce, un’altra opzione è riavviare la macchina del server SSH:

reboot

Dopo aver riavviato il daemon (o la macchina), SSH non sarà accessibile tramite la porta 22. Di conseguenza, la connessione tramite SSH richiede la specifica manuale della porta.

Nota: assicurati di cambiare “1234” con la porta impostata nel file di configurazione SSH.

ssh -p 1234 user@local-ip-address

Disabilita login con password

Un altro ottimo modo per proteggere un server SSH è rimuovere la password di accesso e passare invece all’accesso tramite chiavi SSH. Il percorso della chiave SSH crea un cerchio di fiducia tra il tuo server SSH e le macchine remote che hanno la tua chiave. È un file di password crittografato difficile da decifrare.

Configura con una chiave SSH sul tuo server. Quando hai impostato le chiavi, apri un terminale e apri il file di configurazione SSH.

su -

o

sudo -s

Quindi, apri la configurazione in Nano con:

nano /etc/ssh/sshd_config

Per impostazione predefinita, i server SSH gestiscono l’autenticazione tramite la password dell’utente. Se hai una password sicura, questo è un buon modo per procedere, ma una chiave SSH crittografata su macchine affidabili è più veloce, più conveniente e sicura. Per terminare la transizione al “login senza password”, guarda nel file di configurazione SSH. All’interno di questo file, scorrere e trovare la voce che dice “PasswordAuthentication”.

Rimuovi il simbolo # davanti a “PasswordAuthentication” e assicurati che abbia la parola “no” davanti. Se tutto sembra a posto, salva le modifiche alla configurazione SSH premendo Ctrl + O sulla tastiera.

Dopo aver salvato la configurazione, chiudi Nano con Ctrl + X e riavvia SSHD per applicare le modifiche.

systemctl restart sshd

Se non usi systemd, prova a riavviare SSH con questo comando:

service ssh restart

La prossima volta che una macchina remota prova ad accedere a questo server SSH, controllerà le chiavi corrette e le farà entrare, senza password.

Disabilita account root

La disabilitazione dell’account root sul server SSH è un modo per mitigare i danni che possono verificarsi quando un utente non autorizzato ottiene l’accesso tramite SSH. Per disabilitare l’account Root, è imperativo che almeno un utente sul tuo server SSH possa ottenere Root tramite sudo. Ciò garantirà che tu possa ancora ottenere l’accesso a livello di sistema se ne hai bisogno, senza la password di root.

Nota: assicurati che gli utenti che possono accedere ai privilegi di root tramite sudo abbiano una password sicura o disabilitare l’account di superutente è inutile.

Per disabilitare Root, elevare il terminale ai privilegi di superutente:

sudo -s

L’uso di sudo -s evita la necessità di accedere con su e invece garantisce una shell di root tramite il file sudoers. Ora che la shell ha accesso come superutente, esegui il comando password e codifica l’account root con –lock.

passwd --lock root

L’esecuzione del comando precedente codifica la password dell’account di root in modo che l’accesso tramite su sia impossibile. D’ora in poi, gli utenti possono accedere solo tramite SSH come utente locale, quindi passare a un account root tramite i privilegi sudo.