Você pode usar um grupo de segurança de rede para filtrar o tráfego de rede de entrada e saída de e para recursos do Azure em uma rede virtual do Azure.
Os grupos de segurança de rede contêm regras de segurança que filtram o tráfego de rede por endereço IP, porta e protocolo. Quando um grupo de segurança de rede é associado a uma sub-rede, as regras de segurança são aplicadas aos recursos implantados nessa sub-rede.
Azure Cloud Shell
O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção |
Exemplo/Ligação |
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. |
|
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. |
|
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. |
|
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou comando.
Se você optar por instalar e usar o PowerShell localmente, este artigo exigirá o módulo do Azure PowerShell versão 1.0.0 ou posterior. Execute Get-Module -ListAvailable Az
para localizar a versão instalada. Se precisar de atualizar, veja Install Azure PowerShell module (Instalar o módulo do Azure PowerShell). Se você estiver executando o PowerShell localmente, também precisará executar Connect-AzAccount
para criar uma conexão com o Azure.
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Este artigo requer a versão 2.0.28 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.
O procedimento a seguir cria uma rede virtual com uma sub-rede de recurso.
No portal, pesquise e selecione Redes virtuais.
Na página Redes virtuais, selecione + Criar.
Na guia Noções básicas de Criar rede virtual, insira ou selecione as seguintes informações:
Definição |
Value |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione Criar novo. Digite test-rg em Nome. Selecione OK. |
Detalhes da instância |
|
Nome |
Digite vnet-1. |
País/Região |
Selecione E.U.A. Leste 2. |
Selecione Avançar para prosseguir para a guia Segurança .
Selecione Avançar para prosseguir para a guia Endereços IP.
Na caixa de espaço de endereço em Sub-redes, selecione a sub-rede padrão .
No painel Editar sub-rede , insira ou selecione as seguintes informações:
Definição |
Value |
Detalhes da sub-rede |
|
Modelo de sub-rede |
Deixe o padrão como Padrão. |
Nome |
Digite subnet-1. |
Endereço inicial |
Deixe o padrão de 10.0.0.0. |
Tamanho da sub-rede |
Deixe o padrão de /24(256 endereços). |
Selecione Guardar.
Selecione Rever + criar na parte inferior do ecrã. Depois que a validação for aprovada, selecione Criar.
Primeiro, crie um grupo de recursos para todos os recursos criados neste artigo com New-AzResourceGroup. O exemplo a seguir cria um grupo de recursos no local westus2 :
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Crie uma rede virtual com New-AzVirtualNetwork. O exemplo a seguir cria um virtual chamado vnet-1:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Crie uma configuração de sub-rede com New-AzVirtualNetworkSubnetConfig e, em seguida, escreva a configuração de sub-rede na rede virtual com Set-AzVirtualNetwork. O exemplo a seguir adiciona uma sub-rede chamada subnet-1 à rede virtual e associa o grupo de segurança de rede nsg-1 a ela:
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Primeiro, crie um grupo de recursos para todos os recursos criados neste artigo com az group create. O exemplo a seguir cria um grupo de recursos no local westus2 :
az group create \
--name test-rg \
--location westus2
Crie uma rede virtual com az network vnet create. O exemplo a seguir cria um virtual chamado vnet-1:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Adicione uma sub-rede a uma rede virtual com az network vnet subnet create. O exemplo a seguir adiciona uma sub-rede chamada subnet-1 à rede virtual e associa o grupo de segurança de rede nsg-1 a ela:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
Nesta seção, você associa o grupo de segurança de rede à sub-rede da rede virtual criada anteriormente.
Selecione Regras de segurança de entrada na seção Configurações do nsg-1.
Na página Regras de segurança de entrada, selecione + Adicionar.
Crie uma regra de segurança que permita as portas 80 e 443 para o grupo de segurança do aplicativo asg-web . Na página Adicionar regra de segurança de entrada, insira ou selecione as seguintes informações:
Definição |
Value |
Source |
Deixe o padrão de Any. |
Intervalo de portas de origem |
Deixe o padrão de (*). |
Destino |
Selecione Grupo de segurança do aplicativo. |
Grupos de segurança de aplicativos de destino |
Selecione asg-web. |
Serviço |
Deixe o padrão de Personalizado. |
Intervalos de portas de destino |
Digite 80.443. |
Protocolo |
Selecione TCP. |
Ação |
Deixe o padrão de Permitir. |
Prioridade |
Deixe o padrão de 100. |
Nome |
Digite allow-web-all. |
Selecione Adicionar.
Conclua as etapas anteriores com as seguintes informações:
Definição |
Value |
Source |
Deixe o padrão de Any. |
Intervalo de portas de origem |
Deixe o padrão de (*). |
Destino |
Selecione Grupo de segurança do aplicativo. |
Grupo de segurança do aplicativo de destino |
Selecione asg-mgmt. |
Serviço |
Selecione RDP. |
Ação |
Deixe o padrão de Permitir. |
Prioridade |
Deixe o padrão de 110. |
Nome |
Digite allow-rdp-all. |
Selecione Adicionar.
Atenção
Neste artigo, o RDP (porta 3389) é exposto à Internet para a VM atribuída ao grupo de segurança do aplicativo asg-mgmt .
Para ambientes de produção, em vez de expor a porta 3389 à Internet, é recomendável que você se conecte aos recursos do Azure que deseja gerenciar usando uma VPN, conexão de rede privada ou Azure Bastion.
Para obter mais informações sobre o Azure Bastion, consulte O que é o Azure Bastion?.
Crie uma regra de segurança com New-AzNetworkSecurityRuleConfig. O exemplo a seguir cria uma regra que permite a entrada de tráfego da Internet para o grupo de segurança do aplicativo asg-web nas portas 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
O exemplo a seguir cria uma regra que permite a entrada de tráfego da Internet para o grupo de segurança do aplicativo asg-mgmt pela 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
Use Get-AzNetworkSecurityGroup para recuperar o grupo de segurança de rede existente e, em seguida, adicione as novas regras com o +=
operador. Finalmente, atualize o grupo de segurança de rede com 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
Atenção
Neste artigo, o RDP (porta 3389) é exposto à Internet para a VM atribuída ao grupo de segurança do aplicativo asg-mgmt .
Para ambientes de produção, em vez de expor a porta 3389 à Internet, é recomendável que você se conecte aos recursos do Azure que deseja gerenciar usando uma VPN, conexão de rede privada ou Azure Bastion.
Para obter mais informações sobre o Azure Bastion, consulte O que é o Azure Bastion?.
Crie uma regra de segurança com az network nsg rule create. O exemplo a seguir cria uma regra que permite a entrada de tráfego da Internet para o grupo de segurança do aplicativo asg-web nas portas 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
O exemplo a seguir cria uma regra que permite a entrada de tráfego da Internet para o grupo de segurança do aplicativo asg-mgmt pela 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
Atenção
Neste artigo, o SSH (porta 22) é exposto à Internet para a VM atribuída ao grupo de segurança do aplicativo asg-mgmt .
Para ambientes de produção, em vez de expor a porta 22 à Internet, é recomendável que você se conecte aos recursos do Azure que deseja gerenciar usando uma VPN, conexão de rede privada ou Azure Bastion.
Para obter mais informações sobre o Azure Bastion, consulte O que é o Azure Bastion?.
Crie duas máquinas virtuais (VMs) na rede virtual.
No portal, procure e selecione Máquinas virtuais.
Em Máquinas virtuais, selecione + Criar e, em seguida , Máquina virtual do Azure.
Em Criar uma máquina virtual, insira ou selecione essas informações na guia Noções básicas :
Definição |
Value |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione test-rg. |
Detalhes da instância |
|
Virtual machine name |
Digite vm-web. |
País/Região |
Selecione (EUA) Leste dos EUA 2. |
Opções de disponibilidade |
Deixe o padrão de Nenhuma redundância de infraestrutura necessária. |
Tipo de segurança |
selecione Standard. |
Image |
Selecione Windows Server 2022 Datacenter - x64 Gen2. |
Instância do Azure Spot |
Deixe o padrão de desmarcado. |
Tamanho |
Selecione um tamanho. |
Conta de administrador |
|
Username |
Introduza um nome de utilizador. |
Palavra-passe |
Introduza uma palavra-passe. |
Confirme a palavra-passe |
Reintroduza a palavra-passe. |
Regras de porta de entrada |
|
Selecione as portas de entrada |
Selecione Nenhuma. |
Selecione Next: Disks (Seguinte): Discos e, em seguida , Next: Networking.
Na guia Rede, insira ou selecione as seguintes informações:
Definição |
Value |
Interface de Rede |
|
Rede virtual |
Selecione vnet-1. |
Sub-rede |
Selecione sub-rede-1 (10.0.0.0/24). |
IP público |
Deixe o padrão de um novo IP público. |
Grupo de segurança de rede NIC |
Selecione Nenhuma. |
Selecione o separador Rever + criar ou selecione o botão azul Rever + criar na parte inferior da página.
Selecione Criar. A VM pode levar alguns minutos para ser implantada.
Repita as etapas anteriores para criar uma segunda máquina virtual chamada vm-mgmt.
Antes de criar as VMs, recupere o objeto de rede virtual com a sub-rede com Get-AzVirtualNetwork:
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Crie um endereço IP público para cada VM com 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
Crie duas interfaces de rede com New-AzNetworkInterface e atribua um endereço IP público à interface de rede. O exemplo a seguir cria uma interface de rede, associa o endereço IP público public-ip-vm-web a ele.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
O exemplo a seguir cria uma interface de rede, associa o endereço IP público public-ip-vm-mgmt a ele.
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Crie duas VMs na rede virtual, para que possa confirmar a filtragem de tráfego num passo posterior.
Crie uma configuração de VM com New-AzVMConfig e, em seguida, crie a VM com New-AzVM. O exemplo a seguir cria uma VM que serve como um servidor Web. A opção -AsJob
cria a VM em segundo plano, para que possa prosseguir para o passo seguinte:
# 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
Crie uma VM que vai funcionar como servidor de gestão:
# 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
A criação da máquina virtual demora alguns minutos. Não continue para o passo seguinte enquanto o Azure não concluir a criação da VM.
Crie duas VMs na rede virtual, para que possa confirmar a filtragem de tráfego num passo posterior.
Crie uma VM com az vm create. O exemplo a seguir cria uma VM que serve como um servidor Web. A --nsg ""
opção é especificada para impedir que o Azure crie um grupo de segurança de rede padrão para a interface de rede que o Azure cria quando cria a VM. O comando solicita que você crie uma senha para a VM. As chaves SSH não são usadas neste exemplo para facilitar as etapas posteriores neste artigo. Em um ambiente de produção, use chaves SSH para segurança.
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
A criação da VM demora alguns minutos. Depois que a VM é criada, a saída semelhante ao exemplo a seguir é retornada:
{
"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"
}
Crie uma VM com az vm create. O exemplo a seguir cria uma VM que serve como um servidor de gerenciamento.
O exemplo a seguir cria uma VM e adiciona uma conta de usuário. O --generate-ssh-keys
parâmetro faz com que a CLI procure uma chave ssh disponível no ~/.ssh
. Se uma for encontrada, essa chave é usada. Se não, um é gerado e armazenado em ~/.ssh
. Finalmente, implantamos a imagem mais recente Ubuntu 22.04
.
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
A criação da VM demora alguns minutos. Não continue para o passo seguinte enquanto o Azure não concluir a criação da VM.
Quando você criou as VMs, o Azure criou uma interface de rede para cada VM e a anexou à VM.
Adicione a interface de rede de cada VM a um dos grupos de segurança de aplicativos criados anteriormente:
Na caixa de pesquisa na parte superior do portal, digite Máquina virtual. Selecione Máquinas virtuais nos resultados da pesquisa e, em seguida, selecione vm-web.
Selecione Grupos de segurança de aplicativos na seção Rede do vm-web.
Selecione Adicionar grupos de segurança de aplicativos e, em seguida, na guia Adicionar grupos de segurança de aplicativos, selecione asg-web. Por fim, selecione Adicionar.
Repita as etapas anteriores para vm-mgmt, selecionando asg-mgmt na guia Adicionar grupos de segurança de aplicativos.
Use Get-AzNetworkInterface para recuperar a interface de rede da máquina virtual e, em seguida, use Get-AzApplicationSecurityGroup para recuperar o grupo de segurança do aplicativo. Finalmente, use Set-AzNetworkInterface para associar o grupo de segurança do aplicativo à interface de rede. O exemplo a seguir associa o grupo de segurança do aplicativo asg-web à interface de rede 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
Repita o comando para associar o security group do aplicativo asg-mgmt à interface de rede 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
Use az network nic update para associar a interface de rede ao grupo de segurança do aplicativo. O exemplo a seguir associa o grupo de segurança do aplicativo asg-web à interface de rede 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
Repita o comando para associar o security group do aplicativo asg-mgmt à interface de rede 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
Na caixa de pesquisa na parte superior do portal, digite Máquina virtual. Selecione Máquinas virtuais nos resultados da pesquisa.
Selecione vm-mgmt.
Na página Visão geral, selecione o botão Conectar e, em seguida, selecione RDP nativo.
Selecione Transferir ficheiro RDP.
Abra o ficheiro rdp transferido e selecione Ligar. Digite o nome de usuário e a senha que você especificou ao criar a VM.
Selecione OK.
Você pode receber um aviso de certificado durante o processo de conexão. Se receber o aviso, selecione Sim ou Continuar para continuar com a ligação.
A conexão é bem-sucedida, porque o tráfego de entrada da Internet para o grupo de segurança do aplicativo asg-mgmt é permitido através da porta 3389.
A interface de rede para vm-mgmt está associada ao grupo de segurança do aplicativo asg-mgmt e permite a conexão.
Abra uma sessão do PowerShell no vm-mgmt. Conecte-se ao vm-web usando o seguinte:
mstsc /v:vm-web
A conexão RDP de vm-mgmt para vm-web é bem-sucedida porque as máquinas virtuais na mesma rede podem se comunicar entre si por qualquer porta por padrão.
Não é possível criar uma conexão RDP com a máquina virtual vm-web a partir da Internet. A regra de segurança para o asg-web impede conexões com a porta 3389 de entrada da Internet. O tráfego de entrada da Internet é negado a todos os recursos por padrão.
Para instalar o Microsoft IIS na máquina virtual vm-web , digite o seguinte comando de uma sessão do PowerShell na máquina virtual vm-web :
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Após a conclusão da instalação do IIS, desconecte-se da máquina virtual vm-web , que deixa você na conexão de área de trabalho remota da máquina virtual vm-mgmt .
Desconecte-se da VM vm-mgmt .
Procure vm-web na caixa de pesquisa do portal.
Na página Visão geral do vm-web, observe o endereço IP público da sua VM. O endereço mostrado no exemplo a seguir é 203.0.113.103. A sua morada é diferente:
Para confirmar que pode aceder ao servidor Web vm-web a partir da Internet, abra um navegador de Internet no seu computador e navegue até http://<public-ip-address-from-previous-step>
.
Você vê a página padrão do IIS, porque o tráfego de entrada da Internet para o grupo de segurança do aplicativo asg-web é permitido através da porta 80.
A interface de rede anexada para vm-web está associada ao grupo de segurança do aplicativo asg-web e permite a conexão.
Use Get-AzPublicIpAddress para retornar o endereço IP público de uma VM. O exemplo a seguir retorna o endereço IP público da VM vm-mgmt :
$params = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$publicIP = Get-AzPublicIpAddress @params | Select IpAddress
Use o comando a seguir para criar uma sessão de área de trabalho remota com a VM vm-mgmt do seu computador local.
mstsc /v:$publicIP
Introduza o nome de utilizador e a palavra-passe que especificou ao criar a VM (poderá ter de selecionar Mais opções e, em seguida, Utilizar uma conta diferente, para especificar as credenciais que introduziu quando criou a VM) e, em seguida, selecione OK. Poderá receber um aviso de certificado durante o processo de início de sessão. Selecione Sim para continuar a ligação.
A conexão é bem-sucedida. A porta 3389 é permitida a entrada da Internet para o grupo de segurança do aplicativo asg-mgmt . A interface de rede conectada à VM vm-mgmt está neste grupo.
Use o seguinte comando para criar uma conexão de área de trabalho remota com a VM vm-web , a partir da VM vm-mgmt , com o seguinte comando, do PowerShell:
mstsc /v:vm-web
A ligação é bem-sucedida, porque uma regra de segurança predefinida em cada grupo de segurança de rede permite o tráfego em todas as portas entre todos os endereços IP dentro de uma rede virtual. Não é possível criar uma conexão de área de trabalho remota com a VM vm-web a partir da Internet porque a regra de segurança para asg-web não permite a entrada da porta 3389 da Internet.
Use o seguinte comando para instalar o Microsoft IIS na VM vm-web a partir do PowerShell:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Após a conclusão da instalação do IIS, desconecte-se da VM vm-web, que deixa você na conexão de área de trabalho remota vm-mgmt VM. Para exibir a tela de boas-vindas do IIS, abra um navegador da Internet e navegue até http://vm-web.
Desconecte-se da VM vm-mgmt .
No seu computador, digite o seguinte comando do PowerShell para recuperar o endereço IP público do servidor vm-web :
$params = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
Get-AzPublicIpAddress @params | Select IpAddress
Para confirmar que pode aceder ao servidor Web vm-web a partir de fora do Azure, abra um browser da Internet no seu computador e navegue até http://<public-ip-address-from-previous-step>
. A conexão é bem-sucedida. A porta 80 é permitida a entrada da Internet para o grupo de segurança do aplicativo asg-web . A interface de rede anexada à VM vm-web está neste grupo.
Usando um cliente SSH de sua escolha, conecte-se às VMs criadas anteriormente. Por exemplo, o comando a seguir pode ser usado a partir de uma interface de linha de comando, como o Subsistema Windows para Linux , para criar uma sessão SSH com a VM vm-mgmt . Você pode entrar nas máquinas virtuais usando suas credenciais de ID do Microsoft Entra ou pode usar a chave SSH usada para criar as VMs. No exemplo a seguir, usamos a chave SSH para entrar na VM de gerenciamento e, em seguida, entrar na VM da Web a partir da VM de gerenciamento com uma senha.
Para obter mais informações sobre como SSH para uma VM Linux e entrar com o Microsoft Entra ID, consulte Entrar em uma máquina virtual Linux no Azure usando o Microsoft Entra ID e OpenSSH.
Armazene o endereço IP da VM para SSH
Execute o seguinte comando para armazenar o endereço IP da VM como uma variável de 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
A conexão é bem-sucedida porque a interface de rede conectada à VM vm-mgmt está no grupo de segurança do aplicativo asg-mgmt, que permite a entrada da porta 22 da Internet.
Use o seguinte comando para SSH para a VM vm-web da VM vm-mgmt:
ssh -o StrictHostKeyChecking=no azureuser@vm-web
A ligação é bem-sucedida, porque uma regra de segurança predefinida em cada grupo de segurança de rede permite o tráfego em todas as portas entre todos os endereços IP dentro de uma rede virtual. Não é possível SSH para a VM vm-web da Internet porque a regra de segurança para asg-web não permite a entrada da porta 22 da Internet.
Use os seguintes comandos para instalar o servidor web nginx na VM vm-web :
# Update package source
sudo apt-get -y update
# Install NGINX
sudo apt-get -y install nginx
A vm-web VM tem permissão de saída para a Internet para recuperar nginx porque uma regra de segurança padrão permite todo o tráfego de saída para a Internet. Saia da sessão vm-web SSH, que o deixa no username@vm-mgmt:~$
prompt da VM vm-mgmt . Para recuperar a tela de boas-vindas nginx da VM vm-web , digite o seguinte comando:
curl vm-web
Saia da VM vm-mgmt . Para confirmar que pode aceder ao servidor Web vm-web a partir de fora do Azure, entre a curl <publicIpAddress>
partir do seu próprio computador. A conexão é bem-sucedida porque o grupo de segurança do aplicativo asg-web , no qual a interface de rede conectada à VM vm-web está, permite a entrada da porta 80 da Internet.
O Azure encaminha o tráfego entre sub-redes por predefinição. Em vez disso, você pode optar por rotear o tráfego entre sub-redes por meio de uma VM, servindo como um firewall, por exemplo.
Para saber como criar uma tabela de rotas, avance para o tutorial seguinte.