Esercizio - Creare un gateway VPN di Azure
Garantire la connessione di client o siti del proprio ambiente in Azure con tunnel crittografati sulla rete Internet pubblica. In questa unità verrà creato un gateway VPN da punto a sito e quindi si stabilirà la connessione a tale gateway dal computer client. Per sicurezza si useranno connessioni con autenticazione del certificato nativa di Azure.
La procedura sarà la seguente:
Creare un gateway VPN di tipo RouteBased.
Caricare la chiave pubblica per un certificato radice ai fini dell'autenticazione.
Generare un certificato client dal certificato radice e quindi installare il certificato client in ogni computer client che si connetterà alla rete virtuale ai fini dell'autenticazione.
Creare i file di configurazione del client VPN, che contengono le informazioni necessarie per la connessione del client alla rete virtuale.
Attrezzaggio
Per completare questo modulo, usare Azure PowerShell dal computer Windows 10 locale.
Aprire una nuova sessione di PowerShell nel computer Windows 10 locale in cui è installato il modulo Azure PowerShell.
Accedere ad Azure usando il cmdlet
Connect-AzAccount
di PowerShell.Configurare le variabili da usare per creare una rete virtuale. Copiare e incollare le variabili seguenti in PowerShell.
$VNetName = "VNetData"
$FESubName = "FrontEnd"
$BESubName = "Backend"
$GWSubName = "GatewaySubnet"
$VNetPrefix1 = "192.168.0.0/16"
$VNetPrefix2 = "10.254.0.0/16"
$FESubPrefix = "192.168.1.0/24"
$BESubPrefix = "10.254.1.0/24"
$GWSubPrefix = "192.168.200.0/26"
$VPNClientAddressPool = "172.16.201.0/24"
$ResourceGroup = "VpnGatewayDemo"
$Location = "East US"
$GWName = "VNetDataGW"
$GWIPName = "VNetDataGWPIP"
$GWIPconfName = "gwipconf"
Configurare una rete virtuale
Eseguire il comando seguente per creare un gruppo di risorse.
New-AzResourceGroup -Name $ResourceGroup -Location $Location
Eseguire il comando seguente per creare le configurazioni delle subnet per la rete virtuale. Queste configurazioni sono denominate FrontEnd, BackEnd e GatewaySubnet. Tutte queste subnet sono presenti nel prefisso di rete virtuale.
$fesub = New-AzVirtualNetworkSubnetConfig -Name $FESubName -AddressPrefix $FESubPrefix $besub = New-AzVirtualNetworkSubnetConfig -Name $BESubName -AddressPrefix $BESubPrefix $gwsub = New-AzVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix
Eseguire quindi il comando seguente per creare la rete virtuale usando i valori delle subnet e un server DNS statico.
New-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroup -Location $Location -AddressPrefix $VNetPrefix1,$VNetPrefix2 -Subnet $fesub, $besub, $gwsub -DnsServer 10.2.1.3
A questo punto, specificare le variabili create per la rete.
$vnet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroup $subnet = Get-AzVirtualNetworkSubnetConfig -Name $GWSubName -VirtualNetwork $vnet
Eseguire il comando seguente per richiedere un indirizzo IP pubblico assegnato dinamicamente.
$pip = New-AzPublicIpAddress -Name $GWIPName -ResourceGroupName $ResourceGroup -Location $Location -AllocationMethod Dynamic $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName -Subnet $subnet -PublicIpAddress $pip
Creare il gateway VPN
Durante la creazione del gateway VPN:
- GatewayType deve essere Vpn
- VpnType deve essere RouteBased
Il completamento di questa parte dell'esercizio può richiedere fino a 45 minuti.
Per creare il gateway VPN, eseguire il comando seguente e premere INVIO.
New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $ResourceGroup ` -Location $Location -IpConfigurations $ipconf -GatewayType Vpn ` -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1 -VpnClientProtocol "IKEv2"
Attendere che venga visualizzato l'output del comando.
Aggiungere il pool di indirizzi client VPN
Eseguire il comando seguente per aggiungere il pool di indirizzi client VPN.
$Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $ResourceGroup -Name $GWName Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientAddressPool $VPNClientAddressPool
Attendere che venga visualizzato l'output del comando.
Generare un certificato client
Con l'infrastruttura di rete creata in Azure è necessario creare un certificato client autofirmato nel computer locale. Questa creazione può essere eseguita con modalità simili nella maggior parte dei sistemi operativi. Di seguito verrà illustrato come generare il certificato client su Windows 10 usando PowerShell con il modulo Azure PowerShell e l'utilità Gestione certificati di Windows.
Il primo passaggio è la creazione del certificato radice autofirmato. Esegui il comando seguente:
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature ` -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
Generare quindi un certificato client firmato mediante il nuovo certificato radice.
New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature ` -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable ` -HashAlgorithm sha256 -KeyLength 2048 ` -CertStoreLocation "Cert:\CurrentUser\My" ` -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")
Esportare la chiave pubblica del certificato
Dopo aver generato i certificati è necessario esportare la chiave pubblica del certificato radice.
Eseguire
certmgr
da PowerShell per aprire Gestione certificati.Passare a Personale>Certificati.
Fare clic con il pulsante destro del mouse sul certificato P2SRootCert nell'elenco e selezionare Tutte le attività>Esporta.
Nell'Esportazione guidata certificati selezionare Avanti.
Verificare che l'opzione No, non esportare la chiave privata sia selezionata e quindi selezionare Avanti.
Nella pagina Formato file di esportazione assicurarsi che l'opzione Codificato Base 64 X.509 (.CER) sia selezionata e quindi selezionare Avanti.
Nella pagina File da esportare, in Nome file, passare a un percorso facile da ricordare e salvare il file con il nome P2SRootCert.cer, quindi selezionare Avanti.
Nella pagina Completamento dell'Esportazione guidata certificati selezionare Fine.
Nella finestra di messaggio Esportazione guidata certificati selezionare OK.
Caricare le informazioni sulla chiave pubblica del certificato radice
Nella finestra di PowerShell eseguire il comando seguente per dichiarare una variabile per il nome del certificato.
$P2SRootCertName = "P2SRootCert.cer"
Sostituire il segnaposto
<cert-path>
con il percorso di esportazione del certificato radice ed eseguire il comando seguente.$filePathForCert = "<cert-path>\P2SRootCert.cer" $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert) $CertBase64 = [system.convert]::ToBase64String($cert.RawData) $p2srootcert = New-AzVpnClientRootCertificate -Name $P2SRootCertName -PublicCertData $CertBase64
Con il nome del gruppo impostato, caricare il certificato in Azure con il comando seguente.
Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname $GWName -ResourceGroupName $ResourceGroup -PublicCertData $CertBase64
Azure ora riconosce questo certificato come certificato radice attendibile per la rete virtuale.
Configurare il client VPN nativo
Eseguire il comando seguente per creare i file di configurazione del client VPN in formato ZIP.
$profile = New-AzVpnClientConfiguration -ResourceGroupName $ResourceGroup -Name $GWName -AuthenticationMethod "EapTls" $profile.VPNProfileSASUrl
Copiare l'URL restituito nell'output del comando e incollarlo nel browser. Il browser avvierà il download di un file ZIP. Estrarre il contenuto dell'archivio in un percorso appropriato.
Alcuni browser tenteranno inizialmente di bloccare il download di questo file con estensione ZIP come download dannoso. Sarà necessario eseguire l'override di questa impostazione nel browser per poter estrarre il contenuto dell'archivio.
Nella cartella estratta passare alla cartella WindowsAmd64 (per i computer Windows a 64 bit) o alla cartella WindowsX86 (per i computer a 32 bit).
Se si vuole configurare una VPN in un computer non Windows, è possibile usare il certificato e i file di impostazioni della cartella Generic.
Fare doppio clic sul file VpnClientSetup{architecture}.exe con
{architecture}
corrispondente all'architettura in uso.Nella schermata PC protetto da Windows selezionare Altre informazioni e quindi Esegui comunque.
Nella finestra di dialogo Controllo dell'account utente selezionare Sì.
Nella finestra di dialogo VNetData selezionare Sì.
Connect to Azure
Premere il tasto Windows, immettere Impostazioni e premere INVIO.
Nella finestra Impostazioni selezionare Rete e Internet.
Nel riquadro a sinistra selezionare VPN.
Nel riquadro a destra selezionare VNetData e quindi Connetti.
Nella finestra VNetData selezionare Connetti.
Nella finestra VNetData successiva selezionare Continua.
Nella finestra del messaggio Controllo dell'account utente selezionare Sì.
Se questa procedura non funziona, potrebbe essere necessario riavviare il computer.
Verificare la connessione
In un nuovo prompt dei comandi di Windows eseguire
IPCONFIG /ALL
.Copiare l'indirizzo IP visualizzato in Scheda PPP VNetData o prendere nota dell'indirizzo.
Confermare che l'indirizzo IP sia compreso nell'intervallo VPNClientAddressPool di 172.16.201.0/24.
La connessione al gateway VPN di Azure è riuscita.
È stato configurato un gateway VPN che consente di stabilire una connessione client crittografata a una rete virtuale in Azure. Questo approccio è ideale per i computer client e le connessioni da sito a sito di dimensioni ridotte.