آیا ارتقای Ubuntu اتصال L2TP/IPsec را خراب کرد؟ پیشنهادهای IKEv1 را مقایسه کنید
پروفایل و گذرواژه تغییر نکردند، اما فاز 1 اکنون شکست میخورد. پیشنهادهای قابلقبول کلاینت جابهجا شدهاند، و سرور هنوز همان چیزی را ارائه میدهد که همیشه ارائه میداد.
اتصال پنجشنبه کار میکرد، ارتقا جمعه اجرا شد، و دوشنبه کلاینت روی “connecting” میچرخد و رها میکند. همان لپتاپ، همان سرور، همان حساب، همان کلید از پیش اشتراکگذاشتهشده. هیچ چیز در پروفایل ویرایش نشده بود، به همین دلیل مظنونهای واضح، یعنی گذرواژه و فایروال، وقت شما را تلف میکنند.
چیزی که تغییر کرده فهرست تبدیلهایی است که ماشین شما حاضر است ارائه دهد. هر دو پشته IPsec که در Ubuntu استفاده میشوند، یعنی strongSwan و Libreswan، الگوریتمهایی را که دیگر امن نمیدانند حذف میکنند، و افزونه NetworkManager که جلوی آنها قرار دارد فهرست خودش را دارد که با زمانبندی متفاوتی حرکت میکند. سروری که به 3DES و SHA1 و گروه Diffie-Hellman با 1024 بیت سنجاق شده است ممکن است در نهایت هیچچیزی را که میپذیرد نشنود.
ارتقا در واقع چه چیزی را تغییر داد
دو لایه پیشنهاد IKEv1 را تغذیه میکنند. دیمن یک مجموعه پیشنهاد پیشفرض کامپایلشده عرضه میکند، و افزونه L2TP یا به آن تکیه میکند یا فهرست خودش را ارائه میدهد. پیش از NetworkManager-l2tp 1.2.16 افزونه به آن تکیه میکرد، پس پیشنهاد شما همان چیزی بود که دیمن نصبشده معقول میدانست. از 1.2.16 به بعد افزونه فهرستی مستند را میفرستد که بر اساس کلاینتهای Windows و Apple مدل شده است، و آن فهرست از پیشفرض قدیمی گستردهتر است اما دیگر هر ترکیب قدیمی را در ابتدای صف ندارد.
این جدایی الگویی از شکست را توضیح میدهد که مردم آن را گیجکننده مییابند: دو ماشین روی یک نسخه Ubuntu میتوانند رفتار متفاوتی داشته باشند چون یکی بسته توزیع را دارد و دیگری یک backport، و نسخه دیمن روی هر دو در یک گزارش خطا یکسان به نظر میرسد. پیش از آنکه نتیجه بگیرید ارتقا هیچ چیز مرتبطی را تغییر نداده است، نسخه افزونه را بررسی کنید، نه فقط نسخه دیمن را.
تله کوچکتری در همان ناحیه وجود دارد. دو دیمن گروههای Diffie-Hellman خم بیضوی را متفاوت مینویسند، یکی ecp384 و دیگری ecp_384. املای نادرست را در گفتوگوی Advanced جایگذاری کنید و دیمن تنظیم را بهعنوان غیرقابلتجزیه رد میکند، که در گزارش بهصورت مشکل مذاکره ظاهر میشود نه اشتباه تایپی در پیکربندی.
پیش از تغییر هر چیز، شکست را بخوانید
با این شروع کنید که کدام بکاند را اجرا میکنید، چون پاسخ هم نحو و هم محل گزارش را تعیین میکند.
ipsec --version
nmcli connection show "Your VPN name" | grep -i ipsec
سپس خود تبادل را بخوانید. در strongSwan دیمن در نسخه کنونی به journal و در نسخه قدیمیتر به /var/log/syslog مینویسد، و بخش جالب پیشنهادی است که میفرستد، نه خط آخر. شما به دنبال عبارتی درباره نبودن پیشنهاد منطبق هستید، که مشکل الگوریتم است؛ یا شکست احراز هویت، که به کلید یا حساب اشاره میکند؛ یا یک وقفه ساده، که به دسترسپذیری اشاره میکند.
این سه نتیجه اغلب بهعنوان یک نشانه درمان میشوند. وقفهای با گزارش خالی دیمن یعنی بستهها نمیرسند. رد پیشنهاد یعنی رسیدهاند و رد شدهاند. اگر گزارش شما ساکت است، سطح اشکالزدایی افزونه را برای یک تلاش بالا ببرید و بعد پایین بیاورید، چون خروجی مفصل گزارش را سریع پر میکند.
فاز 1 و فاز 2 شرطبندیهای جداگانهاند
IKEv1 دو بار مذاکره میکند. حالت اصلی انجمن امنیتی IKE را از یک الگوریتم رمزنگاری، یک الگوریتم یکپارچگی، یک گروه Diffie-Hellman و یک روش احراز هویت میسازد. سپس حالت سریع انجمن ESP را میسازد که L2TP را حمل خواهد کرد. سرور آزاد است اولی را بپذیرد و دومی را رد کند، پس پروفایل نیمهدرست دیرتر از آنچه انتظار دارید شکست میخورد و شبیه خطای دیگری به نظر میرسد.
Phase 1: 3des-sha1-modp1024!
Phase 2: 3des-sha1!
علامت تعجب در نحو strongSwan یعنی ورودی سختگیرانه: فقط همین یک ترکیب را ارائه بده و هیچ چیز دیگر. بدون آن، ورودی به یک فهرست پشتیبان میپیوندد، که وقتی همتا مدرن است خوب است و وقتی دستگاهی با یک سیاست سختکد است زیانآور. جفت بالا را نمونهای از شکل بدانید، نه توصیهای برای هر چیزی که امروز میسازید.
یک فیلد را تغییر دهید، سپس آزمون را تکرار کنید
در افزونه کنونی، سریعترین آزمون اول این است که هر دو فیلد پیشنهاد را کاملاً پاک کنید و دوباره وصل شوید، چون فهرست پیشفرض عرضهشده از قبل ترکیبهای رایج Windows و Apple را دارد. در افزونه قدیمیتر، پاک کردن آنها کنترل را به دیمنی برمیگرداند که ممکن است الگوریتمی را که سرور شما اصرار دارد حذف کرده باشد، و شکست بدتر میشود.
اگر پاک کردن کمکی نکرد، جفت سختگیرانهای را که سرور شما مستند میکند تنظیم کنید، یک فاز در هر بار. فاز 1 را تغییر دهید، دوباره وصل شوید و پیش از دست زدن به فاز 2 گزارش را بخوانید. وقتی ترکیبی سرانجام کار کرد، آن را کنار مدل سرور و نسخه افزونه بنویسید، چون پیشفرضها دوباره جابهجا خواهند شد و همان یادداشت است که ارتقای بعدی را به بررسی پنجدقیقهای تبدیل میکند.