কম্পিউটার টিউটোরিয়াল

Azure-এ VM-র নেটওয়ার্ক সিকিউরিটি গ্রুপ (NSG) অ্যাটাচ/অসাইন করার পদ্ধতি

Azure Network Security Group (NSG) VM-এ অ্যাটাচ করার সম্পূর্ণ গাইড

Azure-এ **Network Security Group (NSG)** হলো একটি Layer 3/4 ফায়ারওয়াল যা Azure রিসোর্স (VM, Subnet, NIC) ইনবাউন্ড/আউটবাউন্ড ট্রাফিক ফিল্টার করে। NSG-এ.Security Rules থাকে যা Priority, Source/Destination, Port, Protocol, Action (Allow/Deny) ডিফাইন করে।

NSG অ্যাটাচ করার দুটি লেভেল

লেভেলস্কোপব্যবহার کیস
Subnet Levelসাবনেটের সব রিসোর্স (VM, App Service Environment, AKS Node Pool)সেন্ট্রালাইজড ম্যানেজমেন্ট, কনসিস্টেন্ট পলিসি
NIC Levelনির্দিষ্ট VM-এর নেটওয়ার্ক ইন্টারফেস (NIC)VM-স্পেসিফিক রুল, এক্সসেপশন হ্যান্ডলিং

নোট: একই NSG একাধিক Subnet/NIC-এ অ্যাসোসিয়েট করা যায়। Subnet + NIC দুটোতে NSG থাকলে **Inbound: NIC NSG → Subnet NSG**, **Outbound: Subnet NSG → NIC NSG** ক্রমে প্রসেস হয়।

পদ্ধতি ১: Azure Portal দিয়ে NSG তৈরি ও VM-এ অ্যাটাচ

  1. Azure Portal → Create a resource → **Network Security Group** সার্চ → Create।
  2. Basics ট্যাব:
    • Subscription, Resource Group সিলেক্ট করুন।
    • Name: nsg-vm-web-prod (নেমিং কনভেনশন ফলো করুন)।
    • Region: VM-এর রিজনেই রাখুন।
  3. Review + Create → Create।
  4. NSG রিসোর্স খুলুন → **Settings** → **Subnets** → + Associate → Virtual Network → Subnet সিলেক্ট → OK। (Subnet Label)
  5. বা **Network Interfaces** → + Associate → VM-এর NIC সিলেক্ট → OK। (NIC Label)

পদ্ধতি ২: Azure CLI (Automation/DevOps Friendly)

# ১. NSG তৈরি
az network nsg create \
  --resource-group rg-prod-network \
  --name nsg-vm-web-prod \
  --location eastus

# ২. Inbound Rule যোগ করুন (HTTP/HTTPS/SSH/RDP উদাহরণ)
az network nsg rule create \
  --resource-group rg-prod-network \
  --nsg-name nsg-vm-web-prod \
  --name Allow-HTTP \
  --priority 100 \
  --source-address-prefixes Internet \
  --source-port-ranges '*' \
  --destination-address-prefixes '*' \
  --destination-port-ranges 80 \
  --protocol Tcp \
  --access Allow \
  --description "Allow HTTP from Internet"

az network nsg rule create \
  --resource-group rg-prod-network \
  --nsg-name nsg-vm-web-prod \
  --name Allow-HTTPS \
  --priority 110 \
  --destination-port-ranges 443 \
  --protocol Tcp --access Allow

az network nsg rule create \
  --resource-group rg-prod-network \
  --nsg-name nsg-vm-web-prod \
  --name Allow-SSH \
  --priority 120 \
  --source-address-prefixes 203.0.113.0/24 \  # Admin IP Range
  --destination-port-ranges 22 \
  --protocol Tcp --access Allow

# ৩. Subnet-এ অ্যাটাচ
az network vnet subnet update \
  --resource-group rg-prod-network \
  --vnet-name vnet-prod-eastus \
  --name subnet-web \
  --network-security-group nsg-vm-web-prod

# ৪. বা NIC-এ অ্যাটাচ
az network nic update \
  --resource-group rg-prod-network \
  --name nic-vm-web-01 \
  --network-security-group nsg-vm-web-prod

পদ্ধতি ৩: PowerShell (Az Module)

$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName "rg-prod-network" `
  -Name "nsg-vm-web-prod" `
  -Location "East US"

# Rule Add
$rule = New-AzNetworkSecurityRuleConfig `
  -Name "Allow-HTTP" `
  -Description "Allow HTTP from Internet" `
  -Access Allow `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 100 `
  -SourceAddressPrefix Internet `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80

$nsg | Add-AzNetworkSecurityRuleConfig -NetworkSecurityRule $rule
$nsg | Set-AzNetworkSecurityGroup

# Subnet Association
$vnet = Get-AzVirtualNetwork -ResourceGroupName "rg-prod-network" -Name "vnet-prod-eastus"
$subnet = $vnet.Subnets | Where-Object {$_.Name -eq "subnet-web"}
$subnet.NetworkSecurityGroup = $nsg
$vnet | Set-AzVirtualNetwork

পদ্ধতি ৪: ARM Template / Bicep / Terraform (IaC)

# Bicep Example
resource nsg 'Microsoft.Network/networkSecurityGroups@2023-05-01' = {
  name: 'nsg-vm-web-prod'
  location: resourceGroup().location
  properties: {
    securityRules: [
      {
        name: 'Allow-HTTP'
        properties: {
          protocol: 'Tcp'
          sourcePortRange: '*'
          destinationPortRange: '80'
          sourceAddressPrefix: 'Internet'
          destinationAddressPrefix: '*'
          access: 'Allow'
          priority: 100
          direction: 'Inbound'
        }
      }
    ]
  }
}

# Subnet Association (Existing Subnet Update)
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2023-05-01' existing = {
  name: 'vnet-prod-eastus/subnet-web'
}
subnet.properties.networkSecurityGroup = nsg

NSG রুল ডিজাইন বেস্ট প্র্যাকটিস

  • Priority: ১০০-৪০৯৬ (কম নম্বর = উচ্চ প্রায়োরিটি)। ডিফল্ট রুল ৬৫০০০+।
  • Default Deny: ডিফল্ট Inbound Deny All (Priority 65500) থাকে—শুধু Allow রুল যোগ করুন।
  • Least Privilege: Source IP Range ছোট রাখুন (Admin IP, Load Balancer IP, Partner CIDR)।
  • Service Tags ব্যবহার করুন: Internet, VirtualNetwork, AzureLoadBalancer, AzureCloud, Storage.Region—IP রেঞ্জ ম্যানুয়াল ম্যানেজ করতে হয় না।
  • Application Security Groups (ASG): VM ট্যাগ দিয়ে রুল লিখুন (যেমন: ASG "web-tier" → Port 80 Allow)。——
  • Logging Enable করুন: NSG Flow Logs → Log Analytics / Storage Account → Traffic Analytics।

VM সিকিউর করার জন্য NSG বাইরেও কী কী লাগবে (Defense in Depth)

  • Azure Firewall / Firewall Manager: Layer 7, Threat Intelligence, Centralized Egress Control।
  • Microsoft Defender for Cloud: Secure Score, Adaptive Network Hardening (NSG রুল রিকমেন্ডেশন), Just-in-Time VM Access।
  • Bastion: পাবলিক IP ছাড়া RDP/SSH (NSG-এ 3389/22 ব্লক থাকবে)।
  • Private Endpoint / Service Endpoint: PaaS সার্ভিস (Storage, SQL, Key Vault) প্রাইভেটলি এক্সেস।
  • Update Management / Patch Management: Azure Update Manager, Automanage।

NSG ফ্লো লগস ও ট্রাফিক অ্যানালিটিক্স ইনাবল করা

  1. NSG রিসোর্স → Monitoring → Flow logs → Create।
  2. Storage Account / Log Analytics Workspace সিলেক্ট করুন।
  3. Traffic Analytics On করুন (Geolocation, Protocol, Top Talkers, Malicious IP Detection)。——
  4. Retention: কমপক্ষে ৯০ দিন (Compliance এর জন্য)。——

সারমর্ম: NSG হলো Azure-এ VM নেটওয়ার্ক সিকিউরিটির ফান্ডামেন্টাল বিল্ডিং ব্লক। **Subnet Label-এ NSG অ্যাটাচ করুন** সেন্ট্রালাইজড ম্যানেজমেন্টের জন্য, NIC Label-এ এক্সসেপশন হ্যান্ডলিংয়ের জন্য। IaC (Bicep/Terraform) দিয়ে ডিপ্লয় করুন, Flow Logs + Traffic Analytics অন রাখুন, এবং Defender for Cloud-এর Adaptive Network Hardening রিকমেন্ডেশন ফলো করুন।

  1. Azure-এ নেটওয়ার্ক সিকিউরিটি গ্রুপ (NSG) সক্ষম করার পদ্ধতি

  2. Azure-এ নেটওয়ার্ক সিকিউরিটি গ্রুপ (NSG) মডিফাই করার পদ্ধতি: ASG, ফায়ারওয়াল এবং পোর্টাল গাইড

  3. Azure-এ নেটওয়ার্ক সিকিউরিটি গ্রুপ (NSG) পরিবর্তন করার পদ্ধতি

  4. নেটওয়ার্ক নিরাপত্তা কী এবং এটি কীভাবে কাজ করে?