उबंटू सर्वर पर फ़ायरवॉल कैसे सेट करें
प्रकाशित: 15 फ़रवरी 2025 को 9:34:46 pm UTC बजे
यह आलेख ufw का उपयोग करके GNU/Linux पर फ़ायरवॉल स्थापित करने के तरीके के बारे में बताता है और कुछ उदाहरण प्रदान करता है, जो कि Uncomplicated FireWall का संक्षिप्त रूप है - और नाम भी उपयुक्त है, यह वास्तव में यह सुनिश्चित करने का एक बहुत ही आसान तरीका है कि आपके पास आवश्यकता से अधिक पोर्ट खुले न हों।
How to Set Up a Firewall on Ubuntu Server
इस पोस्ट में दी गई जानकारी उबंटू सर्वर 14.04 x64 पर आधारित है। यह अन्य संस्करणों के लिए मान्य हो भी सकती है और नहीं भी। (अपडेट: मैं पुष्टि कर सकता हूँ कि इस पोस्ट में दी गई जानकारी मूल रूप से उबंटू सर्वर 24.04 के अनुसार अभी भी मान्य और कार्यात्मक है, हालाँकि बीच के 10 वर्षों में, ufw सामान्य सर्वर अनुप्रयोगों के लिए प्रोफाइल होने से कुछ हद तक "स्मार्ट" हो गया है (उदाहरण के लिए, आप पोर्ट 80 और 443 के बजाय अलग-अलग "Nginx full" सक्षम कर सकते हैं) और नए नियमों को लागू करने के लिए पूरे फ़ायरवॉल को अक्षम/सक्षम करना अब आवश्यक नहीं है)
जब मैंने पहली बार GNU/Linux (Ubuntu) सर्वर के साथ काम करना शुरू किया था, तो फ़ायरवॉल सेट करने के लिए iptables के लिए संभावित रूप से जटिल कॉन्फ़िगरेशन फ़ाइल को मैन्युअल रूप से बनाना और बनाए रखना शामिल था। हालाँकि, मैंने हाल ही में ufw की खोज की है, जो कि अनकॉम्प्लिकेटेड फ़ायरवॉल का संक्षिप्त रूप है - और यह वास्तव में है :-)
मेरे Ubuntu सर्वर 14.04 की स्थापना में पहले से ही ufw स्थापित था, लेकिन यदि आपके पास नहीं है, तो बस इसे रिपॉजिटरी से स्थापित करें:
UFW वास्तव में सिर्फ़ एक उपकरण है जो iptables कॉन्फ़िगरेशन को सरल बनाता है - पर्दे के पीछे, यह अभी भी iptables और Linux कर्नेल फ़ायरवॉल है जो फ़िल्टरिंग करता है, इसलिए ufw इनसे न तो कम सुरक्षित है और न ही ज़्यादा। हालाँकि, क्योंकि ufw फ़ायरवॉल को सही तरीके से कॉन्फ़िगर करना बहुत आसान बनाता है, यह मानवीय त्रुटि के जोखिम को कम कर सकता है और इसलिए संभवतः अनुभवहीन व्यवस्थापकों के लिए अधिक सुरक्षित है।
यदि आपका सर्वर IPv6 के साथ-साथ IPv4 के साथ भी कॉन्फ़िगर किया गया है, तो सुनिश्चित करें कि यह 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 कनेक्शन को एकल मूल पते तक सीमित कर सकते हैं जैसे:
बेशक, इसके बजाय अपना स्वयं का आईपी पता दर्ज करें।
जब हो जाए, तो निम्न प्रविष्ट करके ufw को सक्षम करें:
और आपका काम हो गया! फ़ायरवॉल चालू है और जब आप अपना सर्वर रीबूट करेंगे तो यह अपने आप चालू हो जाएगा :-)
यदि आप ufw कॉन्फ़िगरेशन में परिवर्तन करते हैं, तो उन्हें प्रभावी बनाने के लिए आपको इसे अक्षम और पुनः सक्षम करना पड़ सकता है, जैसे:
sudo ufw enable
वर्तमान कॉन्फ़िगरेशन देखने के लिए, बस दर्ज करें:
यदि ufw सक्षम नहीं है, तो यह केवल एक "निष्क्रिय" संदेश दिखाएगा, अन्यथा यह वर्तमान में परिभाषित नियमों को सूचीबद्ध करेगा।