Exercício – Configurar o acesso à rede

Concluído

Neste exercício, você vai configurar 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ê vai criar um grupo de segurança de rede que altera isso permitindo o 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.

  1. 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)"    
    
  2. 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.

  3. Como uma etapa opcional, tente acessar o servidor Web em um navegador:

    1. 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.

    2. Copie o endereço IP que você vê para a área de transferência.

    3. 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:

      Screenshot of a web browser showing an error message that says the connection timed out.

    4. 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.

  1. 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á isto:

    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.

  2. 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.

  3. 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á isto:

    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. Isso 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).

  1. 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.

  2. 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.

  1. Execute o mesmo comando curl executado anteriormente:

    curl --connect-timeout 5 http://$IPADDRESS
    

    Você verá isto:

    <html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>
    
  2. Como uma etapa opcional, atualize a guia do navegador que aponta para o servidor Web. Você verá isto:

    A screenshot of a web browser showing the home page from the web server. The home page displays a welcome message.

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.