Exercício – encaminhar o tráfego através de uma NVA
Agora que você criou o dispositivo virtual de rede (NVA) e as máquinas virtuais (VMs), você roteará o tráfego através do NVA.
Criar máquinas virtuais públicas e privadas
As próximas etapas implantam uma VM nas sub-redes públicas e privadas.
Abra o editor do Cloud Shell e crie um ficheiro com o nome cloud-init.txt.
code cloud-init.txt
Adicione as informações de configuração seguintes ao ficheiro. Com essa configuração, o
inetutils-traceroute
pacote é instalado quando você cria uma nova VM. Este pacote contém o utilitáriotraceroute
que utilizará posteriormente neste exercício.#cloud-config package_upgrade: true packages: - inetutils-traceroute
Prima Ctrl+S para guardar o ficheiro e, em seguida, prima Ctrl+Q para fechar o editor.
No Cloud Shell, execute o seguinte comando para criar a VM pública . Substitua
<password>
por uma palavra-passe adequada para a conta azureuser.az vm create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name public \ --vnet-name vnet \ --subnet publicsubnet \ --image Ubuntu2204 \ --admin-username azureuser \ --no-wait \ --custom-data cloud-init.txt \ --admin-password <password>
Execute o seguinte comando para criar a VM privada . Substitua
<password>
por uma palavra-passe adequada.az vm create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name private \ --vnet-name vnet \ --subnet privatesubnet \ --image Ubuntu2204 \ --admin-username azureuser \ --no-wait \ --custom-data cloud-init.txt \ --admin-password <password>
Execute o seguinte comando Linux
watch
para verificar se as VMs estão em execução. Owatch
comando executa periodicamente oaz vm list
comando para que você possa monitorar o progresso das VMs.watch -d -n 5 "az vm list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --show-details \ --query '[*].{Name:name, ProvisioningState:provisioningState, PowerState:powerState}' \ --output table"
Um valor ProvisioningState a mostrar "Com êxito" e um valor PowerState a mostrar "VM em execução" indica uma implementação com êxito. Quando as três VMs estiverem em execução, estará pronto para avançar. Pressione Ctrl-C para parar o comando e continuar com o exercício.
Execute o seguinte comando para salvar o endereço IP público da VM pública em uma variável chamada
PUBLICIP
:PUBLICIP="$(az vm list-ip-addresses \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name public \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" echo $PUBLICIP
Execute o seguinte comando para salvar o endereço IP público da VM privada em uma variável chamada
PRIVATEIP
:PRIVATEIP="$(az vm list-ip-addresses \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name private \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" echo $PRIVATEIP
Testar o encaminhamento de tráfego através da aplicação virtual de rede
Os passos finais consistem em utilizar o utilitário traceroute
do Linux para mostrar a forma como o tráfego é encaminhado. Você usará o ssh
comando para executar traceroute
em cada VM. O primeiro teste mostra a rota tomada pelos pacotes ICMP enviados da VM pública para a VM privada . O segundo teste mostra a rota tomada pelos pacotes ICMP enviados da VM privada para a VM pública .
Execute o seguinte comando para rastrear a rota de público para privado. Quando lhe for pedido, introduza a palavra-passe da conta azureuser que especificou anteriormente.
ssh -t -o StrictHostKeyChecking=no azureuser@$PUBLICIP 'traceroute private --type=icmp; exit'
Se for apresentada a mensagem de erro
bash: traceroute: command not found
, aguarde um pouco e execute novamente o comando. A instalação automatizada do pode levar um ou dois minutos após a implantação datraceroute
VM. Depois de o comando ser executado com êxito, o resultado deverá ter um aspeto semelhante ao exemplo seguinte:traceroute to private.kzffavtrkpeulburui2lgywxwg.gx.internal.cloudapp.net (10.0.1.4), 64 hops max 1 10.0.2.4 0.710ms 0.410ms 0.536ms 2 10.0.1.4 0.966ms 0.981ms 1.268ms Connection to 52.165.151.216 closed.
Repare que o primeiro salto é para 10.0.2.4. Este endereço é o endereço IP privado de nva. O segundo salto é para 10.0.1.4, o endereço de privado. No primeiro exercício, adicionou esta rota à tabela de rotas e associou a tabela à sub-rede publicsubnet. Assim, agora todo o tráfego do público para o privado é encaminhado através do NVA.
Execute o seguinte comando para rastrear a rota de privado para público. Quando lhe for pedido, introduza a palavra-passe da conta azureuser.
ssh -t -o StrictHostKeyChecking=no azureuser@$PRIVATEIP 'traceroute public --type=icmp; exit'
Deverá ver o tráfego a ir diretamente para público (10.0.0.4) e não através da NVA, conforme mostrado no resultado do comando seguinte.
traceroute to public.kzffavtrkpeulburui2lgywxwg.gx.internal.cloudapp.net (10.0.0.4), 64 hops max 1 10.0.0.4 1.095ms 1.610ms 0.812ms Connection to 52.173.21.188 closed.
A VM privada está usando rotas padrão e o tráfego é roteado diretamente entre as sub-redes.
Acabou de configurar o encaminhamento entre sub-redes para direcionar o tráfego da Internet pública através da sub-rede dmzsubnet antes de alcançar a sub-rede privada. Na sub-rede dmzsubnet, você adicionou uma VM que atua como um NVA. Pode configurar esta NVA para detetar pedidos potencialmente maliciosos e bloqueá-los antes que alcancem os destinos pretendidos.