آیا میتوان پیکربندی WireGuard را به OpenVPN تبدیل کرد؟
نمیتوانید نام یک فایل WireGuard را به پروفایل OpenVPN تغییر دهید. طرف مقابل باید همان پروتکل را صحبت کند، پس راهحل یک پروفایل متناسب است، نه یک مبدل.
شما یک wg0.conf دارید و کلاینتی که فقط .ovpn را میپذیرد، پس کسی پیشنهاد میکند فایل را تبدیل کنید. تغییر نام، پروفایلی میسازد که OpenVPN نمیتواند آن را تجزیه کند، و ترجمهٔ دقیق میدانبهمیدان پروفایلی میسازد که تجزیه میشود و سپس در دستدادن شکست میخورد. دلیلش قالب فایل نیست. WireGuard و OpenVPN پروتکلهای متفاوتی با دستدادنهای متفاوت، مدلهای احراز هویت متفاوت و برداشتهای متفاوت از چیستی peer هستند. تبدیل فقط به این معنا کار میکند که میتوانید پروفایل OpenVPN را از کسی که طرف مقابل را اداره میکند بگیرید.
فایلی که دارید یک peer را توصیف میکند، نه پروفایل اتصال را
پیکربندی WireGuard کوتاه است چون پروتکل چنین است: یک واسط با کلید خصوصی و نشانیها، سپس یک یا چند peer با کلید عمومی، یک endpoint و فهرست AllowedIPs. هیچ لایهٔ مذاکرهای برای تنظیم و هیچ مجموعهٔ رمزنگاریای برای انتخاب وجود ندارد.
پروفایل OpenVPN کلاینتی برای کانال کنترل مبتنی بر TLS است، و به همین دلیل ارجاعهایی به گواهیها یا اعتبارنامهها و دستورهایی دارد که نحوهٔ احراز هویت را توصیف میکنند.
چرا فایل ترجمهشده باز هم در دستدادن شکست میخورد
WireGuard با دستدادنی مبتنی بر Noise آغاز میشود که با کلیدهای ثابت peerها کلید میخورد، و تا زمانی که کلید عمومی peer از پیش شناخته نشده باشد ساکت میماند. OpenVPN یک نشست TLS باز میکند، گواهی سرور یا کلید ثابت را بررسی میکند و سپس کاربر را با گواهیها، نام کاربری و گذرواژه یا هر دو احراز هویت میکند. هیچچیز در فایل WireGuard اینها را توصیف نمیکند. فایل ترجمهشده endpoint درست و همهچیز دیگر را نادرست حمل میکرد.
استفادهٔ دوباره از نشانی و درگاه هم کمکی نمیکند، چون طرف مقابل منتظر بستهٔ دیگری است.
از ارائهدهنده چه بپرسید
اگر ارائهدهنده فایل WireGuard را داده است، بپرسید آیا همان حساب دسترسی OpenVPN دارد و همان پروفایل را بخواهید. بسیاری دارند، و با اعتبارنامههای خودش میآید نه بهعنوان نسخهٔ تغییریافتهٔ اولی.
اگر پاسخ منفی است، محدودیت در اشتراک است نه در فایل، و هیچ مبدلی آن را تغییر نمیدهد.
اگر روتر یا کلاینت فقط OpenVPN میداند
وقتی دستگاهی که باید متصل شود فقط OpenVPN را پشتیبانی میکند، پیش از جستوجوی افزونهٔ دیگر، پشتیبانی مستند پروتکل در طرف مقابل را بررسی کنید. روتری که OpenVPN را پایان میدهد با وارد کردن یک فایل راضی نمیشود WireGuard را بپذیرد. گزینههای عملی یک endpoint OpenVPN در سمت سرور است، یا دستگاه دیگری که WireGuard میداند.
بر اساس اینکه طرف مقابل را چه کسی اداره میکند انتخاب کنید، نه بر اساس اینکه چه فایلی دارید.
اگر سرور را خودتان اداره میکنید، پروتکل را اضافه کنید
پشتیبانی از پروتکل دوم یعنی اجرای سرویس دوم. روی سرور Linux آن یک نمونهٔ OpenVPN با CA خودش، گواهی سرور، گواهیهای کلاینت و دستورهای server و push است، همراه با قاعدهٔ دیوار آتش برای درگاهش. ورودی peer موجود در WireGuard هیچیک از این اشیا را توصیف نمیکند. استخر نشانی و مسیرهای هلدادهشده را جدا از AllowedIPs در WireGuard برنامهریزی کنید، چون آنها یک سازوکار با دو نام نیستند.
سپس از کلاینت بررسی کنید: پروفایل بارگذاری میشود، نشست TLS کامل میشود، مسیر هلدادهشده ظاهر میشود و ترافیک به میزبانی میرسد که فقط از تونل قابل دسترسی است.
کجا ایدهٔ مبدل بیخطر است
ترجمهٔ دستی مقادیر به یادداشت خوب است و اغلب سودمند، چون endpoint، نشانیها و کلید عمومی peer فقط واقعیتهای استقرار هستند. بارگذاری کلید خصوصی در وبگاهی که وعدهٔ تبدیل میدهد خوب نیست، چون آن کلید همان اعتبارنامه است و سرویس هیچ پروتکلی برای تبدیل آن ندارد. اگر به همان دسترسی از کلاینت OpenVPN نیاز دارید، بهجایش اعتبارنامهٔ OpenVPN بخواهید.
دو پیکربندی را کنار هم نگه دارید و آنها را مسیرهای دسترسی جداگانه بدانید، چون همین هستند.