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 + 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 conta do Azure, crie uma conta gratuita antes de começar.
Use o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with 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 Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a 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 |
Valor |
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 |
Valor |
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 |
Valor |
Fonte |
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 |
Valor |
Fonte |
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 |
Valor |
Detalhes do projeto |
|
Subscrição |
Selecione a sua subscrição. |
Grupo de recursos |
Selecione test-rg. |
Detalhes da instância |
|
Nome da máquina virtual |
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. |
Imagem |
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 |
|
Nome de utilizador |
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 |
Valor |
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.