Home Knowledge base Skyline Cloud Ubuntu 22.04/24.04 पर firewalld के साथ फ़ायरवॉल कैसे सेट करें KNOWLEDGE BASE

Ubuntu 22.04/24.04 पर firewalld के साथ फ़ायरवॉल कैसे सेट करें

Ubuntu पर firewalld के साथ फ़ायरवॉल कॉन्फ़िगर करने के लिए एक व्यावहारिक और सटीक गाइड — इसे इंस्टॉल करना, ज़ोन के साथ काम करना, सेवाएँ और पोर्ट खोलना, रिच रूल्स लिखना, और प्रोडक्शन VPS पर परिवर्तनों को सुरक्षित रूप से लागू करना।

Ubuntu 22.04/24.04 पर firewalld के साथ फ़ायरवॉल कैसे सेट करें

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 या क्लाउड सर्वर शुरू करें और इन चरणों को मिनटों में लागू करें। अपना अकाउंट बनाएँ और शुरुआत करें

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.