Azure Tutorial: Building Virtual Machines and Managing Network Security Groups

Sushil TiwariSushil Tiwari
3 min read

This is the continue of https://hashnode.com/post/cm8v7ntxi000209kw2xpm2tp7

To help you further understand Azure networking, let’s walk through a practical example of creating Virtual Machines (VMs), Network Security Groups (NSGs), and configuring necessary resources via Azure CLI.

Step 1: Setting Up Your Azure Environment

Before starting, ensure you're logged into your Azure account:

az login

Set your desired subscription if necessary:

az account set --subscription "your-subscription-name"

Step 2: Create a Resource Group

A Resource Group is needed to organize and manage the Azure resources. Use the following command to create one:

az group create --name MyResourceGroup --location eastus

Step 3: Create a Virtual Network (VNet) and Subnet

Now, we’ll create a Virtual Network (VNet) with a subnet:

az network vnet create --resource-group MyResourceGroup --name MyVNet --address-prefix 10.0.0.0/16 --subnet-name MySubnet --subnet-prefix 10.0.0.0/24

This command creates a VNet with the address space 10.0.0.0/16 and a subnet MySubnet within it.

Step 4: Create a Network Security Group (NSG)

To ensure proper security, we'll create a Network Security Group (NSG):

az network nsg create --resource-group MyResourceGroup --name MyNSG

Step 5: Define Inbound Traffic Rules for NSG

To allow HTTP traffic (port 80) and deny all other inbound traffic, use the following commands:

Allow HTTP traffic:

az network nsg rule create --resource-group MyResourceGroup --nsg-name MyNSG --name Allow-HTTP --protocol tcp --priority 100 --destination-port-range 80 --access Allow --direction Inbound

Deny all other inbound traffic:

az network nsg rule create --resource-group MyResourceGroup --nsg-name MyNSG --name Deny-All-Inbound --protocol '*' --priority 200 --access Deny --direction Inbound

Step 6: Create a Public IP Address

Next, we need a Public IP for the VM:

az network public-ip create --resource-group MyResourceGroup --name MyPublicIP --allocation-method Dynamic

Step 7: Create a Network Interface (NIC)

We will create a Network Interface (NIC) and associate it with the Public IP and NSG:

az network nic create --resource-group MyResourceGroup --name MyNIC --vnet-name MyVNet --subnet MySubnet --network-security-group MyNSG --public-ip-address MyPublicIP

Step 8: Create the Virtual Machine (VM)

Now, let’s create a Virtual Machine and associate it with the NIC created earlier:

az vm create --resource-group MyResourceGroup --name MyVM --nics MyNIC --image UbuntuLTS --admin-username azureuser --admin-password 'YourPasswordHere' --size Standard_B1s --public-ip-address-dns-name myvm-public-ip

This command creates a VM named MyVM running Ubuntu LTS, and associates it with MyNIC. You can connect to it using SSH.

Step 9: Verify VM Setup

You can verify the Public IP assigned to your VM using the following command:

az vm show --resource-group MyResourceGroup --name MyVM --query "publicIps"

Step 10: Connect to Your VM

For Linux VMs, you can SSH into the VM using the Public IP or DNS name:

ssh azureuser@<Public-IP>

Step 11: Clean Up Resources

Once you’re done testing, you can delete all the resources to avoid unnecessary charges:

az group delete --name MyResourceGroup --yes --no-wait

This command deletes the Resource Group and all resources within it. Thank you :)

0
Subscribe to my newsletter

Read articles from Sushil Tiwari directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sushil Tiwari
Sushil Tiwari