Exercício – Configurar o acesso à rede

Concluído

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.

  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:

      Captura de tela de um navegador da Web mostrando uma mensagem de erro que diz que a conexão atingiu o tempo limite.

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

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

  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á esta resposta:

    <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á a home page:

    Uma captura de tela de um navegador da Web mostrando a home page do servidor Web. A home page exibe uma mensagem de boas-vindas.

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.