उबंटू सर्वर पर फ़ायरवॉल कैसे सेट करें
प्रकाशित: 15 फ़रवरी 2025 को 9:34:46 pm UTC बजे
आखरी अपडेट: 12 जनवरी 2026 को 8:37:36 am UTC बजे
यह आर्टिकल बताता है और कुछ उदाहरण देता है कि ufw का इस्तेमाल करके GNU/Linux पर फ़ायरवॉल कैसे सेट अप करें, जो कि Uncomplicated FireWall का छोटा रूप है - और नाम भी सही है, यह सच में यह पक्का करने का एक बहुत आसान तरीका है कि आपके पास ज़रूरत से ज़्यादा पोर्ट खुले न हों।
How to Set Up a Firewall on Ubuntu Server
इस पोस्ट में दी गई जानकारी Ubuntu Server 14.04 x64 पर आधारित है। यह दूसरे वर्शन के लिए वैलिड हो भी सकती है और नहीं भी। (अपडेट: मैं कन्फर्म कर सकता हूँ कि इस पोस्ट में दी गई जानकारी असल में Ubuntu Server 24.04 के हिसाब से वैलिड और फंक्शनल है, हालाँकि बीच के 10 सालों में, ufw आम सर्वर एप्लीकेशन के लिए प्रोफाइल होने से कुछ हद तक "स्मार्ट" हो गया है (उदाहरण के लिए, आप पोर्ट 80 और 443 के बजाय अलग-अलग "Nginx full" इनेबल कर सकते हैं) और नए नियम लागू करने के लिए पूरे फ़ायरवॉल को डिसेबल/इनेबल करना अब ज़रूरी नहीं है)
जब मैंने पहली बार GNU/Linux (Ubuntu) सर्वर के साथ शुरुआत की, तो फ़ायरवॉल सेट अप करने के लिए iptables के लिए एक मुश्किल कॉन्फ़िगरेशन फ़ाइल को मैन्युअल रूप से बनाना और मेंटेन करना पड़ता था। हालाँकि, मुझे हाल ही में ufw के बारे में पता चला है, जो कि Uncomplicated Firewall का छोटा रूप है – और यह सच में है :-)
मेरे Ubuntu Server 14.04 के इंस्टॉलेशन में ufw पहले से इंस्टॉल था, लेकिन अगर आपके इंस्टॉलेशन में नहीं है, तो बस इसे रिपॉजिटरी से इंस्टॉल करें:
UFW असल में सिर्फ़ एक टूल है जो iptables कॉन्फ़िगरेशन को आसान बनाता है – पर्दे के पीछे, यह अभी भी iptables और Linux कर्नेल फ़ायरवॉल ही है जो फ़िल्टरिंग करता है, इसलिए ufw इनसे न तो कम सुरक्षित है और न ही ज़्यादा। हालाँकि, क्योंकि ufw फ़ायरवॉल को सही तरीके से कॉन्फ़िगर करना बहुत आसान बनाता है, यह इंसानी गलती के जोखिम को कम कर सकता है और इसलिए शायद कम अनुभवी एडमिन के लिए ज़्यादा सुरक्षित है।
अगर आपका सर्वर IPv4 के साथ-साथ IPv6 पर भी कॉन्फ़िगर है, तो पक्का करें कि यह UFW के लिए भी चालू हो। /etc/default/ufw फ़ाइल को एडिट करें और IPV6=yes लिखी लाइन देखें। मेरे इंस्टॉलेशन पर यह पहले से ही था, लेकिन अगर यह नहीं है या अगर यह नहीं कहता है, तो आपको इसे एडिट करना चाहिए।
फिर बस कमांड प्रॉम्प्ट का इस्तेमाल करके उन पोर्ट को चालू करें जिन्हें आप खोलना चाहते हैं। अगर आप ssh के ज़रिए अपने सर्वर से कनेक्टेड हैं, तो उसे भी चालू करना न भूलें, नहीं तो यह आपके कनेक्शन में रुकावट डाल सकता है और जब आप इसे चालू करेंगे तो शायद आपको आपके सर्वर से लॉक कर सकता है – यह इस बात पर निर्भर करता है कि आपके पास सर्वर का फिजिकल एक्सेस है या नहीं, यह थोड़ा मुश्किल हो सकता है ;-)
उदाहरण के लिए, अगर आप स्टैंडर्ड पोर्ट 22 पर ssh इस्तेमाल करते हैं और आप एक ऐसा वेब सर्वर कॉन्फ़िगर कर रहे हैं जो अनएन्क्रिप्टेड (पोर्ट 80 पर HTTP) और एन्क्रिप्टेड (पोर्ट 443 पर HTTPS) दोनों कनेक्शन को सपोर्ट करता है, तो आप ufw को कॉन्फ़िगर करने के लिए ये कमांड देंगे:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
अगर आपको और नियमों की ज़रूरत है, तो बस उन्हें ऊपर बताए गए तरीके से जोड़ दें।
अगर आपके पास स्टैटिक IP एड्रेस है और आपको सिर्फ़ एक जगह से ssh के ज़रिए कनेक्ट करने की ज़रूरत है, तो आप ssh कनेक्शन को एक ही ओरिजिन एड्रेस तक सीमित भी कर सकते हैं, जैसे:
बेशक, इसके बजाय अपना खुद का IP एड्रेस डालें।
जब हो जाए, तो ufw को इनेबल करने के लिए यह एंटर करें:
और आपका काम हो गया! फ़ायरवॉल चल रहा है और जब आप अपना सर्वर रीबूट करेंगे तो यह अपने आप शुरू हो जाएगा :-)
अगर आप ufw कॉन्फ़िगरेशन में बदलाव करते हैं, तो उन्हें लागू करने के लिए आपको इसे डिसेबल और फिर से इनेबल करना पड़ सकता है, जैसे:
sudo ufw enable
मौजूदा कॉन्फ़िगरेशन देखने के लिए, बस यह डालें:
अगर ufw इनेबल नहीं है, तो यह बस एक “इनएक्टिव” मैसेज दिखाएगा, नहीं तो यह अभी तय नियमों की लिस्ट दिखाएगा।
