GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Best practice per la sicurezza di OpenSSH

SSH (Secure Shell) è un protocollo di rete crittografico per avviare sessioni di shell basate su testo su macchine remote in modo sicuro.

OpenSSH è il client e il server SSH standard utilizzato dalla maggior parte delle distribuzioni Linux. È uno strumento di connettività su cui la maggior parte degli amministratori fa affidamento per lavorare sui propri server Linux e *BSD. OpenSSH crittografa tutto il traffico (comprese le password) per eliminare efficacemente le intercettazioni, il dirottamento della connessione e altri attacchi. Quindi in altre parole "OpenSSH garantisce che la connessione al tuo server sia sicura". Vedi l'articolo di Wikipedia per un'escursione dettagliata su SSH.

Questo tutorial illustra le migliori pratiche per configurare il tuo server SSH in modo sicuro.

Sicurezza OpenSSH

Queste sono le sei attività più importanti per proteggere la configurazione del tuo server SSH:

  1. Utilizza una password complessa.
  2. Cambia la porta SSH predefinita.
  3. Utilizza sempre il protocollo versione 2.
  4. Disabilita il login di root.
  5. Limita l'accesso degli utenti.
  6. Utilizza la chiave per l'autenticazione.

Utilizza una password complessa

Una password è una parola o una stringa di caratteri utilizzata per l'autenticazione dell'utente per dimostrare l'identità o l'approvazione dell'accesso per ottenere l'accesso a una risorsa. Tienilo segreto a coloro che non sono autorizzati ad accedere al server. Usa una password complessa e lunga, dovrebbe essere facile da ricordare e univoca secondo te ma non facile da indovinare per gli altri . Non usare `admin123` o `admin` ecc. che sono facili da indovinare e non usare compleanni, il nome di tua moglie ecc. Una buona password dovrebbe contenere anche caratteri speciali come '.!;/' (non solo i caratteri a-c e 0-9). Usa caratteri maiuscoli e minuscoli nella password.

Cambia la porta SSH predefinita

Il Post predefinito del servizio SSH è 22, dovresti cambiarlo per rendere meno ovvio che il tuo server sta eseguendo un servizio SSH. Il file di configurazione SSH si trova nella directory /etc/sshd/, devi modificare il file di configurazione /etc/ssh/sshd_config .

nano /etc/ssh/sshd_config

Cerca la riga "Porta":

Port 22

e cambialo con il tuo numero di porta preferito, ad esempio:1337

Port 1337

Scegli una porta che non è ancora in uso sul tuo server. Puoi ottenere un elenco delle porte attualmente in uso con il comando:

netstat -ntap

Questo comando si traduce in un elenco piuttosto lungo che mostra tutte le porte e le connessioni aperte. Se vuoi solo controllare se la porta desiderata è disponibile, usa invece questo comando:

netstat -ntap | grep 4422

In questo esempio, verificherò se la porta 4422 è libera. Se il comando non restituisce un risultato, la porta è disponibile e può essere utilizzata per SSH.

Usa sempre il protocollo 2

SSH ha due versioni di protocollo, il vecchio protocollo 1 che non è sicuro e il nuovo protocollo 2. Quindi usa sempre il protocollo 2 per il tuo server ssh, è più sicuro del protocollo 1. Maggiori informazioni qui.

Disabilita l'accesso come root

Dovresti disabilitare l'accesso diretto per l'utente root perché ci sono molti attacchi di forza bruta contro il nome del superutente root. IMPORTANTE:prova l'accesso SSH con l'utente alternativo non root che prevedi di utilizzare per gli accessi ssh prima di disabilitare l'account root.

PermitRootLogin no

Dopo aver impostato "PermitRootLogin" su "no", non puoi più accedere con l'account root, sebbene utilizzi la password corretta per l'utente root.

Limita utenti

Dovresti aggiungere un nuovo utente per accedere al tuo server. Supponiamo di aver creato gli utenti ruiko e mikoto per accedere al tuo server, quindi puoi aggiungere la nuova riga:

AllowUsers ruiko mikoto

in /etc/ssh/sshd_config per limitare l'accesso SSH a questi utenti.

Utilizza l'autenticazione basata su chiave

Ti ho consigliato di utilizzare questa opzione perché è molto facile da configurare e più sicura dell'autenticazione basata su password. Per prima cosa devi creare una coppia di chiavi pubblica-privata sul tuo computer locale (desktop), io uso Linux per crearla.

Puoi creare la coppia di chiavi pubblica/privata con questo comando:

ssh-keygen -t rsa -b 4096

Creerà 2 file che si trovano nella directory ~/.ssh/, id_rsa come chiave privata e id_rsa.pub come chiave pubblica. Se viene richiesta una password, puoi lasciarla vuota o digitare la tua password. Si consiglia di utilizzare una password per proteggere la chiave.

Ora carica la chiave pubblica id_rsa.pub sul tuo server con il comando ssh-copy-id.

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Scriverà automaticamente la tua chiave pubblica nel file ~/.ssh/authorized_keys/ nel tuo server.

Ora torna al tuo server e modifica di nuovo la configurazione del tuo file ssh.

nano /etc/ssh/sshd_config

Decommenta questa riga:

AuthorizedKeysFile     %h/.ssh/authorized_keys

e infine riavvia il tuo server ssh:

systemctl restart sshd

Ora prova a connetterti al tuo server:

ssh -p '4422' '[email protected]'

Conclusione

OpenSSH è lo standard per l'accesso remoto sicuro a server simili a *Unix, in sostituzione del protocollo telnet non crittografato. SSH (e il suo sottoprotocollo SCP per il trasferimento di file) garantisce che la connessione dal computer locale al server sia crittografata e sicura. L'installazione di base di OpenSSH è già abbastanza sicura, ma possiamo migliorarla seguendo la guida sopra.


Ubuntu
  1. Come installare il server SSH su Ubuntu/Debian con OpenSSH

  2. Best practice per la sicurezza dei server Linux

  3. Procedure consigliate per la sicurezza dei server Windows

  4. Best practice per la sicurezza di Wordpress su Linux

  5. Best practice del server Nagios?

Rafforzamento del server Linux:migliori pratiche

Come installare OpenSSH su Ubuntu 20.04

Server SSH

Come installare il server OpenSSH su Ubuntu 20.04 LTS

Configurazione del server Ubuntu – Procedure consigliate per la sicurezza

5 Best practice per la sicurezza SSH Linux per proteggere i tuoi sistemi