Exercício - Configurar o acesso à rede
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.
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)"
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.
Como passo opcional, experimente aceder ao servidor Web a partir de um browser:
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.
Copie o endereço IP que vê para a área de transferência.
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:
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.
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.
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.
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).
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.
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.
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>
Como passo opcional, atualize o separador do browser que aponta para o seu servidor Web. Você vê a página inicial:
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.