Exercício - Configurar o acesso à rede

Concluído

Neste exercício, você configura o acesso à máquina virtual (VM) criada anteriormente neste módulo.

Importante

A área restrita do Microsoft Learn ainda deve estar em execução. Se a área restrita atingir o 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, você precisa completar o primeiro exercício neste módulo novamente. Se o resultado listar sua VM atual e suas configurações, você poderá continuar.

No momento, a VM que você criou e instalou o Nginx não está acessível a partir da Internet. Você cria um grupo de segurança de rede que altera isso permitindo acesso HTTP de entrada na porta 80.

Tarefa 1: Aceder ao seu servidor Web

Neste procedimento, obtém o endereço IP para a sua VM e tenta aceder à home page do seu servidor Web.

  1. Execute o seguinte comando az vm list-ip-addresses para obter o endereço IP da sua VM e armazenar o resultado como uma variável de 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 curl para transferir a home page:

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

    O argumento --connect-timeout especifica para permitir até cinco segundos para que a ligação ocorra. Após cinco segundos, verá uma mensagem de erro que indica que o tempo limite da ligaçã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 passo opcional, experimente aceder ao servidor Web a partir de um browser:

    1. Execute o seguinte para imprimir o endereço IP da sua VM para a consola:

      echo $IPADDRESS       
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      

      Verá um endereço IP, por exemplo, 23.102.42.235.

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

    3. Abra um novo separador do browser e aceda ao servidor Web. Após alguns instantes, verá que a ligação não está a ser estabelecida. Se você esperar que o navegador atinja o tempo limite, verá algo assim:

      Captura de tela de um navegador da Web mostrando uma mensagem de erro informando que a conexão expirou.

    4. Mantenha este separador do browser aberto para mais tarde.

Tarefa 2: Listar as regras atuais do grupo de segurança de rede

O servidor Web não estava acessível. Para descobrir porquê, vamos analisar as suas regras atuais de NSG.

  1. Execute o seguinte 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ê vê esta saída:

    my-vmNSG
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    Cada VM no Azure está associada a, pelo menos, um grupo de segurança de rede. Neste caso, o Azure criou um NSG denominado My-vmNSG.

  2. Execute o seguinte comando az network nsg rule list para indicar as regras associadas ao NSG denominado my-vmNSG:

    az network nsg rule list \
      --resource-group "<rgn>[sandbox resource group name]</rgn>" \
      --nsg-name my-vmNSG    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    Verá um grande bloco de texto em formato JSON na saída. No passo seguinte, verá um comando semelhante que facilita a leitura desta saída.

  3. Execute o comando az network nsg rule list uma segunda vez. Desta vez, utilize o argumento --query para obter apenas o nome, a prioridade, as portas afetadas e o acesso (Permitir ou Recusar) de cada regra. O argumento --output formata a saída como uma tabela para que seja fácil de ler.

    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ê esta saída:

    Name              Priority    Port    Access
    -----------------  ----------  ------  --------
    default-allow-ssh  1000        22      Allow
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    Verá a regra predefinida, default-allow-ssh. Esta regra permite ligações de entrada através da porta 22 (SSH). O SSH (Secure Shell) é um protocolo utilizado no Linux para permitir que os administradores acedam remotamente ao sistema. A prioridade desta regra é de 1000. As regras são processadas por ordem de prioridade e os números mais baixos são processados antes dos números mais altos.

Por predefinição, um NSG de VM do Linux só permite o acesso à rede na porta 22. Essa porta permite que os administradores acessem o sistema. Também tem de permitir ligações de entrada na porta 80, que permite o acesso por HTTP.

Tarefa 3: Criar a regra de segurança de rede

Aqui, poderá criar 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 denominada 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 efeitos de aprendizagem, aqui pode definir a prioridade como 100. Neste caso, a prioridade não é importante. Teria de considerar a prioridade, se tivesse intervalos de portas sobrepostos.

  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ê a regra default-allow-ssh e sua nova regra, allow-http:

    Name              Priority    Port    Access
    -----------------  ----------  ------  --------
    default-allow-ssh  1000        22      Allow
    allow-http          100        80      Allow    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

Tarefa 4: Aceder novamente ao seu servidor Web

Agora que você configurou o acesso à rede para a porta 80, vamos tentar acessar o servidor Web uma segunda vez.

Nota

Depois de atualizar o NSG, pode levar alguns momentos até que as regras atualizadas se propaguem. Tente novamente a próxima etapa, com pausas entre as tentativas, até obter os resultados desejados.

  1. Execute o mesmo comando curl que executou antes:

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

    Você vê esta resposta:

    <html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  2. Como passo opcional, atualize o separador do browser que aponta para o seu servidor Web. Você vê a página inicial:

    Uma captura de tela de um navegador da Web mostrando a página inicial do servidor da Web. A página inicial exibe uma mensagem de boas-vindas.

Bom trabalho. Na prática, pode criar um grupo de segurança de rede autónomo que inclua as regras de acesso à rede de entrada e saída necessárias. Se tiver múltiplas VMs com a mesma finalidade, pode atribuir esse NSG a cada VM quando o criar. Esta técnica permite-lhe controlar o acesso à rede em múltiplas VMs sob um conjunto único e central de regras.

Limpeza

O sandbox limpará automaticamente os seus recursos quando concluir este módulo.

Ao trabalhar na sua própria subscrição, recomendamos que verifique, depois de concluir um projeto, se ainda vai precisar dos recursos que criou. Os recursos que você deixa funcionando podem custar dinheiro. Pode eliminar recursos individualmente ou eliminar o grupo de recursos para eliminar todo o conjunto de recursos.