Ubuntu पर firewalld के साथ फ़ायरवॉल कॉन्फ़िगर करने के लिए एक व्यावहारिक और सटीक गाइड — इसे इंस्टॉल करना, ज़ोन के साथ काम करना, सेवाएँ और पोर्ट खोलना, रिच रूल्स लिखना, और प्रोडक्शन VPS पर परिवर्तनों को सुरक्षित रूप से लागू करना।
SKYLINE Engineering @skyline
प्रकाशित Jun 9, 2026 | पढ़ने का समय: 6 मिनट
फ़ायरवॉल किसी भी इंटरनेट-फेसिंग सर्वर के लिए रक्षा की पहली पंक्ति है। Linux पर, firewalld कर्नेल के nftables/iptables बैकएंड के ऊपर एक सरल, ज़ोन-आधारित फ्रंट एंड प्रदान करता है, जिससे आप स्थापित कनेक्शनों को छोड़े बिना रनटाइम पर नियम बदल सकते हैं। यह गाइड आपको Ubuntu 22.04 या 24.04 LTS पर firewalld इंस्टॉल और कॉन्फ़िगर करना दिखाती है, जो तब आदर्श है जब आप किसी मैनेज्ड VPS या क्लाउड सर्वर को सार्वजनिक इंटरनेट के सामने लाने से पहले हार्डन कर रहे हों।
पूर्वापेक्षाएँ
- एक Ubuntu 22.04/24.04 सर्वर जिसमें एक नॉन-रूट यूज़र हो जिसके पास
sudoविशेषाधिकार हों। - SSH एक्सेस। फ़ायरवॉल कॉन्फ़िगर करते समय अपना मौजूदा SSH सेशन खुला रखें, ताकि यदि आप खुद को लॉक आउट कर लें तो आप रिकवर कर सकें।
चरण 1 — firewalld इंस्टॉल करें और शुरू करें
Ubuntu डिफ़ॉल्ट रूप से ufw के साथ आता है, न कि firewalld के साथ। यदि ufw सक्रिय है, तो दो मैनेजरों को एक ही बैकएंड पर झगड़ने से बचाने के लिए पहले इसे डिसेबल करें:
sudo systemctl disable --now ufw
फिर firewalld इंस्टॉल और एनेबल करें:
sudo apt update
sudo apt install firewalld -y
sudo systemctl enable --now firewalld
पुष्टि करें कि यह चल रहा है:
sudo firewall-cmd --state
आपको running दिखना चाहिए।
चरण 2 — ज़ोन को समझें
firewalld नियमों को ज़ोन में समूहित करता है, जिनमें से प्रत्येक किसी नेटवर्क कनेक्शन के लिए एक ट्रस्ट स्तर का प्रतिनिधित्व करता है। आपका सक्रिय ज़ोन तय करता है कि कौन-सा ट्रैफ़िक अनुमत है। सबसे आम ज़ोन ये हैं:
| ज़ोन | सामान्य उपयोग |
|---|---|
drop |
सभी इनकमिंग ट्रैफ़िक को छोड़ देता है, कोई जवाब नहीं (सबसे प्रतिबंधात्मक) |
block |
इनकमिंग को एक ICMP संदेश के साथ अस्वीकार करता है |
public |
अविश्वसनीय नेटवर्क के लिए डिफ़ॉल्ट; केवल चुनी हुई सेवाओं को अनुमति देता है |
internal |
विश्वसनीय आंतरिक नेटवर्क |
trusted |
सभी ट्रैफ़िक को अनुमति देता है (सबसे कम प्रतिबंधात्मक) |
डिफ़ॉल्ट और सक्रिय ज़ोन जाँचें:
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones
एक नए सर्वर पर डिफ़ॉल्ट आमतौर पर public होता है, जो किसी सार्वजनिक-फेसिंग VPS के लिए सही विकल्प है। इसमें वर्तमान में अनुमत सब कुछ देखें:
sudo firewall-cmd --zone=public --list-all
चरण 3 — रनटाइम बनाम परमानेंट: मुख्य अवधारणा
प्रत्येक परिवर्तन डिफ़ॉल्ट रूप से रनटाइम कॉन्फ़िगरेशन पर लागू होता है, जो रीलोड या रीबूट पर खो जाता है। किसी परिवर्तन को बनाए रखने के लिए, --permanent जोड़ें। परमानेंट परिवर्तन तब तक प्रभावी नहीं होते जब तक आप रीलोड नहीं करते।
सुरक्षित वर्कफ़्लो यह है: रनटाइम में परीक्षण करें, फिर बनाए रखें। किसी काम करते हुए रनटाइम सेटअप को बनाए रखने का सबसे स्वच्छ तरीका है:
sudo firewall-cmd --runtime-to-permanent
या प्रत्येक नियम में --permanent जोड़ें और फिर रीलोड करें:
sudo firewall-cmd --reload
--reload परमानेंट नियमों को स्थापित कनेक्शनों को छोड़े बिना फिर से पढ़ता है — आपका SSH सेशन जीवित रहता है।
चरण 4 — किसी भी चीज़ से पहले SSH को अनुमति दें
फ़ायरवॉल को कसने से पहले, सुनिश्चित करें कि SSH की अनुमति है, अन्यथा आपका अगला रीकनेक्ट विफल हो जाएगा। ssh सेवा डिफ़ॉल्ट पोर्ट 22 को कवर करती है:
sudo firewall-cmd --permanent --zone=public --add-service=ssh
यदि आप SSH को किसी कस्टम पोर्ट (उदाहरण के लिए 2222) पर चलाते हैं, तो इसके बजाय वह पोर्ट खोलें:
sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
इसे लागू करें:
sudo firewall-cmd --reload
चरण 5 — अपने एप्लिकेशन के लिए सेवाएँ खोलें
firewalld नाम से सैकड़ों पूर्वनिर्धारित सेवाओं को जानता है। उन्हें firewall-cmd --get-services के साथ सूचीबद्ध करें। एक सामान्य वेब सर्वर के लिए, HTTP और HTTPS को अनुमति दें:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
यदि आप उसी मशीन पर बिज़नेस ईमेल होस्ट करते हैं, तो प्रासंगिक सबमिशन और IMAP पोर्ट खोलें:
sudo firewall-cmd --permanent --zone=public --add-service=smtp-submission
sudo firewall-cmd --permanent --zone=public --add-service=imaps
sudo firewall-cmd --reload
किसी ऐसे मनमाने पोर्ट को खोलने के लिए जो किसी नामित सेवा द्वारा कवर नहीं किया गया है, प्रोटोकॉल के साथ --add-port का उपयोग करें:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
चरण 6 — नियम हटाना
किसी सेवा या पोर्ट को बंद करने के लिए, add को remove से बदलें और रीलोड करें:
sudo firewall-cmd --permanent --zone=public --remove-service=http
sudo firewall-cmd --permanent --zone=public --remove-port=8080/tcp
sudo firewall-cmd --reload
चरण 7 — सूक्ष्म नियंत्रण के लिए रिच रूल्स
रिच रूल्स आपको ऐसी शर्तें व्यक्त करने देते हैं जो साधारण सेवाएँ नहीं कर सकतीं — उदाहरण के लिए, स्रोत IP द्वारा एक्सेस को प्रतिबंधित करना। SSH को केवल अपने ऑफ़िस नेटवर्क से अनुमति देने और बाकी हर जगह इसे अस्वीकार करने के लिए, पहले व्यापक ssh सेवा को हटाएँ, फिर एक रिच रूल जोड़ें:
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
sudo firewall-cmd --permanent --zone=public \
--add-rich-rule='rule family="ipv4" source address="203.0.113.10/32" service name="ssh" accept'
sudo firewall-cmd --reload
नए नियम का पहले रनटाइम में (--permanent के बिना) परीक्षण करें और इसे बनाए रखने से पहले पुष्टि करें कि आप अभी भी अपने अनुमत IP से कनेक्ट कर सकते हैं। आप ब्रूट-फोर्स प्रयासों को धीमा करने के लिए किसी सेवा को रेट-लिमिट भी कर सकते हैं:
sudo firewall-cmd --permanent --zone=public \
--add-rich-rule='rule service name="ssh" limit value="5/m" accept'
चरण 8 — सत्यापित करें और ऑडिट करें
यह पुष्टि करने के लिए कि सब कुछ इरादे के अनुसार है, अपने ज़ोन की अंतिम स्थिति सूचीबद्ध करें:
sudo firewall-cmd --zone=public --list-all
सिंटैक्स त्रुटियों के लिए परमानेंट कॉन्फ़िगरेशन जाँचें:
sudo firewall-cmd --check-config
लॉकआउट से रिकवर करना
यदि कोई परिवर्तन आपका एक्सेस काट देता है, तो रनटाइम परिवर्तन रीबूट पर गायब हो जाता है — इसलिए आपके प्रदाता के कंसोल से एक हार्ड रीबूट पिछली परमानेंट स्थिति को बहाल कर देता है। इससे भी बेहतर, अपने प्रदाता द्वारा दिए गए कंसोल सेशन पर काम करें, या जोखिमपूर्ण परिवर्तनों से पहले एक टाइम्ड रोलबैक सेट करें। ठीक यहीं मैनेज्ड क्लाउड प्लेटफ़ॉर्म पर चलना मदद करता है: आप आउट-ऑफ-बैंड कंसोल एक्सेस और स्नैपशॉट रखते हैं ताकि कोई ग़लत कॉन्फ़िगर किया गया नियम कभी एक मृत सर्वर न बन जाए।
निष्कर्ष
अब आपके पास एक काम करता हुआ firewalld सेटअप है: ट्रस्ट स्तरों के लिए ज़ोन, आपके एप्लिकेशन के लिए नामित सेवाएँ और पोर्ट, स्रोत-आधारित प्रतिबंधों के लिए रिच रूल्स, और एक सुरक्षित रनटाइम-टू-परमानेंट वर्कफ़्लो। नियम-सेट को न्यूनतम रखें — केवल वही खोलें जिसकी आपको आवश्यकता है — और जब भी आप कोई नई सेवा जोड़ें तो इसका फिर से ऑडिट करें।
क्या आप यह हार्डनिंग ऐसे इंफ्रास्ट्रक्चर पर चाहते हैं जो Kingdom के भीतर रहता है, PDPL/NCA-संरेखित डेटा रेज़िडेंसी और स्थानीय अरबी समर्थन के साथ? Skyline Cloud के साथ एक VPS या क्लाउड सर्वर शुरू करें और इन चरणों को मिनटों में लागू करें। अपना अकाउंट बनाएँ और शुरुआत करें।
Comments
0 total · 0 threads