GNU/Linux >> Linux Esercitazione >  >> Ubuntu

VPN Ipsec basata su Libreswan che utilizza chiavi precondivise e RSA su Ubuntu

In questo tutorial, LibreSwan verrà installato sulla piattaforma Ubuntu. LibreSwan è un'implementazione open source del protocollo IPsec, si basa sul progetto FreeSwan ed è disponibile come pacchetto pronto per l'uso su distribuzioni Linux basate su RedHat. Tuttavia, nel codice sorgente del progetto sono fornite istruzioni dettagliate per compilarlo su altre piattaforme Linux. Dopo il processo di installazione, verrà configurato un gateway IPsec VPN basato su gateway per proteggere i dati dal mittente ai peer riceventi.

I dettagli sul protocollo IPsec sono forniti nel nostro articolo precedente. Tuttavia, di seguito viene spiegata una breve informazione sulle due parti del protocollo IPsec rispetto a LibreSwan.

Una VPN basata su IPsec è costituita da Internet Keying Exchange protocollo e il Encapsulating Security Payload (ESP).

-->   IKE

Come indica il nome, lo scopo del protocollo IKE è autenticare (usando una chiave precondivisa, crittografia a chiave pubblica, freeradius) peer di una VPN, generare dinamicamente chiavi e condividere le chiavi con i peer VPN. Anche le chiavi di crittografia per la seconda fase di IPsec dipendono da IKE. Libreswan implementa il protocollo IKE utilizzando il programma pluto del progetto.

-->   ESP

Il protocollo ESP è la specifica effettiva della politica concordata tra i peer implementata nello stack IPsec del kernel Linux (NETEY/XFRM).

Caratteristiche di Libreswan

  • Supporto per l'autenticazione basata su chiave precondivisa.
  • Supporto per l'autenticazione basata su chiave pubblica.
  • Supporta entrambe le versioni IKE v1/v2 dello scambio di chiavi.
  • Libraria crittografica NSS supportata.
  • Sono supportati anche Xauth e DNSSec.

Pacchetti richiesti per Ubuntu 16.04

È necessario installare i seguenti pacchetti su Ubuntu per una corretta compilazione di LibreSwan. Nel codice sorgente sono inoltre fornite brevi informazioni su come abilitare o disabilitare plug-in/funzioni e comandi durante l'installazione di LibreSwan.

apt-get -y update
apt-get install  libunbound-dev libevent-dev  libsystemd-dev libnss3-dev libnspr4-dev pkg-config \ libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make libnss3-tools

L'installazione dei pacchetti richiesti è mostrata di seguito.

L'ultimo codice sorgente dello strumento IPsec viene scaricato utilizzando il comando wget ed estratto utilizzando il seguente comando tar.

wget https://download.libreswan.org/libreswan-3.20.tar.gz
tar -xzf libreswan-3.20.tar.gz
cd libreswan-3.20

Non è necessario eseguire il comando configure, basta eseguire make comando che mostrerà due modi per costruire LibreSwan come mostrato di seguito.

Infine, esegui make all  comando per costruire LibreSwan sulla piattaforma.

make all

Ora esegui make install comando per installare il programma IPsec.

Avvio del servizio IPsec

Come mostrato nella schermata sopra, è necessario abilitare il servizio IPSec sulla piattaforma Ubuntu utilizzando il comando seguente.

systemctl enable ipsec.service

È necessario inizializzare la libreria di crittografia NSS prima di avviare il servizio IPsec. Viene utilizzato da LibreSwan per l'utilizzo dell'algoritmo crittografico in IPsec VPN.

IPsec initnss

Infine, avvia il servizio IPSec utilizzando il comando seguente.

ipsec setup start

Esegui stato ipsec comando per visualizzare le impostazioni di LibreSwan sulla piattaforma Ubuntu.

ipsec status

Configurazione di LibreSwan

In questo tutorial, verrà configurata una VPN IPsec tra peer utilizzando una chiave precondivisa e chiavi RSA (coppia di chiavi pubblica/privata). Di seguito è riportata la configurazione di entrambi i peer (sinistra/destra).

VPN basata su chiave precondivisa

ipsec.conf (configuration file of left VM)              ipsec.secrets  (configuration file of left VM)

versione 2                                                                           192.168.15.145 192.168.15.245:PSK "vpn"

configurazione                                                       
                 protostack=netkey
conn vpn_psk

                  ike=aes256-sha256;modp4096
                  phase2alg=aes256-sha256;modp4096
                  left=192.168.15.145
                  leftsubnet=172.16.10.0/24
                  right=192.168.15.245
                 rightsubnet=192.169.50.0/24
                  authby=secret
                  type=tunnel
                  auto=start

ipsec.conf (configuration file of right VM)              ipsec.secrets  (configuration file of right VM)

versione 2                                                                           192.168.15.245 192.168.15.145:PSK "vpn_psk123"

configurazione                                                       
                 protostack=netkey
conn vpn_psk

         ike=aes256-sha256;modp4096
         phase2alg=aes256-sha256;modp4096
         left=192.168.15.245
         leftsubnet=192.169.50.0/24
         right=192.168.15.145
        rightsubnet=172.16.10.0/24
         authby=secret
         type=tunnel
         auto=start

Dopo aver impostato la configurazione precedente nei file ipsec.conf e ipsec.secrets, esegui il comando seguente su entrambi i lati per avviare il processo di negoziazione IPSec.

ipsec restart

Stato della VPN con chiave precondivisa

L'output di stato ipsec e setkey -D i comandi sono mostrati di seguito.

ipsec status

setkey -D

VPN basata su chiave RSA (pubblica/privata)

È necessario generare chiavi RSA per entrambe le macchine e includerle nel file di configurazione. La versione ridotta di una chiave RSA è mostrata in questo tutorial. Assicurati inoltre che la chiave pubblica inclusa sia su una riga singola.

Generazione di chiavi RSA

Come mostrato di seguito, i seguenti comandi vengono utilizzati per generare chiavi per entrambi i peer.

 ipsec newhostkey --output /etc/ipsec.secrets

La chiave pubblica generata viene aggiunta nel file ipsec.secrets come mostrato di seguito.

Allo stesso modo, le chiavi RSA vengono generate utilizzando lo stesso comando per la macchina sul lato destro, come mostrato nell'istantanea seguente.

Come mostrato sopra, i comandi di generazione delle chiavi includono automaticamente la chiave pubblica RSA in /etc/ipsec.secrets su entrambe le macchine peer. La chiave privata di RSA è archiviata nel database di NSS in  /etc/ipsec.d/*.db file.

Dopo aver generato le chiavi RSA, il passaggio successivo modifica la configurazione di entrambe le macchine nel file ipsec.conf.

ipsec.conf (configuration file of left VM)             

versione 2                                                                          

configurazione                                                       
                 protostack=netkey
conn vpn_rsa

                  ike=aes256-sha256;modp4096
                  phase2alg=aes256-sha256;modp4096
                  left=192.168.15.145
                  leftsubnet=172.16.10.0/24
                  right=192.168.15.245
                 rightsubnet=192.169.50.0/24
                  authby=rsasig
                 leftrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
                 rightrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fem>

                  type=tunnel
                  auto=start

ipsec.conf (configuration file of right VM)              

versione 2                                                                          

configurazione                                                       
                 protostack=netkey
conn vpn_rsa

         ike=aes256-sha256;modp4096
         phase2alg=aes256-sha256;modp4096
         left=192.168.15.245
         leftsubnet=192.169.50.0/24
         right=192.168.15.145
        rightsubnet=172.16.10.0/24
         authby=rsasig
         rightrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
         leftrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE

         type=tunnel
         auto=start

Dopo aver modificato i file di configurazione di LibreSwan, il passaggio successivo consiste nel riavviare il servizio IPsec su entrambe le macchine utilizzando il comando seguente.

ipsec restart

Lo stato della VPN IPsec sul dispositivo sinistro è mostrato nella schermata seguente. Mostra che RSASIG viene utilizzato nella policy per autenticare i peer del tunnel IPsec.

Lo scopo di questo tutorial è esplorare "LibreSwan" che fornisce l'implementazione del protocollo IPsec. È disponibile nelle distribuzioni RedHat, tuttavia può essere compilato facilmente per un'altra piattaforma come Ubuntu/Debian. In questo articolo, il primo strumento LibreSwan è creato dal sorgente e poi due VPN configurate utilizzando chiavi precondivise e RSA tra i dispositivi gateway.


Ubuntu
  1. VPN IPsec basata su StrongSwan che utilizza certificati e chiave pre condivisa su Ubuntu 16.04

  2. Come installare e configurare Algo VPN Server su Ubuntu 20.04

  3. Utilizzo di ATA Over Ethernet (AoE) su Ubuntu 12.10 (iniziatore e destinazione)

  4. Utilizzo di Ansible per installare e configurare Elasticsearch su Ubuntu 20.04

  5. Ubuntu:come scorrere in un terminale Ubuntu usando i tasti freccia?

Come trovare ed eliminare file duplicati in Ubuntu usando Fdupes

Utilizzo di Yarn su Ubuntu e altre distribuzioni Linux

Utilizzo di file e cartelle sullo schermo del desktop in Ubuntu

Suggerimenti e trucchi per usare Ctrl+Z in Ubuntu Linux

I tasti di scelta rapida di Ubuntu 18.04 non salvano gli screenshot?

Come utilizzare apt-get reinstall su Debian e Ubuntu