Come parte del processo di messa in sicurezza del tuo VPS (vedi l'articolo «Come mettere in sicurezza un VPS con sistema operativo Ubuntu Linux»), l'accesso SSH tramite nome utente e password potrebbe essere un elemento critico per la sicurezza. Tendenzialmente si cerca di utilizzare password facili da memorizzare (anche se contengono caratteri speciali, esempio Ci@oM0nd0): questo può esporti a tentativi d'accesso da parte di utenti malintenzionati — utilizzando la tecnica del brute force, infatti, è possibile trovare la tua password.
Questa tecnica d'attacco si basa sostanzialmente sul provare ad accedere al server utilizzando un database di password conosciute, finché non si riesce a trovare quella corretta. Se hai seguito la guida indicata all'inizio di questo articolo, hai già configurato un utente senza privilegi che può utilizzare sudo e hai installato Fail2ban per tenere alla larga i tentativi di accesso non desiderati. Con i prossimi step andremo ad aumentare ulteriormente la sicurezza del VPS.
Prerequisiti
- Un VPS con sistema operativo Linux
- Un utente con privilegi adeguati, ovvero sudo (in questo esempio si chiama utente_vps)
- Il proprio computer deve utilizzare come sistema operativo Microsoft Windows
In questa guida vedremo come creare la coppia di chiavi SSH utilizzando PuTTY.
Step 1 — Installiamo PuTTY
- Dalla pagina ufficiale dello sviluppatore di PuTTY, scarichiamo l'installer per Windows
- Una volta scaricato il pacchetto facciamo doppio clic per far partire l'installazione; di default PuTTY sarà installato nella directory C:\Program Files\PuTTY\
- Una volta terminato il processo di installazione, clicca su Finish per chiudere il wizard
Step 2 — Creazione delle chiavi con PuTTYgen
- Per lanciare PuTTYgen usa il metodo che preferisci; nell'esempio useremo la barra di ricerca di Windows, quindi digitiamo PuTTYgen
- Clicchiamo con il tasto destro su PuTTYgen e selezioniamo «Esegui come amministratore»
- Nella finestra di PuTTY Key Generator, clicca sul pulsante «Generate» e muovi il cursore del mouse all'interno della finestra, finché la barra verde non arriva alla fine. Il movimento del mouse serve a generare numeri casuali che PuTTYgen utilizzerà per la creazione del certificato.
- Salva le chiavi pubblica e privata (tasti «Save public key» e «Save private key») nel percorso che desideri, avendo cura di specificare che la chiave privata sarà senza passphrase (per ora). A questo punto avrai ottenuto i tuoi certificati, esempio: mypub_key.pub e mypriv_key.ppk. Fai attenzione a non modificare le estensioni dei file: il certificato pubblico avrà estensione .pub, quello privato .ppk. Lascia aperto PuTTYgen per ora.
Step 3 — Copiamo la chiave pubblica sul VPS
Ora che abbiamo la nostra coppia di chiavi, è giunto il momento di copiare la chiave pubblica sul tuo VPS. Lancia putty.exe (o dal prompt dei comandi puoi utilizzare direttamente ssh) e collegati al tuo VPS tramite indirizzo IPv4, utilizzando l'utente con privilegi sudo (nel nostro esempio si chiama utente_vps).
Dalla finestra di PuTTY Key Generator, seleziona e copia tutto il contenuto del campo «Public key for pasting into OpenSSH authorized_keys file:» (assicurati di aver selezionato tutto: il campo ha una barra di scorrimento).
Torna sulla sessione SSH aperta prima e, dalla home di utente_vps, posizionati dentro la cartella .ssh:
utente_vps@mio_vps:~$ cd .ssh/
Se per caso la cartella non esiste non preoccuparti, basta crearla con:
utente_vps@mio_vps:~$ mkdir .ssh
utente_vps@mio_vps:~$ cd .ssh/
A questo punto, usando l'editor di testi nano, puoi creare o modificare il file authorized_keys dentro la cartella .ssh: incolla il testo copiato in precedenza (la chiave pubblica) senza introdurre nient'altro (spazi o invii). Per salvare il file usa la combinazione di tasti CTRL+X ed eventualmente conferma con Y qualora ti chiedesse se vuoi sovrascrivere il file.
Step 4 — Colleghiamoci in SSH usando la chiave privata
A questo punto ritorna sul programma PuTTY avendo cura di reinserire l'IP del tuo VPS e l'eventuale porta SSH (per modificare la porta 22 standard leggi l'articolo «Come mettere in sicurezza un VPS con sistema operativo Ubuntu Linux») e nella colonna di sinistra cerca l'opzione «Connection > SSH > Credentials».
Nella sezione di destra, alla voce «Private key file for authentication», clicca sul pulsante «Browse» e indica come file la tua chiave privata (estensione .ppk) generata prima. Ritorna nella «Session»; se preferisci, puoi inserire un nome nel campo «Saved Sessions» e cliccare sul tasto «Save» per evitare di dover rifare ogni volta la procedura. A questo punto non ti resta che cliccare su «Open».
Inserito il nome utente e premuto INVIO, ti apparirà la console del tuo VPS senza bisogno di inserire la password, in modo sicuro.
Il passo successivo, per chiudere il cerchio, è disabilitare del tutto l'accesso con password.
Guida pubblicata originariamente sul blog di VPS GREEN, il servizio VPS sul nostro cloud privato green.