पहली बार अपना सर्वर चलाने वाले हर व्यक्ति के लिए एक दीक्षा-संस्कार होता है: आप फ़ायरवॉल लगाने का तय करते हैं, कुछ ufw कमांड टाइप करते हैं, enable दबाते हैं — और टर्मिनल चुप हो जाता है। SSH गायब। आपने कुछ तोड़ा नहीं, न ही आप हैक हुए। आपने बस दरवाज़ा बंद कर लिया, खुद बाहर रहते हुए।
यह अच्छे एडमिन के साथ भी होता है। पिछले हफ़्ते हमारे एक ग्राहक के साथ हुआ, इसीलिए मैं यह लिख रहा हूँ। अच्छी खबर: इसे एक मिनट से भी कम में पूरी तरह ठीक किया जा सकता है, और आपको रीइंस्टॉल करने या एक भी फ़ाइल गँवाने की ज़रूरत नहीं। तरीका यह रहा।

असल में क्या गड़बड़ हुई
ufw (Uncomplicated Firewall) डिफ़ॉल्ट रूप से हर इनकमिंग को मना करता है। जिस पल आप ufw enable चलाते हैं, जो कुछ भी आपने साफ़-साफ़ allow नहीं किया वह गिरा दिया जाता है — उस SSH सत्र समेत जिसमें आप बैठे हैं। अगर आप पहले अपने SSH पोर्ट को ufw allow करना भूल गए, तो नियम लागू होते ही आपने अपना ही कनेक्शन काट लिया।
यह क्लासिक रूप है। दो और भी लोगों को फँसाते हैं:
- आपने ग़लत पोर्ट allow किया। एक टाइपो, या आपने सेवा का पोर्ट (मान लीजिए 8080) allow किया और 22 भूल गए।
- आपने 22 allow किया पर सूची में ऊपर एक
denyनियम रख दिया जो उसे ढक देता है। ufw क्रम के प्रति संवेदनशील है।
चाहे जो हो, सर्वर खुद ठीक है — चल रहा है, डिस्क सही-सलामत, आपका ऐप अब भी दीवार के पीछे गुनगुना रहा है। यह विशुद्ध रूप से नेटवर्क एक्सेस की समस्या है। और ठीक इसीलिए इसे सुधारना आसान है।
ग़लत कदम: रीइंस्टॉल
पहली प्रतिक्रिया अक्सर होती है "तो सर्वर रीसेट करके शुरू से शुरू करता हूँ"। मत कीजिए — इसके लिए नहीं। रीइंस्टॉल एक चालू SSH वापस पाने के लिए सब कुछ मिटा देता है, जबकि SSH को रोकने वाला बस एक फ़ायरवॉल कमांड है जिसे आप दस सेकंड में पलट देते हैं। यह ऐसा है जैसे सामने का दरवाज़ा बंद हो जाने पर पूरा घर जला देना।
रीइंस्टॉल तब सही है जब आप चाहते हों कि सब कुछ साफ़ हो जाए। ufw लॉक-आउट के लिए यह मच्छर पर तोप है।
सही कदम: वेब कंसोल
हर ढंग का VPS आपको एक आउट-ऑफ़-बैंड कंसोल देता है — मशीन तक एक रास्ता जो न SSH से जाता है, न नेटवर्क स्टैक से। EQVPS पर यह आपके सर्वर के पेज पर Console बटन है। यह सीरियल कंसोल है: सिर्फ़ टेक्स्ट, VM से सीधे जुड़ा हुआ जैसे मॉनिटर और कीबोर्ड होते। फ़ायरवॉल नियम का इस पर कोई ज़ोर नहीं, क्योंकि यह नेटवर्क ट्रैफ़िक नहीं है।

इस पर क्लिक कीजिए, अपने root क्रेडेंशियल से लॉग इन कीजिए (या पास न हो तो पैनल में पासवर्ड रिवील कीजिए) — और आप मशीन पर हैं, फ़ायरवॉल हो या न हो।
अब नुकसान पलटिए। सबसे तेज़ रास्ता:
sudo ufw disable
यह फ़ायरवॉल बंद करता है और आपके नियम रखता है, ताकि ग़लती सुधारने के बाद आप उसे दोबारा चालू कर सकें। SSH तुरंत वापस आता है।
अगर आप पूरा फ़ायरवॉल गिराना नहीं चाहते, तो बस वह पोर्ट खोलिए जो छूट गया था:
sudo ufw allow 22
sudo ufw status numbered
status numbered देखने लायक है: यह नियमों का क्रम दिखाता है — "मैंने 22 allow किया फिर भी ब्लॉक है" वाले मामले यहीं छुपे होते हैं। अगर आपके allow के ऊपर कोई deny बैठा है, तो sudo ufw delete <नंबर> से हटा दीजिए।
NAT का वह जाल जिसका ज़िक्र लगभग कोई गाइड नहीं करती
अगर आप NAT प्लान पर हैं, यहाँ एक जाल है। आप SSH में किसी ऊँचे पोर्ट से जाते हैं — जैसे 20266 — तो स्वाभाविक सहज-बुद्धि ufw allow 20266 कहती है। इससे कुछ नहीं होता।
NAT में वह बाहरी पोर्ट VM के अंदर पोर्ट 22 पर फ़ॉरवर्ड होता है। ufw VM के अंदर चलता है और हमेशा सिर्फ़ 22 देखता है। तो जो नियम आपको सचमुच चाहिए वह है:
sudo ufw allow 22
20266 allow कीजिए और आप अब भी टूटे कनेक्शन को घूरते रहेंगे कि आख़िर क्यों। 22 allow कीजिए और आप अंदर हैं। हर सेवा के लिए वही तर्क: उस पोर्ट को allow कीजिए जिस पर प्रोसेस मशीन के अंदर सुनता है, उस फ़ॉरवर्ड किए पोर्ट को नहीं जिससे आप बाहर से जुड़ते हैं।
इसे दोबारा कभी न करने का तरीका
सुधार में एक मिनट लगता है, पर उसकी ज़रूरत ही न पड़े तो बेहतर। दो आदतें:
चालू करने से पहले अपना SSH पोर्ट allow कीजिए। हमेशा इसी क्रम में:
sudo ufw allow 22
sudo ufw enable
उल्टा कीजिए और आप फिर कंसोल में हैं।
फ़ायरवॉल नियम बदलते समय एक दूसरा SSH सत्र खुला रखिए। दो बार लॉग इन कीजिए। बदलाव एक खिड़की में कीजिए; अगर SSH मर जाए, दूसरी अब भी ज़िंदा है और उसे ठीक कर देगी। पुरानी तरकीब, हर बार बचाती है।
और अगर आप कोई नई मशीन खड़ी कर रहे हैं, तो हमारी नए VPS की सुरक्षा चेकलिस्ट ufw को सही क्रम में समेटती है — SSH कुंजियों और पहले दस मिनट में सचमुच मायने रखने वाली कुछ और चीज़ों के साथ।
निचोड़
ufw लॉक-आउट डरावना दिखता है और लगभग कुछ भी नहीं है। सर्वर कभी गया ही नहीं; आपको बस एक ऐसा दरवाज़ा चाहिए जिसे कोई फ़ायरवॉल न भड़का सके — वेब कंसोल — और एक कमांड। ufw disable और कंसोल जेब में रखिए, अगली बार चालू करने से पहले अपना पोर्ट allow कीजिए, और यह चीज़ आपको दोबारा कभी पसीना नहीं छुड़ाएगी।
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। पहले बनें।