È possibile usare un gruppo di sicurezza di rete per filtrare il traffico di rete in ingresso e in uscita da e verso le risorse di Azure in una rete virtuale di Azure.
I gruppi di sicurezza di rete contengono regole di sicurezza per filtrare il traffico di rete in base a indirizzo IP, porta e protocollo. Quando un gruppo di sicurezza di rete è associato a una subnet, le regole di sicurezza vengono applicate alle risorse distribuite in tale subnet.
La procedura seguente crea una rete virtuale con una subnet della risorsa.
Nel portale cercare e selezionare Reti virtuali.
Nella pagina Reti virtuali selezionare + Crea.
Nella scheda Informazioni di base di Crea rete virtuale immettere o selezionare le informazioni seguenti:
Impostazione |
Valore |
Dettagli di progetto |
|
Subscription |
Selezionare la propria sottoscrizione. |
Gruppo di risorse |
Selezionare Crea nuovo. Immettere test-rg in Nome. Selezionare OK. |
Dettagli istanza |
|
Nome |
Immettere vnet-1. |
Paese |
Selezionare Stati Uniti orientali 2. |
Selezionare Avanti per passare alla scheda Sicurezza.
Selezionare Avanti per passare alla scheda Indirizzi IP.
Nella casella spazio indirizzi in Subnet selezionare la subnet predefinita.
Nel riquadro Modifica subnet immettere o selezionare le informazioni seguenti:
Impostazione |
Valore |
Dettagli subnet |
|
Modello di subnet |
Lasciare l'impostazione predefinita Predefinito. |
Nome |
Immettere subnet-1. |
Indirizzo iniziale |
Lasciare l'impostazione predefinita 10.0.0.0. |
Dimensioni della subnet |
Lasciare l'impostazione predefinita /24(256 indirizzi). |
Seleziona Salva.
Selezionare Rivedi e crea nella parte inferiore della schermata. Al termine della convalida selezionare Crea.
Creare prima di tutto un gruppo di risorse con New-AzResourceGroup per tutte le risorse create in questo articolo. L'esempio seguente crea un gruppo di risorse nell’area westus2:
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Creare una rete virtuale con New-AzVirtualNetwork. L'esempio seguente crea una rete virtuale denominata vnet-1:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Creare una configurazione di una subnet con New-AzVirtualNetworkSubnetConfig e quindi scrivere la configurazione della subnet nella rete virtuale con Set-AzVirtualNetwork. L'esempio seguente aggiunge una subnet denominata subnet-1 alla rete virtuale e vi associa il gruppo di sicurezza di rete nsg-1:
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Creare innanzitutto un gruppo di risorse con az group create per tutte le risorse create in questo articolo. L'esempio seguente crea un gruppo di risorse nell’area westus2:
az group create \
--name test-rg \
--location westus2
Creare una rete virtuale con az network vnet create. L'esempio seguente crea una rete virtuale denominata vnet-1:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Aggiungere una subnet a una rete virtuale con il comando az network vnet subnet create. L'esempio seguente aggiunge una subnet denominata subnet-1 alla rete virtuale e vi associa il gruppo di sicurezza di rete nsg-1:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
In questa sezione si associa il gruppo di sicurezza di rete alla subnet della rete virtuale creata in precedenza.
Selezionare Regole di sicurezza in ingresso nella sezione Impostazioni di nsg-1.
Nella pagina Regole di sicurezza in ingresso selezionare + Aggiungi.
Creare una regola di sicurezza che consenta le porte 80 e 443 per il gruppo di sicurezza delle applicazioni asg-web. Nella pagina Aggiungi regola di sicurezza in ingresso immettere o selezionare le informazioni seguenti:
Impostazione |
Valore |
Origine |
Lasciare l'impostazione predefinita Qualsiasi. |
Intervalli porte di origine |
Lasciare l'impostazione predefinita di (*). |
Destinazione |
Selezionare gruppo di sicurezza dell'applicazione. |
Gruppi di sicurezza delle applicazioni di destinazione |
Selezionare asg-web. |
Service |
Lasciare l'impostazione predefinita Personalizzato. |
Intervalli porte di destinazione |
Immetti 80,443. |
Protocollo |
Selezionare TCP. |
Azione |
Lasciare l'impostazione predefinita Consenti. |
Priorità |
Lasciare l'impostazione predefinita 100. |
Nome |
Immettere allow-web-all. |
Selezionare Aggiungi.
Completare i passaggi precedenti con le informazioni seguenti:
Impostazione |
Valore |
Origine |
Lasciare l'impostazione predefinita Qualsiasi. |
Intervalli porte di origine |
Lasciare l'impostazione predefinita di (*). |
Destinazione |
Selezionare gruppo di sicurezza dell'applicazione. |
Gruppo di sicurezza delle applicazioni di destinazione |
Selezionare asg-mgmt. |
Service |
Selezionare RDP. |
Azione |
Lasciare l'impostazione predefinita Consenti. |
Priorità |
Lasciare l'impostazione predefinita 110. |
Nome |
Immettere allow-rdp-all. |
Selezionare Aggiungi.
Attenzione
In questo articolo RDP (porta 3389) è esposto a Internet per la macchina virtuale assegnata al gruppo di sicurezza dell'applicazione asg-mgmt.
Per gli ambienti di produzione, anziché esporre la porta 3389 a Internet, è consigliabile connettersi alle risorse di Azure da gestire utilizzando una VPN, una connessione di rete privata o Azure Bastion.
Per altre informazioni su Azure Bastion, vedere Informazioni su Azure Bastion.
Creare una regola di sicurezza con New-AzNetworkSecurityRuleConfig. L'esempio seguente crea una regola che consente il traffico in ingresso proveniente da Internet al gruppo di sicurezza delle applicazioni asg-web sulle porte 80 e 443:
$webAsgParams = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$webAsg = Get-AzApplicationSecurityGroup @webAsgParams
$webRuleParams = @{
Name = "Allow-Web-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $webAsg.id
DestinationPortRange = 80,443
}
$webRule = New-AzNetworkSecurityRuleConfig @webRuleParams
L'esempio seguente crea una regola che consente il traffico in ingresso proveniente da Internet al gruppo di sicurezza delle applicazioni asg-mgmt sulla porta 3389:
$mgmtAsgParams = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtAsg = Get-AzApplicationSecurityGroup @mgmtAsgParams
$mgmtRuleParams = @{
Name = "Allow-RDP-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $mgmtAsg.id
DestinationPortRange = 3389
}
$mgmtRule = New-AzNetworkSecurityRuleConfig @mgmtRuleParams
Usare Get-AzNetworkSecurityGroup per recuperare il gruppo di sicurezza di rete esistente e quindi aggiungere le nuove regole con l'operatore +=
. Aggiornare infine il gruppo di sicurezza di rete con Set-AzNetworkSecurityGroup:
# Retrieve the existing network security group
$nsg = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
# Add the new rules to the security group
$nsg.SecurityRules += $webRule
$nsg.SecurityRules += $mgmtRule
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
Attenzione
In questo articolo RDP (porta 3389) è esposto a Internet per la macchina virtuale assegnata al gruppo di sicurezza dell'applicazione asg-mgmt.
Per gli ambienti di produzione, anziché esporre la porta 3389 a Internet, è consigliabile connettersi alle risorse di Azure da gestire utilizzando una VPN, una connessione di rete privata o Azure Bastion.
Per altre informazioni su Azure Bastion, vedere Informazioni su Azure Bastion.
Creare una regola di sicurezza con il comando az network nsg rule create. L'esempio seguente crea una regola che consente il traffico in ingresso proveniente da Internet al gruppo di sicurezza delle applicazioni asg-web sulle porte 80 e 443:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-Web-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-web" \
--destination-port-range 80 443
L'esempio seguente crea una regola che consente il traffico in ingresso proveniente da Internet al gruppo di sicurezza delle applicazioni asg-mgmt sulla porta 22:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-SSH-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 110 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-mgmt" \
--destination-port-range 22
Attenzione
In questo articolo SSH (porta 22) è esposto a Internet per la macchina virtuale assegnata al gruppo di sicurezza dell'applicazione asg-mgmt.
Per gli ambienti di produzione, anziché esporre la porta 22 a Internet, è consigliabile connettersi alle risorse di Azure da gestire tramite una connessione di rete VPN, privata o Azure Bastion.
Per altre informazioni su Azure Bastion, vedere Informazioni su Azure Bastion.
Creare due macchine virtuali (VM) nella rete virtuale.
Nel portale, cercare e selezionare Macchine virtuali.
In Macchine virtuali, selezionare + Crea, quindi Macchina virtuale di Azure.
In Crea macchina virtuale immettere o selezionare queste informazioni nella scheda Informazioni di base:
Impostazione |
Valore |
Dettagli di progetto |
|
Subscription |
Selezionare la propria sottoscrizione. |
Gruppo di risorse |
Selezionare test-rg. |
Dettagli istanza |
|
Virtual machine name |
Immettere vm-web. |
Paese |
Selezionare (Stati Uniti) Stati Uniti orientali 2. |
Opzioni di disponibilità |
Lasciare l'impostazione predefinita Nessuna ridondanza dell'infrastruttura necessaria. |
Tipo di sicurezza |
Selezionare Standard. |
Image |
Selezionare Windows Server 2022 Datacenter - x64 Gen2. |
Istanza Spot di Azure |
Lascia deselezionata l'impostazione predefinita. |
Dimensione |
Selezionare una dimensione. |
Account amministratore |
|
Username |
Immettere un nome utente. |
Password |
Immettere una password. |
Conferma password |
Reimmettere la password. |
Regole porta in ingresso |
|
Selezionare le porte in ingresso |
Selezionare Nessuno. |
Selezionare Avanti: Dischi e quindi Avanti: Rete.
Nella scheda Rete immettere o selezionare le informazioni seguenti:
Impostazione |
Valore |
Interfaccia di rete |
|
Rete virtuale |
Selezionare vnet-1. |
Subnet |
Selezionare subnet-1 (10.0.0.0/24). |
IP pubblico |
Lascia l'impostazione predefinita di un nuovo indirizzo IP pubblico. |
Gruppo di sicurezza di rete della scheda di interfaccia di rete |
Selezionare Nessuno. |
Selezionare la scheda Rivedi e crea o selezionare il pulsante blu Rivedi e crea nella parte inferiore della pagina.
Seleziona Crea. La distribuzione della macchina virtuale potrebbe richiedere alcuni minuti.
Ripetere i passaggi precedenti per creare una seconda macchina virtuale denominata vm-mgmt.
Prima di creare le macchine virtuali, recuperare l'oggetto rete virtuale con la subnet con Get-AzVirtualNetwork:
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Creare un indirizzo IP pubblico per ogni VM con New-AzPublicIpAddress:
$publicIpWebParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-web"
}
$publicIpWeb = New-AzPublicIpAddress @publicIpWebParams
$publicIpMgmtParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-mgmt"
}
$publicIpMgmt = New-AzPublicIpAddress @publicIpMgmtParams
Creare due interfacce di rete con New-AzNetworkInterface e assegnare un indirizzo IP pubblico all'interfaccia di rete. Nell'esempio seguente viene creata un'interfaccia di rete, a cui viene associato l'indirizzo IP pubblico public-ip-vm-web.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
Nell'esempio seguente viene creata un'interfaccia di rete, a cui viene associato l'indirizzo IP pubblico public-ip-vm-mgmt.
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Creare due VM nella rete virtuale per convalidare il filtro del traffico in un passaggio successivo.
Creare una configurazione di VM con New-AzVMConfig, quindi creare la macchina virtuale con New-AzVM. L'esempio seguente crea una macchina virtuale (VM) che funge da server Web. L'opzione -AsJob
crea la macchina virtuale in background, quindi è possibile continuare con il passaggio successivo:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-web"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-web"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$webVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $webNic.Id
$webVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $webVmConfig
}
New-AzVM @webVmParams -AsJob
Creare una VM che funge da server di gestione:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-mgmt"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-mgmt"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$mgmtVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $mgmtNic.Id
$mgmtVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $mgmtVmConfig
}
New-AzVM @mgmtVmParams
La creazione della macchina virtuale richiede alcuni minuti. Prima di continuare con i passaggi successivi, attendere che Azure finisca di creare la VM.
Creare due VM nella rete virtuale per convalidare il filtro del traffico in un passaggio successivo.
Creare una VM con il comando az vm create. L'esempio seguente crea una macchina virtuale (VM) che funge da server Web. L'opzione --nsg ""
è specificata per impedire ad Azure di creare un gruppo di sicurezza di rete predefinito per l'interfaccia di rete creata da Azure al momento della creazione della VM. Il comando richiede di creare una password per la macchina virtuale. Le chiavi SSH non vengono usate in questo esempio per facilitare i passaggi successivi descritti in questo articolo. In un ambiente di produzione usare le chiavi SSH per la sicurezza.
az vm create \
--resource-group test-rg \
--name vm-web \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--authentication-type password \
--assign-identity
La creazione della VM richiede alcuni minuti. Dopo la creazione della VM, viene restituito un output simile all'esempio seguente:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-web",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
Creare una VM con il comando az vm create. L'esempio seguente crea una macchina virtuale che funge da server di gestione.
Nell'esempio seguente viene creata una macchina virtuale e aggiunto un account utente. Il parametro --generate-ssh-keys
fa sì che l'interfaccia della riga di comando cerchi una chiave SSH disponibile in ~/.ssh
. Se ne viene trovata una, viene usata la chiave. In caso contrario, ne viene generato e archiviato uno in ~/.ssh
. Infine, distribuiamo l'immagine Ubuntu 22.04
più recente.
az vm create \
--resource-group test-rg \
--name vm-mgmt \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys \
--assign-identity
La creazione della VM richiede alcuni minuti. Prima di continuare con i passaggi successivi, attendere che Azure finisca di creare la VM.
Quando hai creato le macchine virtuali, Azure ha creato un'interfaccia di rete per ogni macchina virtuale e l'ha collegata alla macchina stessa.
Aggiungi l'interfaccia di rete per ogni VM a uno dei gruppi di sicurezza delle applicazioni creati in precedenza:
Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca e quindi vm-web.
Selezionare gruppi di sicurezza delle applicazioni nella sezione rete di vm-web.
Selezionare Aggiungi gruppi di sicurezza delle applicazioni, quindi nella scheda Aggiungi gruppi di sicurezza delle applicazioni selezionare asg-web. Infine, selezionare Aggiungi.
Ripetere i passaggi precedenti per vm-mgmt, selezionando asg-mgmt nella scheda Aggiungi gruppi di sicurezza delle applicazioni.
Usare Get-AzNetworkInterface per recuperare l'interfaccia di rete della macchina virtuale e quindi usare Get-AzApplicationSecurityGroup per recuperare il gruppo di sicurezza dell'applicazione. Usare infine Set-AzNetworkInterface per associare il gruppo di sicurezza delle applicazioni all'interfaccia di rete. L'esempio seguente associa il gruppo di sicurezza dell'applicazione asg-web all'interfaccia di rete vm-web-nic:
$params1 = @{
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Ripetere il comando per associare il gruppo di sicurezza dell'applicazione asg-mgmt all'interfaccia di rete vm-mgmt-nic.
$params1 = @{
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Usare az network nic update per associare l'interfaccia di rete al gruppo di sicurezza dell'applicazione. L'esempio seguente associa il gruppo di sicurezza dell'applicazione asg-web all'interfaccia di rete vm-web-nic:
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-web --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-web \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-web
Ripetere il comando per associare il gruppo di sicurezza dell'applicazione asg-mgmt all'interfaccia di rete vm-mgmt-nic.
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-mgmt --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-mgmt \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-mgmt
Nella casella di ricerca, nella parte superiore del portale, immettere Macchina virtuale. Selezionare Macchine virtuali nei risultati della ricerca.
Selezionare vm-mgmt.
Nella pagina Panoramica selezionare il pulsante Connetti e quindi selezionare RDP nativo.
Selezionare Scarica file RDP.
Aprire il file con estensione rdp scaricato e selezionare Connetti. Immettere il nome utente e la password specificati al momento della creazione della macchina virtuale.
Seleziona OK.
Durante il processo di connessione potrebbe essere visualizzato un avviso relativo al certificato. Se viene visualizzato l'avviso, selezionare Sì o Continua per continuare con la connessione.
La connessione ha esito positivo perché il traffico in ingresso da Internet al gruppo di sicurezza delle applicazioni asg-mgmt è consentito attraverso la porta 3389.
L'interfaccia di rete per vm-mgmt è associata al gruppo di sicurezza dell'applicazione asg-mgmt e consente la connessione.
Aprire una sessione di PowerShell in vm-mgmt. Connettersi a vm-web usando quanto segue:
mstsc /v:vm-web
La connessione RDP da vm-mgmt a vm-web ha esito positivo perché le macchine virtuali nella stessa rete possono comunicare tra loro su qualsiasi porta per impostazione predefinita.
Non è possibile creare una connessione RDP alla macchina virtuale vm-web da Internet. La regola di sicurezza per asg-web impedisce le connessioni alla porta 3389 in ingresso da Internet. Il traffico in ingresso da Internet viene negato a tutte le risorse per impostazione predefinita.
Per installare Microsoft IIS nella macchina virtuale vm-web, immettere il comando seguente da una sessione di PowerShell nella macchina virtuale vm-web:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Al termine dell'installazione di IIS, disconnettersi dalla macchina virtuale vm-web, che lascia la connessione desktop remoto alla macchina virtuale vm-mgmt.
Disconnettersi dalla macchina virtuale vm-mgmt.
Cercare vm-web nella casella di ricerca del portale.
Nella pagina Panoramica di vm-webprendere nota dell'indirizzo IP pubblico per la macchina virtuale. L'indirizzo illustrato nell'esempio seguente è 203.0.113.103. L'indirizzo è diverso:
Per verificare che sia possibile accedere al server Web vm-web da Internet, aprire un browser Internet nel computer e passare a http://<public-ip-address-from-previous-step>
.
Viene visualizzata la pagina predefinita di IIS, perché il traffico in ingresso da Internet al gruppo di sicurezza delle applicazioni asg-web è consentito tramite la porta 80.
L'interfaccia di rete collegata per vm-web è associata al gruppo di sicurezza delle applicazioni asg-web e consente la connessione.
Usare Get-AzPublicIpAddress per restituire l'indirizzo IP pubblico di una macchina virtuale. L'esempio seguente restituisce l'indirizzo IP pubblico della macchina virtuale vm-mgmt:
$params = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$publicIP = Get-AzPublicIpAddress @params | Select IpAddress
Usare il comando seguente per creare una sessione di Desktop remoto con la macchina virtuale vm-mgmt dal computer locale.
mstsc /v:$publicIP
Immettere il nome utente e la password specificati durante la creazione della macchina virtuale (potrebbe essere necessario selezionare Altre opzioni, quindi Usa un account diverso per specificare le credenziali immesse quando è stata creata la macchina virtuale), quindi scegliere OK. Durante il processo di accesso potrebbe essere visualizzato un avviso relativo al certificato. Selezionare Sì per procedere con la connessione.
La connessione viene stabilita. La porta 3389 è consentita in ingresso da Internet al gruppo di sicurezza dell'applicazione asg-mgmt. L'interfaccia di rete collegata alla macchina virtuale vm-mgmt si trova in questo gruppo.
Usare il comando seguente per creare una connessione Desktop remoto alla VM vm-web, dalla VM vm-mgmt, con il comando seguente, da PowerShell:
mstsc /v:vm-web
La connessione ha esito positivo perché una regola di sicurezza predefinita in ciascun gruppo di sicurezza di rete consente il traffico su tutte le porte tra tutti gli indirizzi IP all'interno di una rete virtuale. Non è possibile creare una connessione Desktop remoto alla VM vm-web da Internet perché la regola di sicurezza per il gruppo asg-web non consente il traffico in ingresso da Internet sulla porta 3389.
Usare il comando seguente per installare Microsoft IIS nella VM vm-web da PowerShell:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Al termine dell'installazione di IIS, disconnettersi dalla VM vm-web, rimanendo nella connessione Desktop remoto della VM vm-mgmt. Per visualizzare la schermata iniziale di IIS, aprire un browser Internet e passare a http://vm-web.
Disconnettersi dalla macchina virtuale vm-mgmt.
Nel computer immettere il comando seguente da PowerShell per recuperare l'indirizzo IP pubblico del server vm-web:
$params = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
Get-AzPublicIpAddress @params | Select IpAddress
Per verificare che sia possibile accedere al server Web vm-web dall'esterno di Azure, aprire un browser Internet nel computer e passare a http://<public-ip-address-from-previous-step>
. La connessione viene stabilita. La porta 80 è consentita in ingresso da Internet al gruppo di sicurezza delle applicazioni asg-web. L'interfaccia di rete collegata alla macchina virtuale vm-web si trova in questo gruppo.
Usando un client SSH scelto personalmente, connettersi alle macchine virtuali create in precedenza. Ad esempio, il comando seguente può essere usato da un'interfaccia della riga di comando, ad esempio Sottosistema Windows per Linux, per creare una sessione SSH con la macchina virtuale vm-mgmt. È possibile accedere alle macchine virtuali usando le credenziali Microsoft Entra ID oppure è possibile utilizzare la chiave SSH usata per creare le macchine virtuali. Nell'esempio seguente viene usata la chiave SSH per accedere alla macchina virtuale di gestione, e quindi accedere alla macchina virtuale Web dalla macchina virtuale di gestione con una password.
Per altre informazioni su come connettersi tramite SSH a una macchina virtuale Linux e accedere con Microsoft Entra ID, vedere Accedere a una macchina virtuale Linux in Azure usando Microsoft Entra ID e OpenSSH.
Archiviare l'indirizzo IP della macchina virtuale per SSH
Eseguire il comando seguente per archiviare l'indirizzo IP della macchina virtuale come variabile di ambiente:
export IP_ADDRESS=$(az vm show --show-details --resource-group test-rg --name vm-mgmt --query publicIps --output tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
La connessione ha esito positivo perché l'interfaccia di rete collegata alla macchina virtuale vm-mgmt si trova nel gruppo di sicurezza dell'applicazione asg-mgmt, così che sulla porta 22 è consentito il traffico in ingresso proveniente da Internet.
Usare il comando seguente per connettersi tramite SSH alla macchina virtuale vm-web dalla macchina virtuale vm-mgmt:
ssh -o StrictHostKeyChecking=no azureuser@vm-web
La connessione ha esito positivo perché una regola di sicurezza predefinita in ciascun gruppo di sicurezza di rete consente il traffico su tutte le porte tra tutti gli indirizzi IP all'interno di una rete virtuale. Non è possibile stabilire una connessione SSH alla VM vm-web da Internet poiché la regola di sicurezza per asg-web non consente il traffico in ingresso da Internet sulla porta 22.
Usare i comandi seguenti per installare il server Web nginx nella VM vm-web:
# Update package source
sudo apt-get -y update
# Install NGINX
sudo apt-get -y install nginx
Nella VM vm-web è consentito il traffico in uscita a Internet per recuperare nginx, poiché una regola di sicurezza predefinita consente tutto il traffico in uscita a Internet. Chiudere la sessione SSH di vm-web, rimanendo nel prompt username@vm-mgmt:~$
della VM vm-mgmt. Per recuperare la schermata iniziale di nginx dalla VM vm-web, digitare il comando seguente:
curl vm-web
Disconnettersi dalla macchina virtuale vm-mgmt. Per verificare di poter accedere al server Web vm-web dall'esterno di Azure, digitare curl <publicIpAddress>
dal proprio computer. La connessione ha esito positivo perché l'interfaccia di rete collegata alla macchina virtuale vm-web si trova nel gruppo di sicurezza dell'applicazione asg-mgmt, così che sulla porta 80 è consentito il traffico in ingresso proveniente da Internet.
Per impostazione predefinita, Azure instrada il traffico tra subnet. In alternativa, si potrebbe ad esempio scegliere di instradare il traffico tra subnet tramite una VM che funge da firewall.
Per informazioni su come creare una tabella di route, passare all'esercitazione successiva.