Linux on Azure: VMs, NSGs, and managed disks
What administering an Azure Linux VM adds on top of everything already covered. · 9 min
An Azure Linux VM is administered over SSH exactly as covered in Level 9 — the difference is entirely in what surrounds it. A Network Security Group (NSG) is Azure's cloud-level firewall, filtering traffic to the VM's network interface before it ever reaches the VM's own operating system — this means both the NSG and the VM's own OS-level firewall (ufw/firewalld, from Level 10) must allow a given port for traffic to actually get through; blocking at either layer alone is enough to deny access, which is exactly why "I opened the port in ufw but still can't connect" is frequently an NSG problem, not an OS problem, on Azure.
A managed disk is Azure's abstraction over the actual physical storage backing a VM's virtual disks — from inside the VM, a managed disk still appears as an ordinary block device (`/dev/sda`, etc.) that Level 8's partitioning, filesystem, and LVM concepts apply to completely unchanged; Azure's "managed" layer handles the underlying redundancy and physical placement, invisible to the guest OS.
VM extensions are Azure-specific agents that can run inside the VM to perform provider-integrated tasks — installing monitoring agents, running custom setup scripts at first boot, or integrating with Azure's own backup service — genuinely useful, but distinct from anything in core Linux administration; they're a cloud-provider convenience layered on top of a VM that remains, underneath, an ordinary Linux system administered the same way as any other.
- • NSG (Network Security Group) — cloud-level firewall, filters traffic before it reaches the VM's own OS firewall
- • Managed disk — appears as a normal block device inside the VM; Level 8's LVM concepts apply unchanged
- • VM extensions — provider-specific agents for monitoring, setup scripts, backup integration
- • SSH, systemd, package management, and OS-level firewall work exactly as on any other Linux server
Common Mistakes
- ⚠ Opening a port only in the VM's OS-level firewall (ufw/firewalld) and assuming that's sufficient — the NSG must independently allow the same traffic
- ⚠ Treating cloud-provider monitoring/backup dashboards as a substitute for understanding the actual Linux system underneath — they're a convenience layer, not a replacement for OS-level administration knowledge
Takeaway: On Azure, both the NSG (cloud-level) and the VM's own OS-level firewall must independently allow a given port — a connection is only as open as the more restrictive of the two layers.