OpenVPN، OpenConnect و Tailscale

نمایه‌های OpenVPN، OpenConnect و Tailscale را وارد و تنظیم کنید، با کدهای یک‌بارمصرف وارد شوید و VPN محل کار را کنار پروکسی خود اجرا کنید.

Throne به سرورهای OpenVPN و به VPNهای Cisco AnyConnect و سازگار با آن (OpenConnect) وصل می‌شود و به شبکه‌های Tailscale می‌پیوندد. کلاینت‌های VPN درون هسته ساخته شده‌اند؛ بنابراین نیازی به نصب OpenVPN یا OpenConnect ندارید.

OpenVPN

یک فایل .ovpn را با برنامه (Program) ← Add profile from File(s) (Ctrl+O) وارد کنید، یا آن را روی پنجرهٔ اصلی بکشید.

  • فقط نمایه‌های کلاینت با dev tun کار می‌کنند. نمایه‌های TAP و پیکربندی‌های سرور رد می‌شوند.
  • بسته‌های PKCS#12 پشتیبانی نمی‌شوند. CA، گواهی و کلید را به‌صورت PEM خروجی بگیرید و آن‌ها را در CA Certificate، Client Certificate و Client Key جای‌گذاری کنید.
  • اگر فایل، اطلاعات ورود را از فایل جداگانه‌ای می‌خواند (auth-user-pass)، Username و Password را در نمایه وارد کنید.
  • گزینه‌هایی که Throne نمی‌تواند از آن‌ها استفاده کند در گزارش فهرست می‌شوند.

OpenConnect

Flavor نوع سرور را انتخاب می‌کند: خالی یا anyconnect (Cisco AnyConnect و سرورهای سازگار با آن)، gp (Palo Alto GlobalProtect)، fortinet، f5 (F5 BIG-IP)، pulse (Pulse Connect Secure) یا nc (Juniper Network Connect).

Throne نمایه‌های XML مربوط به AnyConnect (یک نمایه برای هر سرور)، خط‌های فرمان openconnect مانند openconnect --protocol=gp --user=alice vpn.example.com و فایل‌های پیکربندی دارای خط protocol= را از فایل، کلیپ‌بورد یا اشتراک وارد می‌کند.

Auth Group یک گروه، realm یا gateway را از پیش انتخاب می‌کند. برخی پورتال‌های GlobalProtect، F5 و Fortinet به بخش مسیر URL خود در Server Path نیاز دارند.

گزینه‌های مشترک هر دو نوع VPN

  • Only route advertised network (به‌طور پیش‌فرض روشن): فقط ترافیک به‌سوی شبکه‌هایی که سرور VPN اعلام می‌کند وارد تونل می‌شود؛ ترافیک دیگری که به نمایه برسد مسدود می‌شود. برای VPNی که باید همهٔ ترافیک را حمل کند، آن را خاموش کنید. فایل .ovpn دارای redirect-gateway هنگام وارد شدن آن را خاموش می‌کند.
  • Tunnel DNS: Prefer (پیش‌فرض) فقط نام‌هایی را که سرور ادعا می‌کند (دامنه‌های split-DNS آن) از راه سرورهای DNS مربوط به VPN تفکیک می‌کند. Strict همهٔ پرس‌وجوهای DNS راه‌دور را هم به آن‌ها می‌فرستد؛ بنابراین نام‌هایی که آن‌ها نمی‌توانند پاسخ دهند ناموفق می‌شوند. None آن‌ها را نادیده می‌گیرد.

ورود به حساب

Throne با Username و Password ذخیره‌شده وارد می‌شود. وقتی سرور اطلاعات بیشتری بخواهد، پنجرهٔ VPN Authentication باز می‌شود:

  • یک پرسش یا فرم، برای مثال یک گذرواژهٔ دوم: آن را پر کنید و روی Submit کلیک کنید.
  • یک صفحهٔ ورود: روی Open in Browser کلیک کنید، در مرورگر وارد شوید و سپس پنجره را ببندید.
  • ورود یکپارچه (SSO) که فقط درون مرورگر کار می‌کند هنوز پشتیبانی نمی‌شود. از نام کاربری و گذرواژه استفاده کنید، یا برای OpenConnect، یک Cookie نشست را در تنظیمات Advanced نمایه وارد کنید.

اگر سرور اطلاعات ورود ذخیره‌شده را رد کند، Throne اطلاعات ورود را فقط برای همین نشست می‌پرسد. زبانهٔ Runtime Stats (فقط در حالت پیشرفته؛ حالت ساده و پیشرفته را ببینید) وضعیت هر اتصال VPN را نشان می‌دهد.

مدیر OTP (OTP Manager)

بسیاری از VPNهای محل کار یک کد یک‌بارمصرف از یک برنامهٔ احراز هویت (authenticator) می‌خواهند. Throne برنامهٔ احراز هویت خودش را دارد: Tools → OTP Manager (فقط در حالت پیشرفته).

  • افزودن مورد با Import → From link or text... (لینک‌های otpauth://، خروجی otpauth-migration:// از Google Authenticator، JSON یا یک secret با قالب Base32)، Add manually...، From clipboard یا From QR image file.... Scan QR Code یک کد QR را روی صفحه‌نمایش شما پیدا می‌کند.
  • کپی کردن کد با کلیک روی مورد، یا از OTP Codes در منوی سینی سیستم (tray).
  • Delete یک مورد را برای همیشه حذف می‌کند.

موارد OTP بخشی از نسخه‌های پشتیبان هستند (OTP profiles)؛ بنابراین فایل‌های پشتیبان را خصوصی نگه دارید.

استفاده از کد در نمایهٔ VPN

  1. نمایهٔ OpenVPN یا OpenConnect را باز کنید و در OTP، مورد مربوط را انتخاب کنید.
  2. اگر سرور کد را به‌عنوان بخشی از گذرواژه انتظار دارد، {otp} را جای کد بگذارید، برای مثال MyPassword{otp}. در OpenConnect، {otp} در فیلدهای software token و فیلدهای فرم هم کار می‌کند.
  3. روی تایید (OK) کلیک کنید.

اکنون Throne در هر اتصال یک کد تازه وارد می‌کند و خودش به درخواست‌های کد سرور پاسخ می‌دهد. برای static challenge در OpenVPN، متن challenge را در Static Challenge وارد کنید.

تونل تفکیکی: VPN محل کار در کنار پروکسی

یک نمایهٔ مسیریابی می‌تواند نمایه‌های OpenVPN یا OpenConnect را در کنار نمایه‌ای که اجرا می‌کنید راه‌اندازی کند. ترافیک به‌سوی شبکه‌هایی که VPN اعلام می‌کند از راه VPN می‌رود؛ بقیهٔ ترافیک از نمایهٔ مسیریابی پیروی می‌کند.

  1. مسیریابی (Routing) ← تنظیمات مسیریابی (Routing Settings) ← مسیر (Route) را باز کنید، نمایهٔ مسیریابی‌ای را که استفاده می‌کنید انتخاب کنید و روی Edit کلیک کنید.
  2. در زبانهٔ Endpoints (فقط در حالت پیشرفته)، نمایهٔ VPN را انتخاب کنید و روی Add و سپس تایید (OK) کلیک کنید. این زبانه وقتی نمایش داده می‌شود که یک نمایهٔ OpenVPN یا OpenConnect داشته باشید.
  3. مطمئن شوید که این نمایهٔ مسیریابی فعال است، سپس نمایهٔ معمولی خود را اجرا کنید. VPN همراه با آن راه‌اندازی می‌شود.

هر نقطهٔ پایانی (endpoint) یک قانون … route prefer به زبانهٔ پیشرفته (Advanced) اضافه می‌کند. فقط می‌توانید آن را جابه‌جا کنید: قوانین بالای آن زودتر بررسی می‌شوند.

  • نمایه‌ای که به‌عنوان نقطهٔ پایانی استفاده می‌شود، نمی‌تواند همان نمایه‌ای باشد که اجرا می‌کنید یا یکی از هاپ‌های آن.
  • نقطهٔ پایانی می‌تواند زنجیره‌ای باشد که هاپ خروجی آن یک نمایهٔ OpenVPN یا OpenConnect است. Allow routing to inner hops چنین هاپ‌هایی را درون زنجیره هم مسیریابی می‌کند.
  • هاپ‌های نقطهٔ پایانی نمی‌توانند روی Xray اجرا شوند و نمی‌توانند نمایهٔ هستهٔ اضافی (Extra Core) یا نمایهٔ پیکربندی کامل باشند.

برای یک نمونهٔ کامل، دستورالعمل‌های کاربردی را ببینید.

Tailscale

نمایهٔ Tailscale به tailnet شما می‌پیوندد تا بتوانید به دستگاه‌های Tailscale خود دسترسی داشته باشید یا از یکی از آن‌ها به‌عنوان گرهٔ خروجی (exit node) استفاده کنید. آن را با برنامه (Program) ← نمایه جدید (New profile) ← نوع (Type) Tailscale بسازید:

فیلد کاربرد
Auth key کلید ورود به tailnet شما، از کنسول مدیریت Tailscale.
Control URL فقط برای سرور کنترلی که خودتان میزبانی می‌کنید آن را تغییر دهید.
Hostname نام این دستگاه در tailnet.
Exit node دستگاهی در tailnet که ترافیک اینترنت از راه آن فرستاده می‌شود. Exit node allow lan access دسترسی به شبکهٔ محلی را حفظ می‌کند.
Accept routes از مسیرهای زیرشبکه‌ای که دستگاه‌های دیگر اعلام می‌کنند استفاده می‌کند.
Advertise exit node، Advertise routes این رایانه را به‌عنوان گرهٔ خروجی، یا زیرشبکه‌هایی را (جداشده با کاما) پیشنهاد می‌کند.
Ephemeral tailnet این دستگاه را پس از آفلاین شدنش حذف می‌کند.
State directory، Global DNS محل ذخیرهٔ وضعیت ورود ($HOME/.tailscale)، و اینکه DNS مربوط به Tailscale از سرورهای نام سراسری tailnet هم استفاده کند یا نه.

Throne نام‌های tailnet (زیر ts.net) را با DNS مربوط به Tailscale و نام‌های دیگر را با تنظیمات DNS معمول شما تفکیک می‌کند. تست URL و انتخابگر خودکار (auto selector) از نمایه‌های Tailscale صرف‌نظر می‌کنند.

Android

  • نمایه‌های OpenVPN و OpenConnect با همان قالب‌های وارد کردن کار می‌کنند، اما بدون OTP، Only route advertised network و Tunnel DNS. آن‌ها باید با نام کاربری و گذرواژهٔ ذخیره‌شده وارد شوند. موارد OTP از نسخهٔ پشتیبان دسکتاپ بازیابی نمی‌شوند.
  • نقطه‌های پایانی نمایهٔ مسیریابی (تونل تفکیکی) اجرا نمی‌شوند. نمایهٔ مسیریابی‌ای که از نسخهٔ پشتیبان دسکتاپ آمده آن‌ها را نگه می‌دارد، اما Android آن‌ها را راه‌اندازی نمی‌کند.
  • نمایه‌های Tailscale پشتیبانی نمی‌شوند. در هر دو پلتفرم، انتخابگر خودکار از نمایه‌های OpenVPN و OpenConnect صرف‌نظر می‌کند.