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:
- Il Gateway VPN è configurato per l'autenticazione del certificato da punto a sito e per il tipo di tunnel IKEv2. Per la procedura, vedere Configurare le impostazioni del server per le connessioni del Gateway VPN da punto a sito: autenticazione del certificato.
- I file di configurazione del profilo client VPN sono stati generati e sono disponibili. Per la procedura, vedere Generare file di configurazione del profilo client VPN.
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 è:
- Installare strongSwan.
- Visualizzare i file di configurazione del profilo client VPN contenuti nel pacchetto di configurazione del profilo client VPN generato.
- Individuare i certificati client necessari.
- Configurare strongSwan.
- 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.
Aprire il Terminale per installare strongSwan e il relativo gestore di rete eseguendo il comando riportato nell'esempio.
sudo apt install network-manager-strongswan
Scegliere Impostazioni e quindi Rete. Selezionare il pulsante + per creare una nuova connessione.
Selezionare IPsec/IKEv2 (strongSwan) dal menu e fare doppio clic.
Nella pagina Aggiungi VPN, aggiungere un nome per la connessione VPN.
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".
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.
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.
Attivare la connessione.
Procedura con interfaccia della riga di comando
Questa sezione illustra la configurazione con l'interfaccia della riga di comando di strongSwan.
Dalla cartella Generic dei file di configurazione del profilo client VPN, copiare o spostare VpnServerRoot.cer in /etc/ipsec.d/cacerts.
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
Eseguire il comando seguente per prendere nota del nome host. Questo valore verrà usato nel passaggio successivo.
hostnamectl --static
Aprire il file VpnSettings.xml e copiare il valore di
<VpnServer>
. Questo valore verrà usato nel passaggio successivo.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
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.
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.