WireGuard کی مصافحے کی عمر سیشن کی مہلت نہیں
کلید کی تجدید کے ٹائمر کلیدوں کو کنٹرول کرتے ہیں، صارف کی رسائی کو نہیں۔ latest-handshakes پڑھنا ایک ساتھی کی پروٹوکول حالت بتاتا ہے، یہ نہیں کہ اس کی اجازت ختم ہو گئی ہے۔
جو ساتھی ٹریفک گزرنا بند کر دے وہ اس سے اپنی کلید نہیں کھوتا، اور نئی مصافحہ یہ ثابت نہیں کرتی کہ کسی نے اسے استعمال کرنے کی اجازت تجدید کی ہے۔ WireGuard کے ٹائمر کلیدوں کو تازہ اور پیکٹوں کو حرکت میں رکھتے ہیں؛ وہ ایسے صارف کی نقل نہیں کرتے جو مقررہ منٹوں کے بعد لاگ آؤٹ ہوتا ہے۔ یہاں تین سوالات گڈمڈ ہو جاتے ہیں اور ہر ایک کے ثبوت مختلف ہیں۔ یہی فرق طے کرتا ہے کہ کون سا اوزار استعمال کریں۔
تین سوالات، ایک کمانڈ کی آؤٹ پٹ
آپریٹرز پوچھتے ہیں کہ ساتھی قابل رسائی ہے یا نہیں، فعال رہا ہے یا نہیں، اور اب بھی اجازت یافتہ ہے یا نہیں۔ پہلا پروٹوکول کی حالت ہے، دوسرا ٹریفک کاؤنٹر اور تیسرا اجازت۔ صرف پہلے دو WireGuard انٹرفیس سے پڑھے جا سکتے ہیں، اور انہیں عموماً تینوں کے جواب کے لیے استعمال کیا جاتا ہے۔
| Question | Evidence it needs | What does not answer it |
|---|---|---|
| Is the peer reachable now? | A recent handshake and a working return path | An interface that exists |
| Has it been active? | Transfer counters moving over time | A handshake timestamp alone |
| Is access still granted? | The configuration or controller that authorizes it | Any protocol timer |
سطروں کو تین الگ تفتیشیں سمجھیں۔ پہلی دو سستی ہیں اور انٹرفیس کے اپنے کاؤنٹرز سے ان کا جواب دیا جا سکتا ہے۔ تیسرے کے لیے وہ ترتیب درکار ہے جو رسائی دیتی ہے، اور وہ کسی دوسری فائل یا دوسرے نظام میں رہتی ہے۔ غلط سطر چننا یہ ہے کہ پروٹوکول کے ٹائمر سے پالیسی کا کام مانگا جائے۔
ٹائمر اصل میں کیا کنٹرول کرتے ہیں
پروٹوکول مصافحے کی دوبارہ کوشش، ٹرانسپورٹ کلیدوں کی گردش اور پرانی کلید سے محفوظ پیکٹوں کے رد کے لیے مستقل متعین کرتا ہے۔ یہ ٹریفک اور حالت پر ردعمل دیتے ہیں، کیلنڈر یا ایسی پالیسی پر نہیں جو کہے کہ کوئی شخص 17:00 تک منسلک رہ سکتا ہے۔ اسی لیے بیکار ساتھی گھنٹوں غیر فعال دکھ سکتا ہے اور پھر بھی مجاز رہتا ہے۔
PersistentKeepalive کو اکثر غائب مہلت سمجھ لیا جاتا ہے۔ یہ NAT میپنگ کو زندہ رکھنے کے لیے تصدیق شدہ خالی پیکٹ بھیجتا ہے، اور اسے صفر پر رکھنا کچھ بھی منسوخ کیے بغیر وہ پیکٹ روک دیتا ہے۔
ہر ساتھی کے لیے رن ٹائم حالت پڑھیں، تبصرے کے بجائے عوامی کلید استعمال کرتے ہوئے:
wg show wg0 latest-handshakes
wg show wg0 transfer
حالیہ مصافحہ بتاتی ہے کہ ایک مصافحہ مکمل ہوا۔ یہ نہیں بتاتی کہ سرنگ کے پیچھے کی نجی خدمت قابل رسائی ہے، اور پرانا ٹائم اسٹیمپ ایسے ساتھی کا ہو سکتا ہے جو محض خاموش ہے۔
کیوں بیکار ساتھی لاگ آؤٹ شدہ ساتھی نہیں
WireGuard کے پاس آغاز اور انجام والی سیشن شے نہیں۔ ساتھی اجازت یافتہ پتوں والی عوامی کلید ہے، اور اس کی ٹریفک کی حفاظت کرنے والی مصافحہ ضرورت کے مطابق بدلی جاتی ہے، بغیر کسی ایسے لاگ اِن کے جو صارف کو نظر آئے۔ حالیہ ٹریفک کی عدم موجودگی کو لاگ آؤٹ سمجھنا ماڈل کو اُلٹ دیتا ہے۔
اگر اصل شکایت یہ ہے کہ رابطہ بیکار رہنے کے بعد ناکام ہو جاتا ہے، تو وجہ عموماً کہیں اور ہوتی ہے: ختم شدہ NAT میپنگ، سویا ہوا آلہ، یا فائر وال جس نے حالت چھوڑ دی۔ دوسری طرف سے ٹریفک بھیج کر اور نئی روانی شروع کر کے جانچیں، اور موازنہ کریں کہ کیا بدلتا ہے۔
مہلت وہیں رکھیں جہاں اجازت رہتی ہے
اگر رسائی کو مقررہ وقت پر ختم ہونا چاہیے، تو مہلت اسی کی ہے جو رسائی دیتا ہے۔ ساتھیوں کی ترتیب جاری کرنے والا کنٹرولر نئی دینے سے پہلے تجدید شدہ منظوری مانگ سکتا ہے، اور یہ کنٹرولر کی خصوصیت ہے نہ کہ انٹرفیس کا پوشیدہ پیرامیٹر۔
ہاتھ سے سنبھالے گئے ساتھیوں کے لیے ہٹانا دو جگہوں تک پہنچنا چاہیے: چلتی انٹرفیس اور محفوظ ترتیب۔ ساتھی کو صرف رن ٹائم میں ہٹانا ری اسٹارٹ یا مفاہمت کے لوپ سے کالعدم ہو جاتا ہے، جو وہ شناخت بحال کر دیتا ہے جسے آپ ختم شدہ سمجھتے تھے:
sudo wg set wg0 peer <public-key> remove
sudo wg-quick save wg0
پھر لیبل کے بجائے حد کو جانچیں۔ تصدیق کریں کہ ساتھی مہلت کے بعد مسترد ہوتا ہے، تجدید کا راستہ کام کرتا ہے، اور حالت مینیجر کے دوبارہ لوڈ پر بھی قائم رہتی ہے۔ مصافحے کی عمر ایک مفید آپریشنل اشارہ ہے، اور یہ رسائی کا ریکارڈ نہیں۔