Configurare VPN strongSwan per le connessioni IKEv2 di autenticazione del certificato da punto a sito - Linux

Questo articolo illustra come connettersi alla rete virtuale di Azure (VNet) tramite il gateway VPN da punto a sito (P2S) e l'Autenticazione del certificato da un client Ubuntu Linux tramite strongSwan.

Operazioni preliminari

Prima di iniziare, verificare che l'articolo sia quello corretto. La tabella seguente illustra gli articoli di configurazione disponibili per i client VPN da punto a sito del Gateway VPN di Azure. I passaggi variano a seconda del tipo di autenticazione, del tipo di tunnel e del sistema operativo client.

Autenticazione Tipo di tunnel Sistema operativo client Client VPN
Certificate
IKEv2, SSTP Finestre Client VPN nativo
IKEv2 macOS Client VPN nativo
IKEv2 Linux strongSwan
OpenVPN Finestre Client VPN di Azure
Client OpenVPN versione 2.x
Client OpenVPN versione 3.x
OpenVPN macOS Client OpenVPN
OpenVPN iOS Client OpenVPN
OpenVPN Linux Client VPN di Azure
Client OpenVPN
Microsoft Entra ID
OpenVPN Finestre Client VPN di Azure
OpenVPN macOS Client VPN di Azure
OpenVPN Linux Client VPN di Azure

Prerequisiti

Questo articolo presuppone che l'utente abbia già soddisfatto i prerequisiti seguenti:

Requisiti di connessione

Per connettersi ad Azure usando il client strongSwan e l'autenticazione del certificato tramite il tipo di tunnel IKEv2, per ogni client che si connette sono necessari gli elementi seguenti:

  • Ogni client deve essere configurato per l'uso di strongSwan.
  • Il client deve avere i certificati corretti installati in locale.

Workflow

Il flusso di lavoro per questo articolo è:

  1. Installare strongSwan.
  2. Visualizzare i file di configurazione del profilo client VPN contenuti nel pacchetto di configurazione del profilo client VPN generato.
  3. Individuare i certificati client necessari.
  4. Configurare strongSwan.
  5. Connettersi ad Azure.

Informazioni sui certificati

Per l'autenticazione del certificato, è necessario installare un certificato client in ogni computer client. Il certificato client che si vuole usare deve essere esportato con la chiave privata e deve contenere tutti i certificati nel percorso di certificazione. Inoltre, per alcune configurazioni, è anche necessario installare le informazioni sul certificato radice.

Per altre informazioni sui certificati per Linux, vedere gli articoli seguenti:

Installare strongSwan

Per specificare i comandi, è stata usata la configurazione seguente:

  • Computer: Server Ubuntu 18.04
  • Dipendenze: strongSwan

Per installare la configurazione strongSwan richiesta, eseguire i comandi seguenti:

sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0

Visualizzare i file di configurazione del profilo client VPN

Quando si genera un pacchetto di configurazione del profilo client VPN, tutte le impostazioni di configurazione necessarie per i client VPN sono contenute in un file ZIP di configurazione del profilo client VPN. I file di configurazione del profilo client VPN sono specifici della configurazione del gateway VPN da punto a sito per la rete virtuale. Se vengono apportate modifiche alla configurazione VPN da punto a sito dopo la generazione dei file, ad esempio modifiche al tipo di autenticazione o al tipo di protocollo VPN, è necessario generare nuovi file di configurazione del profilo client VPN e applicare la nuova configurazione a tutti i client VPN da connettere.

Individuare e decomprimere il pacchetto di configurazione del profilo client VPN generato e scaricato. Tutte le informazioni necessarie per la configurazione sono disponibili nella cartella Generic. Azure non fornisce un file mobileconfig per questa configurazione.

Se la cartella Generic non viene visualizzata, controllare gli elementi seguenti, quindi generare di nuovo il file ZIP.

  • Controllare il tipo di tunnel per la configurazione. È probabile che come tipo di tunnel non sia stato selezionato IKEv2.
  • Nel gateway VPN verificare che lo SKU non sia Basic. Lo SKU Basic del gateway VPN non supporta IKEv2. Selezionare quindi IKEv2 e generare di nuovo il file ZIP per recuperare la cartella Generic.

La cartella Generic contiene i file seguenti:

  • VpnSettings.xml, che contiene impostazioni importanti come l'indirizzo del server e il tipo di tunnel.
  • VpnServerRoot.cer, che contiene il certificato radice necessario per convalidare il gateway VPN di Azure durante la configurazione della connessione da punto a sito.

Configurare il client VPN

Dopo aver visualizzato i file del profilo client VPN, continuare con la procedura che si intende usare:

Procedura con interfaccia utente grafica

Questa sezione illustra la configurazione con l'interfaccia utente grafica di strongSwan. Le istruzioni seguenti sono state create in Ubuntu 18.0.4. Ubuntu 16.0.10 non supporta l'interfaccia utente grafica di strongSwan. Se si intende comunque usare Ubuntu 16.0.10, sarà necessario ricorrere alla riga di comando. A seconda delle versioni di Linux e strongSwan in uso, è possibile che le schermate riportate negli esempi seguenti non corrispondano a quelle effettivamente visualizzate.

  1. Aprire il Terminale per installare strongSwan e il relativo gestore di rete eseguendo il comando riportato nell'esempio.

    sudo apt install network-manager-strongswan
    
  2. Scegliere Impostazioni e quindi Rete. Selezionare il pulsante + per creare una nuova connessione.

    Screenshot che mostra la pagina delle connessioni di rete.

  3. Selezionare IPsec/IKEv2 (strongSwan) dal menu e fare doppio clic.

    Screenshot che mostra la pagina Aggiungi VPN.

  4. Nella pagina Aggiungi VPN, aggiungere un nome per la connessione VPN.

    Screenshot che illustra il modulo per la scelta di un tipo di connessione.

  5. Aprire il file VpnSettings.xml della cartella Generic contenuta nei file di configurazione del profilo client VPN scaricati. Trovare il tag denominato VpnServer e copiare il nome, che inizia con "azuregateway" e termina con ".cloudapp.net".

    Screenshot che mostra la copia dei dati.

  6. Incollare il nome nel campo Indirizzo della nuova connessione VPN nella sezione Gateway. Successivamente, selezionare l'icona della cartella alla fine del campo Certificate (Certificato), passare alla cartella Generic e selezionare il file VpnServerRoot.

  7. Nella sezione Client della connessione, per Authentication (Autenticazione) selezionare Certificate/private key (Certificato/Chiave privata). Per Certificate (Certificato) e Private key (Chiave privata) scegliere il certificato e la chiave privata creati in precedenza. In Options (Opzioni) selezionare Request an inner IP address (Richiedi un indirizzo IP interno). Quindi selezionare Aggiungi.

    Screenshot che mostra la richiesta di un indirizzo IP interno.

  8. Attivare la connessione.

    Screenshot che mostra la copia.

Procedura con interfaccia della riga di comando

Questa sezione illustra la configurazione con l'interfaccia della riga di comando di strongSwan.

  1. Dalla cartella Generic dei file di configurazione del profilo client VPN, copiare o spostare VpnServerRoot.cer in /etc/ipsec.d/cacerts.

  2. Copiare o spostare i file generati rispettivamente in /etc/ipsec.d/certs e /etc/ipsec.d/private/. Questi file sono il certificato client e la chiave privata e devono trovarsi nelle directory corrispondenti. Usare i comandi seguenti:

    sudo cp ${USERNAME}Cert.pem /etc/ipsec.d/certs/
    sudo cp ${USERNAME}Key.pem /etc/ipsec.d/private/
    sudo chmod -R go-rwx /etc/ipsec.d/private /etc/ipsec.d/certs
    
  3. Eseguire il comando seguente per prendere nota del nome host. Questo valore verrà usato nel passaggio successivo.

    hostnamectl --static
    
  4. Aprire il file VpnSettings.xml e copiare il valore di <VpnServer>. Questo valore verrà usato nel passaggio successivo.

  5. Modificare i valori nell'esempio seguente, quindi aggiungere l'esempio alla configurazione /etc/ipsec.conf.

    conn azure
          keyexchange=ikev2
          type=tunnel
          leftfirewall=yes
          left=%any
          # Replace ${USERNAME}Cert.pem with the key filename inside /etc/ipsec.d/certs  directory. 
          leftcert=${USERNAME}Cert.pem
          leftauth=pubkey
          leftid=%client # use the hostname of your machine with % character prepended. Example: %client
          right= #Azure VPN gateway address. Example: azuregateway-xxx-xxx.vpn.azure.com
          rightid=% #Azure VPN gateway FQDN with % character prepended. Example: %azuregateway-xxx-xxx.vpn.azure.com
          rightsubnet=0.0.0.0/0
          leftsourceip=%config
          auto=add
          esp=aes256gcm16
    
  6. Aggiungere i valori dei segreti a /etc/ipsec.secrets.

    Il nome del file PEM deve corrispondere a quello usato in precedenza come file di chiave client.

    : RSA ${USERNAME}Key.pem  # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory. 
    
  7. Eseguire i comandi seguenti:

    sudo ipsec restart
    sudo ipsec up azure
    

Passaggi successivi

Per altri passaggi, tornare all'articolo Da punto a sito nel portale di Azure.