introduzione
Durante questo tutorial imparerai come configurare un livello base di sicurezza su una nuovissima macchina virtuale Vultr VC2 con Ubuntu 18.04.
Prerequisiti
- Un account Vultr, puoi crearne uno qui
- Una nuova Ubuntu 18.04 Vultr VM
Crea e modifica un utente
La prima cosa che faremo è creare il nostro nuovo utente che useremo per accedere alla VM:
adduser porthorian
Nota: si consiglia di utilizzare un nome utente univoco che sarà difficile da indovinare. La maggior parte dei bot di default per provare root
, admin
, moderator
, e simili.
Ti verrà richiesta una password qui. Si consiglia vivamente di utilizzare una password alfanumerica forte. Successivamente, segui le istruzioni sullo schermo e quando ti viene chiesto se le informazioni sono corrette, premi Y.
Una volta aggiunto quel nuovo utente, dovremo concedere a quell'utente le autorizzazioni sudo in modo da poter eseguire i comandi dell'utente per conto dell'utente root:
usermod -aG sudo porthorian
Dopo aver concesso le autorizzazioni sudo utente, passa al nuovo utente:
su - porthorian
Per generare la chiave SSH, seguire questo documento .
Dopo aver generato la nuova chiave SSH, copia la chiave pubblica. Dovrebbe apparire come segue:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAmB3uRWxAAELNJ8oGBCBmZx7S11vnAp0RG8rdKf6CLdvT7NMbKF55F8Wf0hFPewEryplaH54ibdmaTuheJVKy1lUhHnVi0AcBpkhJiiOQdEtvbYKT/eIkQl/Qm92Gz6aL3lJ0UknO4gO0LzgqI2vYX0b9LHMF+ZvApEDahLCna6RKo3/lffnANUKfExE+dVwOcJwATL3Ld5IkSatm7zBqbJAim0wj/JQ5ejzkL+aYd3YawpW3qf+WsY3HGbK2TIJt3LsiZJ3M7giZo/fVIZCJqsIOyO9NUOEx5/+KE8IniGb7gdRYgquAEJr89poDCNz/8CBODi9z3ukiE1+UnVlhfQ== rsa-key-20190408
Configura la tua directory utenti
Passa alla home directory degli utenti se non ci sei già:
cd $HOME
$HOME
è la variabile di ambiente per la home directory degli utenti. Viene impostato automaticamente quando viene creato il nuovo utente.
Mentre nella nostra home directory inseriremo un'altra directory al suo interno. Questa directory verrà nascosta agli altri utenti sulla macchina, ad eccezione di root e dell'utente proprietario della directory. Crea la nuova directory e limita le sue autorizzazioni con i seguenti comandi:
mkdir ~/.ssh
chmod 700 ~/.ssh
Ora apriremo un file in .ssh
chiamato authorized_keys
. Questo è il file universale che OpenSSH cerca. Puoi cambiarne il nome all'interno della configurazione di OpenSSH /etc/ssh/sshd_config
, se necessario.
Usa il tuo editor preferito per creare il file. Questo tutorial utilizzerà nano:
nano ~/.ssh/authorized_keys
Copia e incolla la tua chiave ssh nel authorized_keys
file che abbiamo aperto. Una volta che la chiave pubblica è dentro puoi salvare il file premendo CTRL+ O.
Assicurati che venga visualizzato il percorso file appropriato:
/home/porthorian/.ssh/authorized_keys
Se è il percorso del file giusto, basta premere ENTER, altrimenti, apportare le modifiche necessarie per corrispondere all'esempio sopra. Quindi esci dal file con CTRL+ X.
Ora limiteremo l'accesso al file:
chmod 600 ~/.ssh/authorized_keys
Esci dal nostro utente creato e torna all'utente root:
exit
Disabilitazione dell'autenticazione con password
Ora possiamo disabilitare l'autenticazione della password sul server, in questo modo l'accesso richiederà una chiave ssh. È importante notare che se si disabilita l'autenticazione con password e la chiave pubblica non è stata installata correttamente, si bloccherà il server. Si consiglia di testare la chiave prima ancora di disconnettersi dall'utente root.
Attualmente siamo connessi al nostro utente root, quindi stiamo per modificare sshd_config
:
nano /etc/ssh/sshd_config
Cercheremo 3 valori per assicurarci che OpenSSH sia configurato correttamente.
PasswordAuthentication
PubkeyAuthentication
ChallengeResponseAuthentication
Possiamo trovare questi valori premendo CTRL+ W.
I valori dovrebbero essere impostati come segue:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
Se i valori sono commentati, rimuovi #
all'inizio della riga e assicurati che i valori di quelle variabili siano come mostrato sopra. Dopo aver modificato le variabili, salvare e uscire il vostro editor, con CTRL+ O, ENTERe, infine, CTRL+ X.
Ora ricaricheremo sshd
con il seguente comando:
systemctl reload sshd
Ora possiamo testare il login. Assicurati di non esserti ancora disconnesso dalla sessione di root, apri una nuova finestra ssh e connettiti con la tua chiave ssh collegata alla connessione.
In PuTTY questo è sotto Connection
-> SSH
-> Auth
.
Sfoglia per trovare la tua chiave privata per l'autenticazione, come avresti dovuto salvarla durante la creazione della chiave ssh.
Connettiti al tuo server con la chiave privata come autenticazione. Ora si accederà alla macchina virtuale Vultr VC2.
Nota: se è stata aggiunta una passphrase durante la generazione della chiave ssh, verrà richiesto per uno. Questo è completamente diverso dalla password dell'utente reale sulla macchina virtuale.
Installa un firewall di base
Configura UFW
Per prima cosa inizieremo installando UFW se non è già sulla macchina virtuale. Un buon modo per verificare è con il seguente comando:
sudo ufw status
Se è installato UFW, verrà emesso Status:inactive
. Se non è installato, ti verrà richiesto di farlo.
Possiamo installarlo con questo comando:
sudo apt-get install ufw -y
Ora consentiremo la porta SSH 22
nel nostro firewall:
sudo ufw allow 22
In alternativa, puoi consentire OpenSSH:
sudo ufw allow OpenSSH
Uno dei comandi sopra funzionerà.
Ora che abbiamo consentito la porta attraverso il nostro firewall, possiamo abilitare UFW:
sudo ufw enable
Ti verrà chiesto se sei sicuro di voler eseguire questa operazione. La digitazione y
seguita da ENTERabiliterà il firewall:
porthorian@MEANStack:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation? y
Nota: se non hai autorizzato OpenSSH o la porta 22, ti bloccherai fuori dalla tua macchina virtuale. Assicurarsi che uno di questi sia consentito prima di abilitare UFW.
Una volta attivato il firewall, sarai comunque connesso alla tua istanza. Ora ricontrolleremo il nostro firewall con lo stesso comando di prima:
sudo ufw status
Vedrai qualcosa di simile al seguente output:
porthorian@MEANStack:~$ sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
Configurazione del firewall Vultr
Per proteggere ulteriormente il nostro server utilizzeremo il nostro Vultr Firewall. Accedi al tuo account . Una volta effettuato l'accesso, accederai alla scheda firewall situata nella parte superiore dello schermo:
Ora stiamo per aggiungere un nuovo gruppo di firewall. Questo ci permetterà di specificare quali porte possono persino raggiungere il nostro firewall UFW, fornendo un doppio livello di sicurezza:
Vultr ora ti chiederà come nominerai il tuo firewall usando il campo "Descrizione". Assicurati di descrivere cosa faranno i server di questo gruppo firewall, per facilitare l'amministrazione futura. Per il bene di questo tutorial lo nomineremo test
. Puoi sempre modificare la descrizione in seguito, se lo desideri.
Per prima cosa dovremo ottenere il nostro indirizzo IP. Il motivo per cui lo stiamo facendo direttamente è che se il tuo indirizzo IP non è statico e cambia costantemente, puoi semplicemente accedere al tuo account Vultr e cambiare l'indirizzo IP.
Questo è anche il motivo per cui non abbiamo richiesto l'indirizzo IP sul firewall UFW. Inoltre, limita l'utilizzo del firewall della tua macchina virtuale dal filtraggio di tutte le altre porte e consente solo al firewall Vultr di gestirlo. Ciò limita la tensione del filtro del traffico complessivo sulla tua istanza.
Usa lo specchio di rete di Vultr per trovare il tuo indirizzo IP.
Quindi ora che abbiamo il nostro indirizzo IP aggiungeremo una regola IPV4 al nostro firewall appena creato:
Dopo aver inserito l'indirizzo IP, fare clic sul +
simbolo per aggiungere l'indirizzo IP al firewall.
Il tuo gruppo firewall sarà simile al seguente:
Ora che il nostro IP è correttamente associato nel gruppo Firewall, dobbiamo collegare la nostra istanza Vultr. Sul lato sinistro vedrai una scheda che dice "Istanze collegate":
Una volta sulla pagina vedrai un menu a discesa con un elenco delle istanze del tuo server:
Fai clic sul menu a discesa e seleziona la tua istanza. Quindi, quando sei pronto per aggiungere l'istanza al gruppo firewall fai clic sul +
simbolo.
Congratulazioni, hai protetto con successo la tua macchina virtuale Vultr VC2. Questo ti dà una buona base per un livello di sicurezza molto semplice senza la preoccupazione che qualcuno cerchi di forzare la tua istanza.