Configurare una connessione da punto a sito a una rete virtuale usando l'autenticazione RADIUS: PowerShell

Questo articolo illustra come creare una rete virtuale con una connessione da punto a sito (P2S) che usa l'autenticazione RADIUS. Questa configurazione è disponibile solo per il modello di distribuzione Resource Manager. È possibile creare questa configurazione usando PowerShell o il portale di Azure.

Un gateway VPN da punto a sito consente di creare una connessione sicura alla rete virtuale da un singolo computer client. Le connessioni VPN da punto a sito sono utili quando si vuole connettersi alla rete virtuale da una posizione remota, ad esempio quando si esegue la telecomunicazione da casa o una conferenza. Una VPN da punto a sito è anche una soluzione utile da usare anziché una VPN da sito a sito quando sono presenti solo alcuni client che devono connettersi a una rete virtuale.

Una connessione VPN P2S viene avviata dai dispositivi Windows e Mac. Questo articolo illustra come configurare una configurazione da sito a sito che usa un server RADIUS per l'autenticazione. Per eseguire l'autenticazione con un metodo diverso, vedere gli articoli seguenti:

Le connessioni da sito a sito non richiedono un dispositivo VPN o un indirizzo IP pubblico. P2S crea la connessione VPN tramite SSTP (Secure Socket Tunneling Protocol), OpenVPN o IKEv2.

  • SSTP è un tunnel VPN basato su TLS supportato solo nelle piattaforme client Windows. Può penetrare i firewall, che lo rende una buona opzione per connettere i dispositivi Windows ad Azure da qualsiasi luogo. Sul lato server è supportato solo TLS versione 1.2. Per migliorare le prestazioni, la scalabilità e la sicurezza, è consigliabile usare invece il protocollo OpenVPN.

  • OpenVPN®, un protocollo VPN basato su SSL/TLS. Una soluzione VPN TLS può penetrare i firewall perché la maggior parte dei firewall apre la porta TCP 443 in uscita usata da TLS. OpenVPN può essere usato per connettersi da dispositivi Android, iOS (versioni 11.0 e successive), dispositivi Windows, Linux e Mac (versioni macOS 10.13 e successive).

  • VPN IKEv2, una soluzione VPN IPsec basata su standard. La VPN IKEv2 può essere usata per connettersi da dispositivi Windows, Linux e Mac (versioni macOS 10.11 e successive).

Per questa configurazione, le connessioni richiedono quanto segue:

  • Un gateway VPN RouteBased.
  • Un server RADIUS per gestire l'autenticazione utente. Il server RADIUS può essere distribuito in locale o nella rete virtuale di Azure. È anche possibile configurare due server RADIUS per la disponibilità elevata.
  • Pacchetto di configurazione del profilo client VPN. Il pacchetto di configurazione del profilo client VPN è un pacchetto generato. Fornisce le impostazioni necessarie per la connessione di un client VPN tramite P2S.

Informazioni sull'autenticazione di un dominio di Active Directory (AD) per le VPN P2S

L'autenticazione di un dominio di AD consente agli utenti di accedere ad Azure usando le credenziali di dominio dell'organizzazione. Richiede un server RADIUS che si integra con il server AD. Le organizzazioni possono anche sfruttare la distribuzione RADIUS esistente.

Il server RADIUS può trovarsi in locale o nella rete virtuale di Azure. Durante l'autenticazione, il gateway VPN funge da pass-through e inoltra i messaggi di autenticazione tra il server RADIUS e il dispositivo che si connette e viceversa. È importante per il gateway VPN poter raggiungere il server RADIUS. Se il server RADIUS si trova in locale, è necessaria una connessione VPN da sito a sito da Azure al sito locale.

Oltre che con Active Directory, un server RADIUS può anche integrarsi con altri sistemi di identità esterni, In questo modo sono disponibili numerose opzioni di autenticazione per le VPN da sito a sito, incluse le opzioni MFA. Vedere la documentazione del fornitore del server RADIUS per ottenere l'elenco dei sistemi di identità con cui si integra.

Diagram of RADIUS authentication P2S connection.

Importante

È possibile usare solo una connessione VPN da sito a sito per la connessione a un server RADIUS locale. Non è possibile usare una connessione ExpressRoute.

Prima di iniziare

Verificare di possedere una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, è possibile attivare i vantaggi per i sottoscrittori di MSDN oppure iscriversi per ottenere un account gratuito.

Uso di Azure PowerShell

Questo articolo usa i cmdlet di PowerShell. Per eseguire i cmdlet, è possibile usare Azure Cloud Shell. Cloud Shell è una shell interattiva gratuita che è possibile usare per eseguire i passaggi descritti in questo articolo. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.

Per aprire Cloud Shell, selezionare Apri CloudShell nell'angolo superiore destro di un blocco di codice. È anche possibile aprire Cloud Shell in una scheda separata del browser andando su https://shell.azure.com/powershell. Selezionare Copia per copiare i blocchi di codice e incollarli in Cloud Shell, poi premere INVIO per eseguirli.

È anche possibile installare ed eseguire i cmdlet di Azure PowerShell in locale nel computer. I cmdlet di PowerShell vengono aggiornati di frequente. Se non è stata installata la versione più recente, i valori specificati nelle istruzioni potrebbero non avere successo. Per trovare le versioni di Azure PowerShell installate nel computer, usare il Get-Module -ListAvailable Az cmdlet . Per installare o aggiornare, vedere Installare il modulo Azure PowerShell.

Valori di esempio

È possibile usare i valori di esempio per creare un ambiente di test o fare riferimento a questi valori per comprendere meglio gli esempi di questo articolo. È possibile seguire la procedura dettagliata e usare i valori senza modificarle oppure modificarli in base all'ambiente.

  • Nome: VNet1
  • Spazio indirizzi: 10.1.0.0/16 e 10.254.0.0/16
    Per questo esempio, si usa più di uno spazio indirizzi per mostrare che la configurazione funziona con più spazi indirizzi, Tuttavia, per questa configurazione non sono necessari più spazi indirizzi.
  • Nome subnet: FrontEnd
    • Intervallo di indirizzi subnet: 10.1.0.0/24
  • Nome subnet: BackEnd
    • Intervallo di indirizzi subnet: 10.254.1.0/24
  • Nome subnet: GatewaySubnet
    Il nome subnet GatewaySubnet è obbligatorio per il funzionamento del gateway VPN.
    • Intervallo di indirizzi GatewaySubnet: 10.1.255.0/27
  • Pool di indirizzi client VPN: 172.16.201.0/24
    I client VPN che si connettono alla rete virtuale usando questa connessione da sito a sito ricevono un indirizzo IP dal pool di indirizzi client VPN.
  • Sottoscrizione: se sono presenti più sottoscrizioni, verificare di usare quella corretta.
  • Gruppo di risorse: TestRG1
  • Località: Stati Uniti orientali
  • Server DNS: indirizzo IP del server DNS che si vuole usare per la risoluzione dei nomi per la rete virtuale. (facoltativo).
  • Nome del gateway: Vnet1GW
  • Nome dell'IP pubblico: VNet1GWPIP
  • VpnType: RouteBased

1. Impostare le variabili

Dichiarare le variabili da usare. Usare l'esempio seguente, sostituendo i valori con quelli personalizzati, se necessario. Se si chiude la sessione di PowerShell/Cloud Shell in qualsiasi momento durante l'esercizio, è sufficiente copiare e incollare nuovamente i valori per ripetere la richiesta delle variabili.

$VNetName  = "VNet1"
$FESubName = "FrontEnd"
$BESubName = "Backend"
$GWSubName = "GatewaySubnet"
$VNetPrefix1 = "10.1.0.0/16"
$VNetPrefix2 = "10.254.0.0/16"
$FESubPrefix = "10.1.0.0/24"
$BESubPrefix = "10.254.1.0/24"
$GWSubPrefix = "10.1.255.0/27"
$VPNClientAddressPool = "172.16.201.0/24"
$RG = "TestRG1"
$Location = "East US"
$GWName = "VNet1GW"
$GWIPName = "VNet1GWPIP"
$GWIPconfName = "gwipconf1"

2. Creare il gruppo di risorse, la rete virtuale e l'indirizzo IP pubblico

I passaggi seguenti creano un gruppo di risorse e una rete virtuale nel gruppo di risorse con tre subnet. Quando si sostituiscono i valori, è importante che la subnet gateway venga denominata sempre esattamente 'GatewaySubnet'. Se si assegnano altri nomi, la creazione del gateway ha esito negativo.

  1. Crea un gruppo di risorse.

    New-AzResourceGroup -Name "TestRG1" -Location "East US"
    
  2. Creare le configurazioni delle subnet per la rete virtuale, denominandole FrontEnd, BackEnd e GatewaySubnet. Questi prefissi devono fare parte dello spazio indirizzi della rete virtuale dichiarato.

    $fesub = New-AzVirtualNetworkSubnetConfig -Name "FrontEnd" -AddressPrefix "10.1.0.0/24"  
    $besub = New-AzVirtualNetworkSubnetConfig -Name "Backend" -AddressPrefix "10.254.1.0/24"  
    $gwsub = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix "10.1.255.0/27"
    
  3. Creare la rete virtuale.

    In questo esempio il parametro del server -DnsServer è facoltativo. Se si specifica un valore, non viene creato un nuovo server DNS. L'indirizzo IP del server DNS specificato deve essere un server DNS in grado di risolvere i nomi per le risorse a cui ci si connette dalla rete virtuale. Per questo esempio è stato usato un indirizzo IP privato, ma è probabile che non si tratti dell'indirizzo IP del server DNS. Assicurarsi di usare valori personalizzati. Il valore specificato viene usato dalle risorse distribuite nella rete virtuale, non dalla connessione P2S.

    New-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1" -Location "East US" -AddressPrefix "10.1.0.0/16","10.254.0.0/16" -Subnet $fesub, $besub, $gwsub -DnsServer 10.2.1.3
    
  4. Un gateway VPN deve avere un indirizzo IP pubblico. È necessario richiedere prima di tutto la risorsa dell'indirizzo IP e quindi farvi riferimento durante la creazione del gateway di rete virtuale. L'indirizzo IP viene assegnato dinamicamente alla risorsa durante la creazione del gateway VPN. Il gateway VPN supporta attualmente solo l'allocazione degli indirizzi IP pubblici dinamici. Non è possibile richiedere un'assegnazione di indirizzo IP pubblico statico. Tuttavia, questo non significa che l'indirizzo IP cambia dopo che è stato assegnato al gateway VPN. L'indirizzo IP pubblico viene modificato solo quando il gateway viene eliminato e ricreato. Non viene modificato in caso di ridimensionamento, reimpostazione o altre manutenzioni/aggiornamenti del gateway VPN.

    Specificare le variabili per richiedere un indirizzo IP pubblico assegnato dinamicamente.

    $vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1"  
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet 
    $pip = New-AzPublicIpAddress -Name "VNet1GWPIP" -ResourceGroupName "TestRG1" -Location "East US" -AllocationMethod Dynamic 
    $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name "gwipconf1" -Subnet $subnet -PublicIpAddress $pip
    

3. Configurare il server RADIUS

Prima di creare e configurare il gateway di rete virtuale, il server RADIUS deve essere configurato correttamente per l'autenticazione.

  1. Se necessario, distribuire un server RADIUS. Per la procedura di distribuzione, vedere la guida alla configurazione del fornitore RADIUS.  
  2. Configurare il gateway VPN come client RADIUS in RADIUS. Quando si aggiunge questo client RADIUS, specificare l'elemento GatewaySubnet di rete virtuale creato.
  3. Dopo avere configurato il server RADIUS, ottenere l'indirizzo IP del server RADIUS e il segreto condiviso che i client RADIUS devono usare per comunicare con il server RADIUS. Se il server RADIUS è nella rete virtuale di Azure, usare l'IP della CA della VM del server RADIUS.

L'articolo Server dei criteri di rete (NPS) fornisce indicazioni sulla configurazione di un server RADIUS Windows (NPS) per l'autenticazione di un dominio di AD.

4. Creare il gateway VPN

Configurare e creare il gateway VPN per la rete virtuale.

  • -GatewayType deve essere "Vpn" e -VpnType deve essere "RouteBased".
  • Il completamento di un gateway VPN può richiedere almeno 45 minuti, a seconda dello SKU del gateway selezionato.
New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG `
-Location $Location -IpConfigurations $ipconf -GatewayType Vpn `
-VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1

5. Aggiungere il server RADIUS e il pool di indirizzi client

  • -RadiusServer può essere specificato con il nome o con l'indirizzo IP. Se si specifica il nome e il server si trova in locale, il gateway VPN potrebbe non riuscire a risolvere il nome. In tal caso è meglio specificare l'indirizzo IP del server.
  • -RadiusSecret deve corrispondere a quanto configurato nel server RADIUS.
  • -VpnClientAddressPool è l'intervallo da cui i client VPN che si connettono ricevono un indirizzo IP. Usare un intervallo di indirizzi IP privati che non si sovrappone alla posizione locale da cui ci si connette o alla rete virtuale a cui si vuole connettersi. Assicurarsi di avere configurato un pool di indirizzi di dimensioni sufficienti.  
  1. Creare una stringa sicura per il segreto RADIUS.

    $Secure_Secret=Read-Host -AsSecureString -Prompt "RadiusSecret"
    
  2. Viene richiesto di immettere il segreto RADIUS. I caratteri immessi non verranno visualizzati e verranno invece sostituiti dal carattere "*".

    RadiusSecret:***
    
  3. Aggiungere il pool di indirizzi client VPN e le informazioni sul server RADIUS.

    Per le configurazioni SSTP:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
    -VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "SSTP" `
    -RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
    

    Per le configurazioni OpenVPN®:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientRootCertificates @()
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
    -VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "OpenVPN" `
    -RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
    

    Per le configurazioni IKEv2:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
    -VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol "IKEv2" `
    -RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
    

    Per SSTP + IKEv2:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway `
    -VpnClientAddressPool "172.16.201.0/24" -VpnClientProtocol @( "SSTP", "IkeV2" ) `
    -RadiusServerAddress "10.51.0.15" -RadiusServerSecret $Secure_Secret
    

    Per specificare due server RADIUS, usare la sintassi seguente. Modificare il valore -VpnClientProtocol in base alle esigenze.

    $radiusServer1 = New-AzRadiusServer -RadiusServerAddress 10.1.0.15 -RadiusServerSecret $radiuspd -RadiusServerScore 30
    $radiusServer2 = New-AzRadiusServer -RadiusServerAddress 10.1.0.16 -RadiusServerSecret $radiuspd -RadiusServerScore 1
    
    $radiusServers = @( $radiusServer1, $radiusServer2 )
    
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $actual -VpnClientAddressPool 201.169.0.0/16 -VpnClientProtocol "IkeV2" -RadiusServerList $radiusServers
    

6. Configurare il client VPN e connettersi

I pacchetti di configurazione del profilo client VPN contengono le impostazioni che consentono di configurare i profili client VPN per una connessione alla rete virtuale di Azure.

Per generare un pacchetto di configurazione client VPN e configurare un client VPN, vedere uno degli articoli seguenti:

Dopo aver configurato il client VPN, connettersi ad Azure.

Per verificare la connessione

  1. Per verificare che la connessione VPN è attiva, aprire un prompt dei comandi con privilegi elevati ed eseguire ipconfig/all.

  2. Visualizzare i risultati. Si noti che l'indirizzo IP ricevuto è uno degli indirizzi all'interno del pool di indirizzi client VPN da sito a sito specificato nella configurazione. I risultati sono simili a questo esempio:

    PPP adapter VNet1:
       Connection-specific DNS Suffix .:
       Description.....................: VNet1
       Physical Address................:
       DHCP Enabled....................: No
       Autoconfiguration Enabled.......: Yes
       IPv4 Address....................: 172.16.201.3(Preferred)
       Subnet Mask.....................: 255.255.255.255
       Default Gateway.................:
       NetBIOS over Tcpip..............: Enabled
    

Per informazioni sulla risoluzione dei problemi della connessione da punto a sito, vedere Risoluzione dei problemi di connessione da punto a sito di Azure.

Per connettersi a una macchina virtuale

È possibile connettersi a una macchina virtuale distribuita nella rete virtuale creando un Connessione Desktop remoto nella macchina virtuale. Il modo migliore per verificare inizialmente che è possibile connettersi alla VM consiste nel connettersi usando il rispettivo indirizzo IP privato, invece del nome del computer. Ciò consente di verificare se è possibile connettersi, non se la risoluzione dei nomi è configurata correttamente.

  1. Individuare l'indirizzo IP privato. È possibile trovare l'indirizzo IP privato di una macchina virtuale esaminando le proprietà della macchina virtuale nel portale di Azure o usando PowerShell.

    • portale di Azure: individuare la macchina virtuale nel portale di Azure. Visualizzare le proprietà per la VM. Viene elencato l'indirizzo IP.

    • PowerShell: usare l'esempio per visualizzare un elenco di macchine virtuali e indirizzi IP privati dai gruppi di risorse. Non è necessario modificare questo esempio prima di usarlo.

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. Verificare di essere connessi alla rete virtuale.

  3. Aprire Remote Desktop Connessione ion immettendo RDP o Remote Desktop Connessione ion nella casella di ricerca sulla barra delle applicazioni. Selezionare quindi Desktop remoto Connessione ion. È anche possibile aprire Connessione Desktop remoto usando il mstsc comando in PowerShell.

  4. In Connessione Desktop remoto immettere l'indirizzo IP privato della macchina virtuale. È possibile selezionare Mostra opzioni per modificare altre impostazioni e quindi connettersi.

Se si verificano problemi di connessione a una macchina virtuale tramite la connessione VPN, verificare i punti seguenti:

  • Verificare che la connessione VPN sia attiva.
  • Verificare che venga effettuata la connessione all'indirizzo IP privato per la macchina virtuale.
  • Se è possibile connettersi alla macchina virtuale usando l'indirizzo IP privato ma non il nome del computer, verificare di aver configurato il DNS correttamente. Per altre informazioni sul funzionamento della risoluzione dei nomi per le macchine virtuali, vedere Risoluzione dei nomi per le macchine virtuali.

Per altre informazioni sulle connessioni RDP, vedere Risolvere i problemi delle connessioni Desktop remoto a una macchina virtuale.

  • Verificare che il pacchetto di configurazione del client VPN sia stato generato dopo che sono stati specificati gli indirizzi IP del server DNS per la rete virtuale. Se gli indirizzi IP del server DNS sono stati aggiornati, generare e installare un nuovo pacchetto di configurazione del client VPN.

  • Usare "ipconfig" per controllare l'indirizzo IPv4 assegnato alla scheda Ethernet nel computer da cui ci si connette. Se l'indirizzo IP si trova all'interno dell'intervallo di indirizzi della rete virtuale a cui ci si connette o all'interno dell'intervallo di indirizzi di VPNClientAddressPool, questo viene definito spazio indirizzi sovrapposto. Con questo tipo di sovrapposizione, il traffico di rete non raggiunge Azure e rimane nella rete locale.

Domande frequenti

Per informazioni sulle domande frequenti, vedere la sezione Autenticazione da punto a sito - RADIUS delle domande frequenti.

Passaggi successivi

Dopo aver completato la connessione, è possibile aggiungere macchine virtuali alle reti virtuali. Per altre informazioni, vedere Macchine virtuali. Per altre informazioni sulla rete e sulle macchine virtuali, vedere Panoramica di rete delle macchine virtuali Linux e Azure.