Firewall Rules & Cloud NAT
Google Cloud Networking (PCA track) GCP console — free tier (GUI + CLI)
مقصدObjectiveObjective
اس سبق کے بعد آپ VPC فائر وال رولز بنا اور جانچ سکیں گے، اور ان VMs کو انٹرنیٹ تک محفوظ رسائی دینے کے لیے Cloud NAT کنفیگر کر سکیں گے جن کا کوئی پبلک IP نہیں۔Is lesson ke baad aap VPC firewall rules bana aur jaanch sakenge, aur un VMs ko internet tak mehfooz rasai dene ke liye Cloud NAT configure kar sakenge jin ka koi public IP nahi.After this lesson you will be able to create and test VPC firewall rules, and configure Cloud NAT to give internet access to VMs that have no public IP.
آسان مثالSimple AnalogySimple Analogy
فائر وال رولز ایک سوسائٹی کے گیٹ کی طرح ہیں — کون اندر آ سکتا ہے اور کون باہر جا سکتا ہے، یہ فہرست طے کرتی ہے۔ Cloud NAT ایک مشترکہ فون بوتھ کی طرح ہے: اندرونی کمرے والے (پرائیویٹ VMs) باہر کال کر سکتے ہیں مگر باہر سے کوئی براہ راست اندر نہیں آ سکتا۔Firewall rules ek society ke gate ki tarah hain — kaun andar aa sakta hai aur kaun bahar ja sakta hai, yeh fehrist tay karti hai. Cloud NAT ek mushtaraka phone booth ki tarah hai: andar wale kamre wale (private VMs) bahar call kar sakte hain magar bahar se koi barah-e-raast andar nahi aa sakta.Firewall rules are like a housing society's gate — the list decides who may enter and who may leave. Cloud NAT is like a shared phone booth: people in inner rooms (private VMs) can call out, but no one outside can call them back directly.
سیٹ اپLab SetupLab Setup
پچھلے سبق کا lab-vpc اور subnet-a استعمال کریں۔ ایک ٹیسٹ VM پرائیویٹ IP کے ساتھ بنائیں (کوئی external IP نہ دیں)۔ Cloud Shell تیار رکھیں۔Pichle lesson ka lab-vpc aur subnet-a use karein. Ek test VM private IP ke saath banayein (koi external IP na dein). Cloud Shell tayyar rakhein.Use lab-vpc and subnet-a from the previous lesson. Create a test VM with a private IP only (no external IP). Keep Cloud Shell ready.
اقداماتStepsSteps
Step 1
SSH کی اجازت دینے والا ingress رول بنائیں۔ Priority کم نمبر = زیادہ اہمیت۔ نوٹ: ہر VPC میں پہلے سے implied رولز ہوتے ہیں — egress allow اور ingress deny۔SSH ki ijazat dene wala ingress rule banayein. Priority kam number = zyada ahmiyat. Note: har VPC mein pehle se implied rules hote hain — egress allow aur ingress deny.Create an ingress rule allowing SSH. Lower priority number = higher importance. Note: every VPC has implied rules — egress allow and ingress deny.
gcloud compute firewall-rules create allow-ssh-lab --network=lab-vpc --allow=tcp:22 --source-ranges=0.0.0.0/0 --direction=INGRESS --priority=1000 --description="lab ssh access"
🖱️ VPC network > Firewall > Create firewall rule — نیٹ ورک lab-vpc، Direction: Ingress، پورٹس tcp:22VPC network > Firewall > Create firewall rule — network lab-vpc, Direction: Ingress, ports tcp:22VPC network > Firewall > Create firewall rule — network lab-vpc, Direction: Ingress, ports tcp:22
Step 2
اب egress رول کی مشق کریں: پرائیویٹ VM سے انٹرنیٹ پر صرف HTTPS کی اجازت دیں اور باقی سب بند کریں۔ Deny رول کی priority، allow رول سے کم (یعنی نمبر چھوٹا) رکھیں۔Ab egress rule ki mashq karein: private VM se internet par sirf HTTPS ki ijazat dein aur baqi sab band karein. Deny rule ki priority, allow rule se kam (yaani number chhota) rakhein.Now practice an egress rule: allow only HTTPS from the private VM to the internet and block the rest. Give the deny rule a lower priority number than the allow rule.
gcloud compute firewall-rules create deny-all-egress-lab --network=lab-vpc --action=DENY --rules=all --destination-ranges=0.0.0.0/0 --direction=EGRESS --priority=900
🖱️ VPC network > Firewall > Create firewall rule — Direction: Egress، Action: Deny، Destination: 0.0.0.0/0VPC network > Firewall > Create firewall rule — Direction: Egress, Action: Deny, Destination: 0.0.0.0/0VPC network > Firewall > Create firewall rule — Direction: Egress, Action: Deny, Destination: 0.0.0.0/0
Step 3
Cloud Router بنائیں اور اس پر NAT کنفیگر کریں۔ --nat-all-subnet-ip-ranges کا مطلب ہے اس ریجن کی تمام سب نیٹس کو NAT ملے گا۔Cloud Router banayein aur us par NAT configure karein. --nat-all-subnet-ip-ranges ka matlab hai is region ki tamam subnets ko NAT milega.Create a Cloud Router and configure NAT on it. --nat-all-subnet-ip-ranges means all subnets of this region get NAT.
gcloud compute routers create nat-router --network=lab-vpc --region=asia-south1 gcloud compute routers nats create nat-config --router=nat-router --region=asia-south1 --nat-all-subnet-ip-ranges --enable-logging
🖱️ Network services > Cloud NAT > Get started — VPC network lab-vpc، ریجن asia-south1، Cloud Router بنائیںNetwork services > Cloud NAT > Get started — VPC network lab-vpc, region asia-south1, Cloud Router banayeinNetwork services > Cloud NAT > Get started — VPC network lab-vpc, region asia-south1, create Cloud Router
Step 4
ٹیسٹ کریں: پرائیویٹ VM میں SSH کریں (IAP ٹنل کے ذریعے) اور curl سے کوئی ویب سائٹ کھولیں۔ اگر جواب آیا تو NAT کام کر رہا ہے — VM کا اپنا کوئی پبلک IP نہیں تھا۔Test karein: private VM mein SSH karein (IAP tunnel ke zariye) aur curl se koi website kholein. Agar jawab aaya to NAT kaam kar raha hai — VM ka apna koi public IP nahi tha.Test: SSH into the private VM (via IAP tunnel) and open a website with curl. If you get a response, NAT works — the VM had no public IP of its own.
gcloud compute ssh test-vm --zone=asia-south1-a --tunnel-through-iap curl -I https://www.google.com
🖱️ Compute Engine > VM instances > test-vm > SSH (browser window)، پھر ٹرمینل میں curl چلائیںCompute Engine > VM instances > test-vm > SSH (browser window), phir terminal mein curl chalayeinCompute Engine > VM instances > test-vm > SSH (browser window), then run curl in the terminal
Step 5
خلاصہ: فائر وال رولز ٹریفک کی اجازت طے کرتے ہیں (VPC لیول، priority بنیاد پر) اور Cloud NAT پرائیویٹ VMs کو محفوظ آؤٹ باؤنڈ انٹرنیٹ دیتا ہے۔ دونوں مل کر GCP میں بنیادی سیکیورٹی بناتے ہیں۔Khulasa: firewall rules traffic ki ijazat tay karte hain (VPC level, priority bunyaad par) aur Cloud NAT private VMs ko mehfooz outbound internet deta hai. Dono mil kar GCP mein bunyadi security banate hain.Summary: firewall rules decide traffic permission (VPC level, priority-based) and Cloud NAT gives private VMs secure outbound internet. Together they form basic security in GCP.
تصدیقVerifyVerify
رولز کی فہرست اور NAT کی حالت چیک کریں۔ پرائیویٹ VM سے curl کا کامیاب جواب حتمی تصدیق ہے۔Rules ki fehrist aur NAT ki halat check karein. Private VM se curl ka kamiyab jawab hatmi tasdeeq hai.Check the rule list and NAT status. A successful curl response from the private VM is the final confirmation.
gcloud compute firewall-rules list --filter="network:lab-vpc" gcloud compute routers get-status nat-router --region=asia-south1
خرابی دور کرناTroubleshootingTroubleshooting
⚠️ SSH رول بنانے کے باوجود VM میں لاگ اِن نہیں ہو رہا۔SSH rule banane ke bawajood VM mein log in nahi ho raha.Cannot log in to the VM even though an SSH rule was created.
✅ رول کا target ٹیگ اور VM کا نیٹ ورک ٹیگ ملائیں — اگر رول کسی ٹیگ پر ہے تو VM پر وہی ٹیگ ہونا ضروری ہے۔ ساتھ source range بھی چیک کریں۔Rule ka target tag aur VM ka network tag milayein — agar rule kisi tag par hai to VM par wohi tag hona zaroori hai. Saath source range bhi check karein.Match the rule's target tag with the VM's network tag — if the rule targets a tag, the VM must carry it. Also check the source range.
⚠️ NAT لگانے کے بعد بھی پرائیویٹ VM سے انٹرنیٹ نہیں کھل رہا۔NAT lagane ke baad bhi private VM se internet nahi khul raha.Internet still does not open from the private VM after adding NAT.
✅ تصدیق کریں کہ Cloud Router اور NAT اسی ریجن میں ہیں جس میں VM کی سب نیٹ ہے۔ Cloud NAT ریجنل ہے — دوسرے ریجن کی سب نیٹ کو فائدہ نہیں ہوگا۔Tasdeeq karein ke Cloud Router aur NAT usi region mein hain jis mein VM ki subnet hai. Cloud NAT regional hai — doosre region ki subnet ko faida nahi hoga.Confirm the Cloud Router and NAT are in the same region as the VM's subnet. Cloud NAT is regional — it will not help a subnet in another region.
⚠️ Egress deny رول کے بعد VM سے Google APIs بھی بند ہو گئیں۔Egress deny rule ke baad VM se Google APIs bhi band ho gayin.Google APIs also stopped working from the VM after the egress deny rule.
✅ Deny رول سے پہلے (زیادہ priority پر) Google APIs کے لیے allow egress رول بنائیں، یا Private Google Access آن کریں تاکہ ٹریفک Google کے نجی نیٹ ورک پر رہے۔Deny rule se pehle (zyada priority par) Google APIs ke liye allow egress rule banayein, ya Private Google Access on karein taake traffic Google ke private network par rahe.Create an allow egress rule for Google APIs at a better (lower-number) priority than the deny rule, or enable Private Google Access so traffic stays on Google's private network.
انٹرویو سوالاتInterview Q&AInterview Q&A
❓ GCP فائر وال رولز میں priority کیسے کام کرتی ہے؟GCP firewall rules mein priority kaise kaam karti hai?How does priority work in GCP firewall rules?
سب سے چھوٹا priority نمبر پہلے لگتا ہے۔ اگر کوئی رول میچ کر جائے تو باقی رولز نہیں دیکھے جاتے۔ Implied رولز (ingress deny، egress allow) کی priority سب سے کم ہوتی ہے۔Sab se chhota priority number pehle lagta hai. Agar koi rule match kar jaye to baqi rules nahi dekhe jate. Implied rules (ingress deny, egress allow) ki priority sab se kam hoti hai.The smallest priority number applies first. If a rule matches, the rest are not evaluated. Implied rules (ingress deny, egress allow) have the lowest priority.
❓ Cloud NAT کب استعمال کریں گے؟Cloud NAT kab use karenge?When would you use Cloud NAT?
جب VMs کو پبلک IP دیے بغیر انٹرنیٹ سے اپ ڈیٹس یا APIs تک پہنچنا ہو — مثلاً patching یا تیسرے فریق کی سروسز۔ یہ صرف آؤٹ باؤنڈ ہے، ان باؤنڈ کنکشن نہیں لا سکتا۔Jab VMs ko public IP diye baghair internet se updates ya APIs tak pahunchna ho — masalan patching ya teesre fareeq ki services. Yeh sirf outbound hai, inbound connection nahi la sakta.When VMs need to reach the internet for updates or APIs without a public IP — e.g. patching or third-party services. It is outbound-only; it cannot bring inbound connections.