आपने बैकअप बहाल किया, सेवा शुरू हुई, और एक क्लाइंट पहले प्रयास में जुड़ गया। वह सफलता ही जाल है। बहाली उन फ़ाइलों को लौटाती है जो सर्वर के पास स्नैपशॉट के समय थीं, उसके बाद बदली गई पहुँच स्थिति नहीं, और अगर पुराना एंडपॉइंट अभी भी पहुँच योग्य है तो अब आपके पास दो मशीनें एक पहचान का जवाब दे रही हैं। समाधान बेहतर बैकअप नहीं है; समाधान यह तय करना है कि बहाल किया गया होस्ट एक भी हैंडशेक का जवाब देने से पहले क्या हो सकता है।

बैकअप फ़ाइलें लौटाता है, अधिकार नहीं

स्नैपशॉट में सर्वर कॉन्फ़िगरेशन, निजी कुंजियाँ, प्रमाणपत्र प्राधिकरण, पीयर सूची और फ़ायरवॉल नियम वैसे ही होते हैं जैसे बैकअप चलने के समय थे। उसमें वह नहीं हो सकता जो बाद में बदला: वह डिवाइस जिसे आपने निरस्त किया, वह कुंजी जो आपने फिर जारी की, वह पीयर जिसे लैपटॉप बिकने पर हटाया, वह सबनेट जिसे आपने स्थानांतरित किया। बहाली फ़ाइलों को उसी क्षण पर लौटा देती है। यह उन निर्णयों को नहीं लौटाती जो लोगों ने तब से लिए।

नुकसान ठीक इसी अंतराल से आता है। बैकअप के दो सप्ताह बाद निरस्त किया गया चोरी का लैपटॉप ऐसा प्रमाणपत्र प्रस्तुत करता है जो बहाल किए गए ट्री में मौजूद पुराने CRL के विरुद्ध अभी भी सत्यापित होता है, और सर्वर उस डिवाइस को स्वीकार कर लेता है जिसे आपने सेवानिवृत्त किया था। WireGuard अधिक सीधा है: पीयर सूची में होने से ही अधिकृत होता है, इसलिए स्नैपशॉट के बाद हटाया गया पीयर सीधे फिर मौजूद है। किसी ने उस पहुँच को दोबारा स्वीकृत नहीं किया। पुरानी फ़ाइल ने किया।

सर्वर की पहचान और क्लाइंट की पहचान अलग-अलग तरह से विफल होती हैं

WireGuard में सर्वर की पहचान wg0.conf की निजी कुंजी है, इसलिए उस फ़ाइल को दूसरे पहुँच योग्य होस्ट पर कॉपी करने से एक ही पहचान वाले दो सर्वर बनते हैं जो एक-दूसरे को नहीं जानते। हर एक अपनी पीयर सूची रखता है। नए होस्ट पर पीयर हटाएँ और पुराना उसे अब भी स्वीकार करता है; एक पर wg show जाँचें और आधी सच्चाई देखें। क्लाइंट भी अपने आप नहीं बदलते: प्रोफ़ाइल एक Endpoint रखती है, इसलिए डिवाइस उसी पते से बात करता रहता है जिस पर उसे कॉन्फ़िगर किया गया था, जो वह होस्ट हो सकता है जिसे आप सेवानिवृत्त करना चाहते थे।

OpenVPN उसी परत पर सर्वर प्रमाणपत्र, उसकी निजी कुंजी और tls-auth या tls-crypt स्थिर कुंजी के साथ दोहराया जाता है। तीनों कॉपी करें और क्लाइंट उदाहरणों में अंतर नहीं कर सकता; अगर दोनों पहुँच योग्य हैं, तो पुनः कनेक्शन किसी पर भी पड़ सकता है, और हर लॉग फ़ाइल आधी कहानी बताती है। प्रमाणपत्र प्राधिकरण गहरी प्रति है। बहाल किया गया easy-rsa ट्री सत्य का दूसरा स्रोत है जो आपके दिए किसी भी नाम के लिए वैध प्रमाणपत्र जारी कर सकता है।

क्लाइंट भी दोहराए जाते हैं, आमतौर पर माइग्रेशन के दौरान। प्रोफ़ाइल को अतिरिक्त डिवाइस पर «केवल परीक्षण के लिए» कॉपी करने से उसी कुंजी और सामान्य नाम वाला दूसरा डिवाइस बनता है। duplicate-cn के साथ दोनों सत्र एक साथ चालू रह सकते हैं, और ccd या ifconfig-pool-persist में स्थिर पता आवंटन मूल डिवाइस से टकरा सकता है। ये दो मशीनें एक पहचान पहने हैं, और सर्वर कॉन्फ़िगरेशन में कुछ भी उन्हें अलग नहीं करता।

पुराने एंडपॉइंट के लिए तीन में से एक स्थिति चुनें

बहाली तभी सुरक्षित है जब पुराने एंडपॉइंट का भाग्य तय हो जाए। उसे सेवानिवृत्त करें: नया होस्ट शुरू होने से पहले पुरानी सेवा को VPN पोर्ट स्वीकार करना बंद करना होगा, और अगर आप मशीन तक नहीं पहुँच सकते तो उस पोर्ट को नेटवर्क किनारे पर अपने प्रशासनिक स्रोत के अलावा सबके लिए अवरुद्ध करें। उसी होस्ट की मरम्मत करें: पहचान का पुन: उपयोग ठीक है क्योंकि एक मशीन उसे रखती है, लेकिन बाद में पुरानी कुंजी की डिस्क प्रति या VM स्नैपशॉट नष्ट करें ताकि वह लौट न सके। उपलब्धता जोड़ी बनाएँ: दो होस्ट को अलग होस्ट पहचान और एक साझा एंडपॉइंट चाहिए, जैसे तैरता पता, लोड बैलेंसर या वह DNS जिसे आप स्थानांतरित कर सकें। निजी कुंजी की कॉपी करना failover डिज़ाइन नहीं है; यह एक नाम का दावा करते दो सर्वर हैं।

क्लाइंट को छूने से पहले पुष्टि करें कि आप वास्तव में किस स्थिति में हैं। VPN पोर्ट पर जवाब देने वाला पुराना होस्ट ही निरस्त डिवाइस को स्वीकार करेगा, भले ही DNS हट गया हो। श्रोताओं और सार्वजनिक कुंजी की जाँच करें:

ss -lunp | grep -E ':51820|:1194'
wg show wg0
wg pubkey < /etc/wireguard/server.key

पहले पीयर, निरसन और पते मिलाएँ

सूची बनाएँ कि बहाली क्या दावा करती है उसके मुकाबले जो अभी अधिकृत है। WireGuard में wg show wg0 हर पीयर की कुंजी, एंडपॉइंट, नवीनतम हैंडशेक और स्थानांतरण गणक देता है, जो ऐसे डिवाइस को पकड़ने के लिए पर्याप्त है जिसका अब आपके पास स्वामित्व नहीं है। wg set wg0 peer <key> remove से उसे लाइव हटाएँ, फिर कॉन्फ़िगरेशन भी संपादित करें, वरना पीयर अगली शुरुआत में लौट आएगा। wg show wg0 allowed-ips दूसरी समस्या उजागर करता है: एक पते पर दो पीयर, या वह पता जिसे आप पहले ही पुनः आवंटित कर चुके हैं।

OpenVPN में निरसन सूची तारीख वाली फ़ाइल है, और बहाली पुरानी लौटा सकती है। क्लाइंट जुड़ने से पहले उसे जाँचें:

openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
grep -E 'crl-verify|reneg-sec' /etc/openvpn/server.conf

अगर अंतिम अपडेट निरसन से पहले का है, तो सर्वर अब भी उस प्रमाणपत्र का सम्मान कर रहा है जिसे आपने निरस्त किया था। OpenVPN 2.4 और बाद के संस्करण हर नए कनेक्शन के लिए CRL फ़ाइल फिर पढ़ते हैं, इसलिए फ़ाइल बदलने से नए सत्र रुक जाते हैं, पर स्थापित टनल पुनः बातचीत तक बने रहते हैं; reneg-sec का डिफ़ॉल्ट 3600 सेकंड है, और उसे घटाना या सेवा पुनः आरंभ करना ही आपको बदलाव अभी देता है। पुराने बिल्ड फ़ाइल को उतनी विश्वसनीयता से नहीं उठा सकते, इसलिए जब संस्करण का व्यवहार पुष्ट न कर सकें तो पुनः आरंभ करें। wg(8) मैनुअल ऊपर प्रयुक्त पीयर हटाने और allowed-ips वाक्यविन्यास को कवर करता है।

उन डिवाइसों के स्थिर आवंटन भी साफ़ करें जो अब मौजूद नहीं हैं। पुरानी प्रोफ़ाइल के स्थापित रहते सेवानिवृत्त डिवाइस का पता नए के लिए पुन: उपयोग करने से ठीक वही दोहराव बनता है जिससे आप बचना चाहते हैं।

उस क्लाइंट से सत्यापित करें जिसे आपने निरस्त किया

जाँचें क्रम से, टनल के बाहर के नेटवर्क से चलाएँ। पहले एक अधिकृत डिवाइस जुड़ता है, धकेले गए रिज़ॉल्वर से DNS हल करता है और एक निजी संसाधन तक पहुँचता है। फिर निरस्त डिवाइस को विफल होना चाहिए, नई के बजाय अपनी मौजूदा प्रोफ़ाइल से। फिर बाहर से पुराना एंडपॉइंट आज़माएँ: अगर VPN पोर्ट अब भी हैंडशेक पूरा करता है, तो पुराना होस्ट जीवित है और दोहराव वास्तविक है, सैद्धांतिक नहीं।

बहाल किए गए होस्ट को पुनः बूट करें और अधिकृत तथा निरस्त जाँचें दोहराएँ, क्योंकि तभी कॉन्फ़िगरेशन फ़ाइल रनटाइम में आपके बदलावों पर भारी पड़ती है। होस्ट की सार्वजनिक कुंजी या प्रमाणपत्र फ़िंगरप्रिंट की तुलना सेवानिवृत्त मशीन द्वारा प्रयुक्त से करें। दो जीवित मशीनों पर मेल खाते फ़िंगरप्रिंट का अर्थ है कि बहाली ने पहचान का क्लोन बनाया; एक मशीन पर मेल खाते फ़िंगरप्रिंट ठीक हैं। बहाल किए गए संस्करण, कुंजी फ़िंगरप्रिंट और निरस्त क्रमांक या पीयर कुंजी दर्ज करें, फिर इस मिलान के बाद अगला बैकअप लें, ताकि वह सेवा को जैसी वह अब है वैसा दर्शाए। काम करने वाली परीक्षा यह नहीं है कि क्लाइंट जुड़ता है। वह यह है कि जिस क्लाइंट को आपने हटाया वह बाहर रहता है जबकि पुराना एंडपॉइंट बंद रहता है।

संबंधित लेख