Seleziona una pagina

Abbiamo già parlato di come realizzare un server VPN. Se hai bisogno di una rinfrescata, ecco il link all’articolo: CLICCA QUI, così come abbiamo già parlato di come effettuare connessioni remote al nostro server utilizzando SSH. Anche in questo caso, potete leggere l’articolo in questione a questo link: CLICCA QUI

Oggi mostriamo un metodo validissimo per mettere in sicurezza gli accessi al nostro server evitando allo stesso tempo accessi non autorizzati.

Analisi Veloce

Una delle vulnerabilità che più spesso affliggono il protocollo SSH è che, di fatto, è sufficiente essere in possesso di username, passowrd ed indirizzo IP per poter compiere un accesso non autorizzato ad un determinato server. Anche se forniamo ai nostri utenti un certificato di accesso SSH (in aggiunta alle credenziali) questi potrebbe essere facillmente “rubato”.

L’intento di questa guida è quello di configurare il nostro server SSH in modo da rendere definitivamente impossibile un accesso non autorizzato, rendendo disponibile l’accesso SSH solo utilizzano gli IP virtuali generati da OpenVPN, e quindi, rendendo l’accesso agl iutenti possibile solo che collegati alla stessa rete VPN.

Iniziamo

Come da titolo, utilizziamo un server su cui gira una Debian 10. Prima di cominciare, aggiorniamo il sistema, da terminale digitiamo:

sudo apt-get update [invio]
sudo ap-get upgrade [invio]

Per rendere tutto più semplice potete scaricare questo script, che da solo installerà il server VPN e tutto ciò di cui ha bisogno. Potete scaricare lo script dal nostro Drive, a questo link. Una volta scaricato, bisogna estrarre lo script dall’archivio modificarne i permessi e renderlo eseguibile, quindi da terminale:

tar -xvfz debian10-vpn.sh.tar [invio]
sudo chmod -R 777 debian10-vpn.sh [invio]
sudo chmod +x debian10-vpn.sh [invio]

A questo punto avviamo lo script con privilegi di amministratore:

sudo ./debian10-vpn.sh [invio]

Lo script si avvierà e installerà OpenVPN, dopodichè verranno chiesti i parametri di configurazione del server, voi, a meno di particolari esigenze, potete utilizzare i parametri forniti di default.

Dopo l’installazione, verrà generato il client di accesso, vi verrà chiesto se creare un client senza password o con password, il nome del client e informazioni simili. Al termine, troverete il client.ovpn disponibile ed il server VPN si avvierà in automatico.

Utilizzare sempre lo script, anche dopo l’installazione, per generare nuovi client, o revocare quelli già creati. Anche in questo caso questo script renderà tutto semplice e veloce.

Modifichiamo il file di conf del nostro server SSH.

Assicuriamoci di aver scaricato il nostro client .ovpn, altrimenti si corre il rischio di restare chiusi fuori.

Andiamo a configurare il file di conf di SSH in modo chge accetti soltanto connessioni al server IP generato dalla VPN, di default, l’indirizzo IP della VPN sulla macchina server è 10.8.0.1. Per essere certi che sia cosi, da terminale digitiamo:

ip address [invio]

verranno così elencate le interfacce di rete attive, il risultato qualcosa del genere:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether i:hide:this:ip6 brd ff:ff:ff:ff:ff:ff
    inet i.hide.this.ip/32 brd i.hide.this.ip scope global dynamic eth0
       valid_lft 69457sec preferred_lft 69457sec
    inet6 i:hide:this:ip6/64 scope link
       valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::879c:da19:2a5:c4e8/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

L’interfaccia della VPN è “tun0”. Ora apriamo il file di conf di SSH, da terminale:

sudo nano /etc/ssh/sshd_conf [invio]

E andiamo a modificare l’indirizzo IP su cui accettare connessioni SSH remote:

#       $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

Port 22
#AddressFamily any
ListenAddress 10.8.0.1

#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key

E andiamo a modificare le parti evidenziate in rosso. Salviamo e chiudiamo, premere contemporaneamente i tasti “Ctrl+X”, confermiamo con “Y” quando verrà chiesto di salvare il file. Ora riavviamo il server SSH, digitiamo:

sudo systemctl restart sshd [invio]

Non preoccupatevi se la connessione cade. Per poter accedere al server d’ora in avanti, dal vostro PC sarà prima necessario avviare e collegarsi alla VPN, quindi da terminale, rechiamoci nella directory dove è salvato il file client.ovpn (esempio se si trova sul Desktop), e avviamo il client:

cd /home/user/Desktop [invio]
sudo openvpn client.ovpn [invio]

Se avete configurato il client con una password di protezione, digitate la password quando richiesto, premete invio ed attendete che il client si colleghi correttamente.

Attenzione! Non chiudere il terminale altrimenti la connessione VPN sarà chiusa insieme al terminale. Quindi apriamo un secondo terminale e digitiamo:

ssh [email protected] [invio]

Inserite le vostre credenziali ed avrete accesso al server. Se volete foprnire accesso a collaboratori o amici, sarà sufficiente generare un nuov client (utilizzando lo script debian10-vpn.sh) contestualmente alla creazione di un utente sul sistema.

E’ tutto per oggi! Buon Lavoro! 😀