Skip to content
VDS · नेटवर्क, IP पता और डोमेन

ufw फ़ायरवॉल: जो ज़रूरी नहीं उसे बंद करें

पाँच मिनट में ufw कैसे सेट करें: ज़रूरी पोर्ट खोलें, बाक़ी बंद करें, पते के अनुसार पहुँच सीमित करें, और अपना SSH कटने से बचाएँ।

23 अगस्त 2026 को अपडेट किया गया

नई मशीन पर नेटवर्क पर जो कुछ भी सुनता है, वह खुला रहता है। कुछ सेवाएँ आपने जानबूझकर इंस्टॉल की हैं, कुछ पैकेजों के साथ आई हैं। फ़ायरवॉल इसे एक ही बार में हल कर देता है: जो आप लिस्ट करते हैं उसके अलावा सब कुछ ब्लॉक रहता है।

ufw कर्नेल नियमों के ऊपर एक सरल रैपर है। ज़्यादातर मामलों में यह काफ़ी है; ज़्यादा जटिल सेटअप के लिए nftables वाला लेख देखें।

बेसिक सेटअप

apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw enable
ufw status verbose

यहाँ क्रम मायने रखता है: SSH नियम चालू करने से पहले जोड़ा जाता है। वरना ufw enable आपका कनेक्शन काट देगा, और आपको पैनल /hosting/vds/m/<id> के कंसोल या रेस्क्यू मोड से वापस अंदर आना पड़ेगा।

पैनल का कंसोल नेटवर्क से स्वतंत्र रूप से काम करता है, इसलिए आप खुद को पूरी तरह बाहर नहीं कर सकते — लेकिन इसमें समय लगता है।

आम नियम

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow from 203.0.113.5 to any port 22 proto tcp
ufw limit 22/tcp
ufw delete allow 80/tcp
ufw status numbered
ufw delete 3

ufw limit उन सभी को धीमा कर देता है जो 30 सेकंड में छह से ज़्यादा कनेक्शन खोलते हैं — पासवर्ड ब्रूट-फ़ोर्सिंग के खिलाफ़ सस्ती सुरक्षा। इसी काम के लिए एक ज़्यादा बारीक टूल है fail2ban।

allow from नियम उन सेवाओं के लिए उपयोगी है जो सार्वजनिक नहीं होनी चाहिए: डेटाबेस, एडमिन पैनल, मेट्रिक्स एक्सपोर्टर।

ufw allow from 203.0.113.5 to any port 5432 proto tcp

नतीजा जाँचें

ufw status verbose
ss -tulpn

ss दिखाता है कि सिस्टम किस पर सुन रहा है, ufw status दिखाता है कि बाहर से किसे अंदर आने दिया गया है। दोनों लिस्टों का अंतर वे सेवाएँ हैं जिन्हें आपने बंद कर दिया है, और यह ठीक है। उल्टा खराब है: ufw में कोई पोर्ट खुला है, लेकिन उस पर कोई लिसनर नहीं है।

बाहर से पिंग से नहीं, पोर्ट से जाँचें:

nc -vz <address> 443

Docker और ufw

अगर मशीन पर Docker चल रहा है, तो ध्यान रखें: कंटेनर पोर्ट फ़ॉरवर्डिंग ufw नियमों से पहले कर्नेल चेन में होती है। -p 5432:5432 के साथ शुरू किया गया कंटेनर बाहर से पहुँचने योग्य रहेगा, भले ही ufw status में deny दिखे। ऐसे पोर्ट को लोकल इंटरफ़ेस पर बाइंड करें:

docker run -p 127.0.0.1:5432:5432 postgres

आम गलतियाँ

गलतीनतीजासमाधान
SSH नियम के बिना ufw enableनेटवर्क एक्सेस का नुकसानपैनल कंसोल से अंदर आएँ, ufw allow 22/tcp
SSH पोर्ट बदला, पुराना नियम छोड़ दियावही बातपहले नियम, फिर पोर्ट
पोर्ट खुला है, सेवा जवाब नहीं देतीसेवा 127.0.0.1 पर सुन रही हैबाइंड एड्रेस बदलें
deny के बावजूद कंटेनर पहुँचने योग्य हैDocker ufw को बायपास करता है127.0.0.1 पर बाइंड करें

कोई पोर्ट बंद करने से पहले ss -tulpn चलाएँ और पक्का करें कि आप समझते हैं कि उस पर क्या बैठा है। बाद में बंद किया गया मॉनिटरिंग पोर्ट "सेवा डाउन हो गई" जैसा दिखता है।