Windows پر L2TP/IPsec خرابی 789: پروفائل بنائیں اور تجویز کو پن کریں
خرابی 789 IPsec تبادلے میں ناکام ہوتی ہے، پاس ورڈ میں نہیں۔ L2TP پروفائل اسکرپٹ کریں، تجویز کو پن کریں اور بعد کے کوڈ مرحلے کے مطابق پڑھیں۔
Windows پر L2TP کنکشن میں خرابی 789 کا مطلب ہے کہ سرنگ IPsec سیکیورٹی تبادلے کے اندر ہی مر گئی، جو Windows کی طرف سے کہیں بھی صارف کا پاس ورڈ بھیجنے سے بہت پہلے ہوتا ہے۔ پاس ورڈ دوبارہ آزمانا، یا ڈائریکٹری میں اسے ری سیٹ کرنا، اس مرحلے کو آگے نہیں بڑھا سکتا۔ اسے آگے بڑھانے والی چیز PowerShell سے کنکشن کو اس تجویز کے ساتھ دوبارہ بنانا ہے جو گیٹ وے واقعی پیش کرتا ہے، کیونکہ سیٹنگز کا وزرڈ IPsec تبدیلیاں خاموشی سے منتخب کرتا ہے اور آپ کو کبھی نہیں دکھاتا کہ اس نے کیا منتخب کیا۔ یہ اسی کے لیے رہنما ہے: پروفائل بنائیں، تجویز کو پن کریں، پھر مرحلہ جدول استعمال کریں تاکہ اگلا کوڈ آپ کو کچھ بتائے۔
وزرڈ کے بغیر پروفائل بنائیں
Add-VpnConnection ایک مقامی فون بک اندراج لکھتا ہے، اس لیے نتیجہ وہی شے ہے جسے سیٹنگز ایپ بعد میں ترمیم کرے گی۔ جب کنکشن مشین کے ہر اکاؤنٹ کے لیے ہونا چاہیے تو اسے بلند سیشن سے چلائیں، یا جب یہ نجی رہنا چاہیے تو صارف کے سیاق و سباق سے:
Add-VpnConnection -Name "Contoso L2TP" `
-ServerAddress 203.0.113.10 `
-TunnelType L2tp `
-EncryptionLevel Required `
-AuthenticationMethod MSChapv2 `
-RememberCredential -Force
گیٹ وے جو پیش کرتا ہے اس سے -AuthenticationMethod ملائیں۔ MSChapv2، EAP اور PAP باہم بدلے جانے والے نہیں، اور ایسا پروفائل جو ایسا طریقہ مانگے جو سرور قبول نہ کرے، کسی بھی صارف ریکارڈ کو دیکھنے سے پہلے ہی ناکام ہو جاتا ہے۔ کسی بھی حقیقی چیز کے لیے -EncryptionLevel Required رکھیں؛ Optional Windows کو اجازت دیتا ہے کہ غیر خفیہ کردہ سرنگ قبول کرے اگر سامنے والا فریق ایک پیش کرے، جو تجربہ گاہ کی شارٹ کٹ ہے، بھیجنے کے لیے ترتیب نہیں۔
اگر آپ -L2tpPsk دیں تو وہ پہلے سے مشترکہ چابی ڈسک پر پروفائل میں لکھی جاتی ہے، جہاں سے اس مشین پر پروفائل پڑھ سکنے والا کوئی بھی اسے بازیافت کر سکتا ہے۔ جب گیٹ وے معاونت کرے تو سامنے والے فریق کی تصدیق کے لیے سرٹیفکیٹ استعمال کریں، اور جب PSK ناگزیر ہو تو اسے ہر پروویژننگ رن میں چپکانے کے بجائے مخزن اور شیل تاریخ سے باہر رکھیں۔
پہلے سے طے شدہ اقدار قبول کرنے کے بجائے تجویز کو پن کریں
Windows خود IPsec تبدیلیاں بھرتا ہے، اسی لیے یکساں دکھنے والے کنکشن والی دو مشینیں ایک ہی گیٹ وے کے سامنے مختلف طریقے سے ناکام ہو سکتی ہیں۔ Set-VpnConnectionIPsecConfiguration انہیں پن کرنے کا معاون طریقہ ہے:
Set-VpnConnectionIPsecConfiguration -ConnectionName "Contoso L2TP" `
-AuthenticationTransformConstants SHA256128 `
-CipherTransformConstants AES128 `
-EncryptionMethod AES128 `
-IntegrityCheckMethod SHA256 `
-DHGroup Group14 `
-PfsGroup None `
-PassThru -Force
وہ مجموعہ L2TP/IPsec کی ایک عام ترتیب ہے، عالمگیر جواب نہیں۔ ہر پیرامیٹر اقدار کی مقررہ فہرست قبول کرتا ہے، اور جو امتزاج پلیٹ فارم نقشہ نہیں بنا سکتا وہ خاموشی سے کمزور پروفائل کے بجائے cmdlet خرابی کے طور پر واپس آتا ہے۔ ایسی خرابی کو اقدار کے بارے میں بیان سمجھیں، اپنے اجازتوں کے بارے میں نہیں۔
تجویز کو گیٹ وے کی دستاویزات یا اس کی زندہ مرحلہ 1 اور مرحلہ 2 ترتیبات سے نقل کریں، اور ایک وقت میں صرف ایک فیلڈ بدلیں، صرف اس وقت جب گیٹ وے ان تبدیلیوں کو لاگ کر رہا ہو جنہیں وہ مسترد کرتا ہے۔ پانچ فیلڈز سے گزرنا ایسا کنکشن بناتا ہے جو اتفاقاً کام کرتا ہے اور ایسا ریکارڈ جو اگلے شخص کو کچھ نہیں سمجھاتا۔
ناکامی کو خرابی کے متن سے نہیں، مرحلے سے پڑھیں
789 کوڈوں کے اس خاندان سے تعلق رکھتا ہے جو کلائنٹ ڈائیلاگ میں سب یکساں دکھتے ہیں۔ پروفائل کو دوبارہ چھونے سے پہلے کوڈ کو اس مرحلے کے سامنے رکھیں جس کا وہ ہے:
| What you see | Stage that failed | Check first |
|---|---|---|
| Nothing happens, then a timeout | No IKE response at all | Server address, UDP 500 and 4500 reachability, NAT traversal on the gateway |
| Error 789 | IKE security exchange | Proposal, pre-shared key, certificate trust and client clock |
| Error 691 or a repeated password prompt | User authentication | Account state, domain, RADIUS or NPS policy |
| Tunnel up, some hosts unreachable | Routing or DNS after PPP | Split-tunnel routes, pushed DNS, remote subnet mask |
یہاں اسناد کے دو کردار اہم ہیں۔ پہلے سے مشترکہ چابی یا سرٹیفکیٹ فریقین کو ایک دوسرے کے سامنے تصدیق کرتا ہے، جبکہ MSChapv2 یا EAP آپ کو سرنگ کے اندر تصدیق کرتا ہے۔ صارف کا پاس ورڈ ری سیٹ کرنا پہلے کو درست نہیں کر سکتا، نیا مشترکہ راز دوسرے کو درست نہیں کر سکتا، اور دونوں کو ایک ساتھ بدلنا اس بات کا ثبوت مٹا دیتا ہے کہ کون سا غلط تھا۔
سرٹیفکیٹ کے راستے پر، توثیق نرم کرنے پر غور کرنے سے پہلے کلائنٹ کی گھڑی، اعتماد کا سلسلہ اور وہ شناخت جانچیں جس کی گیٹ وے توقع کرتا ہے۔ توثیق بند کرنا نظر آنے والی 789 کو ایسی سرنگ میں بدل دیتا ہے جو غلط فریق پر بھروسہ کرتے ہوئے جڑتی ہے، اور کلائنٹ میں کچھ بھی آپ کو نہیں بتائے گا کہ ایسا ہوا۔ Microsoft کی دور دراز رسائی کی خرابیوں کی فہرست خود کوڈوں کے لیے حوالہ ہے، اور یہ سیکیورٹی پرت کی ناکامیوں کو لاگ ان ناکامیوں سے الگ کرتی ہے۔
درست ہوا کہنے سے پہلے دونوں سروں سے تصدیق کریں
پروفائل واپس پڑھیں، لیکن آؤٹ پٹ میں تجویز کی توقع نہ رکھیں۔ Get-VpnConnection نام، سرور کا پتہ، سرنگ کی قسم، انکرپشن کی سطح اور تصدیق کا طریقہ بتاتا ہے، اور تبدیلیوں کے بارے میں کچھ نہیں جانتا، اس لیے پڑھنا تصدیق کرتا ہے کہ اندراج موجود ہے اور درست ہوسٹ کی طرف اشارہ کرتا ہے:
Get-VpnConnection -Name "Contoso L2TP" |
Select-Object Name, ServerAddress, TunnelType, EncryptionLevel, AuthenticationMethod
ڈائیلاگ کے بجائے نمبر حاصل کرنے کے لیے کمانڈ لائن سے ڈائل کریں: rasdial "Contoso L2TP" وہی ناکامی کوڈ دیتا ہے جو انٹرفیس دیتا، اور rasdial "Contoso L2TP" /disconnect کوششوں کے درمیان اسے صاف کرتا ہے۔ پھر اسی کوشش کے لیے گیٹ وے کا رخ پڑھیں۔ strongSwan کا ipsec statusall یا راؤٹر کا IKE لاگ بتاتا ہے کہ کون سی تجویز آئی اور کون سی مسترد ہوئی، اور اس کا cmdlet اقدار سے موازنہ کرنا ہی واحد قدم ہے جو واقعی ثابت کرتا ہے کہ دونوں سرے متفق ہوئے۔
کامیاب کنکشن آخری لکیر نہیں ہے۔ وہ ایپ کھولیں جو صارف کے لیے اہم ہے، کیونکہ راستے، دھکیلے گئے DNS اور تقسیم شدہ سرنگ کی ترتیبات سرنگ بلند ہونے کے بعد ناکام ہوتی ہیں اور کوئی خرابی ڈائیلاگ پیدا نہیں کرتیں۔
اسے خودکار کریں، اور صاف طور پر واپس جائیں
غیر نگرانی شدہ سیٹ اپ ہی اسے اسکرپٹ کرنے کی وجہ ہے، اور ڈائل کا مرحلہ وہ جگہ ہے جہاں اسناد رستی ہیں۔ rasdial انہیں اپنی کمانڈ لائن پر لیتا ہے، جہاں دیگر مقامی صارفین اور زیادہ تر لاگ جمع کرنے والے انہیں پڑھ سکتے ہیں:
subprocess.run(["rasdial", "Contoso L2TP"], check=True)
کام چلانے والے اکاؤنٹ تک محدود اسناد کو ترجیح دیں، یا شیڈول شدہ کام میں پاس ورڈ کو دلیل کے طور پر دینے کے بجائے پروفائل کو -RememberCredential کے ساتھ اسے محفوظ کرنے دیں۔ پروویژننگ کمانڈز خود -Force کے ساتھ دہرانے کے لیے محفوظ ہیں، لیکن وہ پرانی تجویز کو خوشی سے اوپر لکھ دیں گی، اس لیے دوبارہ چلانا صرف اس صورت میں مدد کرتا ہے جب اسکرپٹ موجودہ اقدار رکھتی ہو۔
پروفائلز دوبارہ آغاز کے باوجود قائم رہتے ہیں اور جس گیٹ وے ترتیب کے لیے بنائے گئے تھے اس سے زیادہ زندہ رہتے ہیں۔ جب گیٹ وے کی تجویز حرکت کرے تو اقدار کا دوسرا مجموعہ اوپر تہہ کرنے کے بجائے اندراج ہٹا دیں اور اسے دوبارہ بنائیں: Remove-VpnConnection -Name "Contoso L2TP" -Force، پھر نئے مجموعے کے ساتھ دونوں cmdlet دہرائیں۔
اسکرپٹ کے پاس رہنے والی چار جانچوں سے حلقہ بند کریں: Get-VpnConnection متوقع سرنگ کی قسم اور انکرپشن کی سطح دکھاتا ہے؛ گیٹ وے آپ کے کلائنٹ پتے کے لیے مکمل شدہ مرحلہ 1 اور مرحلہ 2 لاگ کرتا ہے؛ rasdial کامیابی لوٹاتا ہے اور ایپ کھلتی ہے؛ اور اسکرپٹ میں درج تجویز موجودہ گیٹ وے ترتیب سے میل کھاتی ہے۔ جب اگلی 789 آئے تو وہ موازنہ دوپہر کے بجائے چند منٹ لیتا ہے۔