Exercício – Configurar o acesso à rede
Neste exercício, você configura o acesso à VM (máquina virtual) criada anteriormente neste módulo.
Importante
A área restrita do Microsoft Learn ainda deve estar em execução. Se a área restrita tiver tempo limite, você precisará refazer o exercício anterior (Exercício – Criar uma máquina virtual do Azure).
Para verificar se a VM criada anteriormente ainda está em execução, use o seguinte comando:
az vm list
Se você receber uma resposta []
vazia, precisará concluir o primeiro exercício desse módulo novamente. Se o resultado listar sua VM atual e suas configurações, você poderá continuar.
No momento, a VM na qual você criou e instalou o Nginx não está acessível pela Internet. Você cria um grupo de segurança de rede que altera isso permitindo acesso HTTP de entrada na porta 80.
Tarefa 1: acessar seu servidor Web
Neste procedimento, você obtém o endereço IP da VM e tenta acessar a home page do servidor Web.
Execute o seguinte comando
az vm list-ip-addresses
para obter o endereço IP da VM e armazenar o resultado como uma variável Bash:IPADDRESS="$(az vm list-ip-addresses \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name my-vm \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)"
Execute o seguinte comando de
curl
para baixar a home page:curl --connect-timeout 5 http://$IPADDRESS
O argumento
--connect-timeout
especifica para permitir até cinco segundos para que a conexão ocorra. Após cinco segundos, você verá uma mensagem de erro afirmando que o tempo limite da conexão foi atingido:curl: (28) Connection timed out after 5001 milliseconds
Essa mensagem significa que a VM não estava acessível dentro do período de tempo limite.
Como uma etapa opcional, tente acessar o servidor Web em um navegador:
Execute o seguinte para imprimir o endereço IP da VM no console:
echo $IPADDRESS
Você verá um endereço IP, por exemplo, 23.102.42.235.
Copie o endereço IP que você vê para a área de transferência.
Abra uma nova guia do navegador e navegue até o servidor Web. Após alguns instantes, você verá que a conexão não está acontecendo. Se você aguardar o tempo limite do navegador, verá algo assim:
Deixe esta guia do navegador aberta para uso posterior.
Tarefa 2: listar as regras de grupo de segurança de rede atuais
O servidor Web não estava acessível. Para descobrir o motivo, vamos examinar suas regras de NSG atuais.
Execute o este comando
az network nsg list
para listar os grupos de segurança de rede que estão associados à sua VM:az network nsg list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --query '[].name' \ --output tsv
Você verá esta saída:
my-vmNSG
Cada VM no Azure é associada a pelo menos um grupo de segurança de rede. Neste caso, o Azure criou um NSG para você chamado my-vmNSG.
Execute o seguinte comando
az network nsg rule list
para listar as regras associadas ao NSG chamado my-vmNSG:az network nsg rule list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --nsg-name my-vmNSG
Você verá um bloco grande de texto no formato JSON na saída. Na próxima etapa, você executará um comando semelhante que facilita a leitura dessa saída.
Execute o comando
az network nsg rule list
uma segunda vez. Dessa vez, use o argumento--query
para recuperar apenas o nome, a prioridade, as portas afetadas e o acesso (Permitir ou Negar) de cada regra. O argumento--output
formata a saída como uma tabela para facilitar a leitura.az network nsg rule list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --nsg-name my-vmNSG \ --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \ --output table
Você verá esta saída:
Name Priority Port Access ----------------- ---------- ------ -------- default-allow-ssh 1000 22 Allow
Você vê a regra padrão, default-allow-ssh. Essa regra permite conexões de entrada na porta 22 (SSH). O SSH (Secure Shell) é um protocolo usado no Linux para permitir que os administradores acessem o sistema remotamente. A prioridade dessa regra é 1.000. As regras são processadas em ordem de prioridade, sendo os números menores processados antes dos números maiores.
Por padrão, o NSG de uma VM Linux permite o acesso à rede somente na porta 22. Essa porta permite que os administradores acessem o sistema. Você também precisa permitir conexões de entrada na porta 80, que permite acesso via HTTP.
Tarefa 3: criar a regra de segurança de rede
Aqui, você cria uma regra de segurança de rede que permite o acesso de entrada na porta 80 (HTTP).
Execute o seguinte comando
az network nsg rule create
para criar uma regra chamada allow-http que permite o acesso de entrada na porta 80:az network nsg rule create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --nsg-name my-vmNSG \ --name allow-http \ --protocol tcp \ --priority 100 \ --destination-port-range 80 \ --access Allow
Para fins de aprendizado, aqui você define a prioridade como 100. Neste caso, a prioridade não importa. Você precisaria considerar a prioridade se estivesse sobrepondo intervalos de porta.
Para verificar a configuração, execute
az network nsg rule list
para ver a lista atualizada de regras:az network nsg rule list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --nsg-name my-vmNSG \ --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \ --output table
Você vê tanto a regra default-allow-ssh quanto sua nova regra, allow-http:
Name Priority Port Access ----------------- ---------- ------ -------- default-allow-ssh 1000 22 Allow allow-http 100 80 Allow
Tarefa 4: acessar seu servidor Web novamente
Agora que você configurou o acesso à rede para a porta 80, vamos tentar acessar o servidor Web uma segunda vez.
Observação
Depois de atualizar o NSG, poderá levar alguns instantes até que as regras atualizadas se propaguem. Tente novamente a próxima etapa, com pausas entre tentativas, até obter os resultados desejados.
Execute o mesmo comando
curl
executado anteriormente:curl --connect-timeout 5 http://$IPADDRESS
Você verá esta resposta:
<html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>
Como uma etapa opcional, atualize a guia do navegador que aponta para o servidor Web. Você verá a home page:
Parabéns. Na prática, você pode criar um grupo de segurança de rede autônomo que inclui as regras de acesso de rede de entrada e saída necessárias. Se você tiver várias VMs com a mesma finalidade, poderá atribuir essa NSG a cada VM no momento em que criá-la. Essa técnica permite controlar o acesso à rede para várias VMs sob um único conjunto central de regras.
Limpar
A área restrita limpará automaticamente seus recursos quando você concluir este módulo.
Quando já estiver trabalhando na sua assinatura, analise se você ainda precisa dos recursos criados no fim de um projeto. Os recursos que você deixa em execução podem lhe custar dinheiro. Você pode excluir os recursos individualmente ou excluir o grupo de recursos para excluir todo o conjunto de recursos.