OpenVPN، OpenConnect و Tailscale
نمایههای OpenVPN، OpenConnect و Tailscale را وارد و تنظیم کنید، با کدهای یکبارمصرف وارد شوید و VPN محل کار را کنار پروکسی خود اجرا کنید.
Throne میتواند به سرورهای OpenVPN و به VPNهای Cisco AnyConnect و سازگار با آن (OpenConnect) وصل شود و به یک شبکهٔ Tailscale بپیوندد. کلاینتهای VPN درون هسته ساخته شدهاند؛ بنابراین نیازی به نصب OpenVPN یا OpenConnect ندارید. این صفحه وارد کردن، گزینههای اصلی، ورود با کدهای یکبارمصرف و اجرای VPN محل کار در کنار پروکسی را پوشش میدهد.
OpenVPN
یک فایل .ovpn را به یکی از این روشها وارد کنید:
برنامه(Program) ←Add profile from File(s)(Ctrl+O).- فایل را بکشید و روی پنجرهٔ اصلی رها کنید.
- متن فایل را کپی کنید و در پنجرهٔ اصلی
Ctrl+Vرا بزنید.
برای ساختن دستی نمایه، از برنامه (Program) ← نمایه جدید (New profile) استفاده کنید و نوع (Type) را روی OpenVPN بگذارید.
نکتههایی دربارهٔ وارد کردن:
- فقط نمایههای کلاینت برای
dev tunکار میکنند. نمایههای TAP (dev tap) و پیکربندیهای سرور رد میشوند. - بستههای PKCS#12 (
pkcs12) پشتیبانی نمیشوند. CA، گواهی و کلید را بهصورت PEM خروجی بگیرید، سپس آنها را درCA Certificate،Client CertificateوClient Keyجایگذاری کنید. - اگر فایل، اطلاعات ورود را در فایل جداگانهای نگه میدارد (
auth-user-pass <file>)،UsernameوPasswordرا در نمایه وارد کنید. - گزینههای ناشناخته یا پشتیبانینشده در گزارش، در خطهایی که با
OpenVPN:شروع میشوند، فهرست میشوند. گزینههایی که به Throne مربوط نیستند، مانند اسکریپتهایupوdownیاpersist-tun، بدون پیام نادیده گرفته میشوند. - اگر فایل همهٔ ترافیک را از راه VPN بفرستد (
redirect-gateway)، Throne گزینهٔOnly route advertised networkرا برای نمایه خاموش میکند.
ویرایشگر همچنین Network (خالی یعنی udp)، Static Challenge، MTU، OTP، Tunnel DNS، فایلهای TLS و Control Channel Wrap را برای کلیدهای tls-auth و tls-crypt دارد. Advanced گزینههای بیشتری را باز میکند.
OpenConnect
Flavor در نمایه، نوع سرور را انتخاب میکند:
Flavor |
نوع سرور |
|---|---|
خالی یا anyconnect |
Cisco AnyConnect و سرورهای سازگار با آن |
gp |
Palo Alto GlobalProtect |
fortinet |
Fortinet |
f5 |
F5 BIG-IP |
pulse |
Pulse Connect Secure |
nc |
Juniper Network Connect |
Throne این قالبها را از فایل، کلیپبورد یا اشتراک وارد میکند:
- فایل نمایهٔ XML مربوط به AnyConnect. هر سرور در
<ServerList>آن به یک نمایه تبدیل میشود. سرورهایی که از IPsec (IKEv2) استفاده میکنند و موارد بدون نشانی، با یک یادداشت نادیده گرفته میشوند. - یک خط فرمان
openconnect، برای مثالopenconnect --protocol=gp --user=alice vpn.example.com. - یک فایل پیکربندی با یک گزینه در هر خط که یک خط
protocol=دارد، مانندprotocol=fortinet.
فیلدهای اصلی دیگر عبارتاند از Username، Password، Auth Group (یک گروه، realm یا gateway را از پیش انتخاب میکند)، Server Path (بخش مسیر در URL سرور که برخی پورتالهای GlobalProtect، F5 و Fortinet به آن نیاز دارند)، MTU، OTP و گزینههای TLS. Advanced گزینههای بیشتری دارد، برای مثال Cookie نشست (session) و Software Token.
گزینههای مشترک هر دو نوع VPN
| تنظیم | پیشفرض | کاربرد |
|---|---|---|
Only route advertised network |
روشن | وقتی این نمایه را اجرا میکنید، فقط ترافیک بهسوی شبکههایی که سرور VPN اعلام میکند وارد تونل میشود. ترافیک دیگری که به نمایه برسد مسدود میشود. قوانین مسیریابیای که نام این نمایه را آوردهاند تحت تأثیر قرار نمیگیرند. برای یک VPN که باید همهٔ ترافیک را حمل کند، آن را خاموش کنید. |
Tunnel DNS |
Prefer |
نحوهٔ استفادهٔ Throne از سرورهای DNS که سرور VPN میفرستد. None: آنها را نادیده میگیرد. Prefer: فقط نامهایی را که سرور ادعا میکند (دامنههای split-DNS آن) از راه آنها تفکیک میکند. Strict: علاوه بر آن، همهٔ پرسوجوهای DNS راهدور را هم به آنها میفرستد و نامهایی را که آنها نمیتوانند پاسخ دهند ناموفق میکند. |
Username، Password |
خالی | اطلاعات ورود. {otp} در این فیلدها به یک کد یکبارمصرف تبدیل میشود؛ استفاده از کد در نمایهٔ VPN را ببینید. |
برای نقطهٔ پایانی (endpoint) یک نمایهٔ مسیریابی، Prefer و Strict هر دو فقط نامهایی را که سرور ادعا میکند تفکیک میکنند.
ورود به حساب
Throne با Username و Password ذخیرهشده وارد میشود. وقتی سرور اطلاعات بیشتری بخواهد، پنجرهٔ VPN Authentication باز میشود:
- یک پرسش یا فرم، برای مثال یک گذرواژهٔ دوم: آن را پر کنید و روی
Submitکلیک کنید. برخی درخواستها یک محدودیت زمانی نشان میدهند: «Expires in …» (تا … دیگر منقضی میشود). - یک صفحهٔ ورود: پنجره یک نشانی و دکمهٔ
Open in Browserرا نشان میدهد. در مرورگر وارد شوید، سپس پنجره را ببندید. اتصال پس از آنکه سرور ورود را بپذیرد ادامه مییابد. - ورود یکپارچه (SSO) که فقط درون مرورگر کار میکند هنوز پشتیبانی نمیشود. از ورود با نام کاربری و گذرواژه استفاده کنید، یا برای OpenConnect، یک
Cookieنشست را در تنظیماتAdvancedنمایه وارد کنید.
اگر سرور اطلاعات ورود ذخیرهشده را رد کند، Throne برای این نشست نام کاربری و گذرواژه میخواهد و گزینهٔ Reconnect را پیشنهاد میدهد. این اطلاعات در نمایه ذخیره نمیشوند و وقتی خودتان نمایه را متوقف کنید، Throne آنها را فراموش میکند. Throne حداکثر سه بار میپرسد.
زبانهٔ Runtime Stats در پایین پنجرهٔ اصلی، هر اتصال VPN را همراه با وضعیت آن و یک دکمهٔ Details فهرست میکند.
مدیر OTP (OTP Manager)
بسیاری از VPNهای محل کار یک کد یکبارمصرف از یک برنامهٔ احراز هویت (authenticator) میخواهند. از نسخهٔ 1.3.0، Throne برنامهٔ احراز هویت خودش را دارد: Tools → OTP Manager.
افزودن موارد:
Import→Add manually...: یکNameوSecret(با قالب Base32) وارد کنید.Type(TOTP (time based)یاHOTP (counter based))،Algorithm،Digits(4 تا 10، پیشفرض 6) یاPeriod (seconds)(پیشفرض 30) را فقط در صورتی تغییر دهید که ارائهدهندهٔ شما بگوید. پنجره کد فعلی را نشان میدهد تا بتوانید آن را با برنامهٔ احراز هویت دیگرتان مقایسه کنید.Import→From link or text...: لینکهایotpauth://، یک لینکotpauth-migration://(قالب خروجی Google Authenticator)، یک خروجی JSON یا فقط یک secret با قالب Base32 را جایگذاری کنید.Import→From clipboard(یاCtrl+Vدر پنجره)، یاFrom QR image file....Scan QR Codeیک کد QR را روی صفحهنمایش شما پیدا میکند.
استفاده از موارد:
- روی یک مورد کلیک کنید تا کد فعلی آن کپی شود.
- برای تغییر ترتیب موارد، آنها را بکشید.
Exportروی هر مورد، گزینههایThis one as otpauth:// link and QR،All as otpauth-migration:// link and QRوAll as JSON file...را پیشنهاد میدهد.Deleteیک مورد را حذف میکند. secret آن قابل بازیابی نیست.- منوی سینی سیستم (tray) گزینهٔ
OTP Codesرا دارد: فهرستی قابل جستوجو از همهٔ کدها. روی یک کد کلیک کنید تا کپی شود.
موارد OTP بخشی از نسخههای پشتیبان هستند: گزینهٔ OTP profiles در تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← Backup and Restore. فایلهای پشتیبان را خصوصی نگه دارید.
استفاده از کد در نمایهٔ VPN
- نمایهٔ OpenVPN یا OpenConnect را باز کنید.
- در
OTP، مورد مربوط را انتخاب کنید. - اگر سرور کد را بهعنوان بخشی از گذرواژه انتظار دارد،
{otp}را جای کد بگذارید، برای مثالMyPassword{otp}. در OpenConnect،{otp}در فیلدهای software token و فیلدهای فرم هم کار میکند. - روی
تایید(OK) کلیک کنید.
اکنون Throne در هر اتصال یک کد تازه وارد میکند. همچنین خودش به درخواستهای کد سرور پاسخ میدهد: challenge در OpenVPN (اگر سرورتان از static challenge استفاده میکند، متن challenge را در Static Challenge وارد کنید) و فرمهای ورود OpenConnect. اگر سرور یک کد را رد کند، Throne حداکثر سه بار کد جدیدی را امتحان میکند. اگر سرور کل ورود را رد کند، Throne بهجای پرسیدن از شما، نمایه را حداکثر سه بار با کد جدید دوباره راهاندازی میکند.
تونل تفکیکی: VPN محل کار در کنار پروکسی
از نسخهٔ 1.3.0، یک نمایهٔ مسیریابی میتواند نمایههای OpenVPN یا OpenConnect را در کنار نمایهای که اجرا میکنید راهاندازی کند. ترافیک بهسوی شبکههایی که سرور VPN اعلام میکند از راه VPN میرود. بقیهٔ ترافیک از نمایهٔ مسیریابی پیروی میکند، برای مثال از راه پروکسی شما.
- نمایهٔ VPN را وارد کنید یا بسازید.
مسیریابی(Routing) ←تنظیمات مسیریابی(Routing Settings) ← زبانهٔمسیر(Route) را باز کنید.- نمایهٔ مسیریابیای را که استفاده میکنید انتخاب کنید و روی
Editکلیک کنید. - زبانهٔ
Endpointsرا باز کنید. این زبانه فقط وقتی نمایش داده میشود که یک نمایهٔ OpenVPN یا OpenConnect، یا زنجیرهای که به یکی از آنها ختم میشود، داشته باشید. - نمایهٔ VPN را در فهرست انتخاب کنید و روی
Addکلیک کنید. - روی
تایید(OK) کلیک کنید و مطمئن شوید که این نمایهٔ مسیریابی، نمایهٔ فعال است؛ یعنی در پایین منویمسیریابی(Routing) تیک خورده باشد. - نمایهٔ معمولی خود را اجرا کنید. VPN همراه با آن راهاندازی میشود.
هر نقطهٔ پایانی (endpoint) یک قانون با نام <name> route prefer به زبانهٔ پیشرفته (Advanced) اضافه میکند که در آن <name> نام نمایهٔ VPN است. نمیتوانید این قانون را ویرایش کنید، اما میتوانید آن را میان قوانین خودتان جابهجا کنید: قوانین بالای آن زودتر بررسی میشوند. حذف این قانون میپرسد که آیا نقطهٔ پایانی هم حذف شود.
محدودیتها:
- نمایهای که بهعنوان نقطهٔ پایانی استفاده میشود، نمیتواند همان نمایهای باشد که اجرا میکنید یا یکی از هاپهای آن.
- نقطهٔ پایانی میتواند زنجیرهای باشد که هاپ خروجی آن (ردیف پایین زنجیره) یک نمایهٔ OpenVPN یا OpenConnect است.
Allow routing to inner hopsرا تیک بزنید تا برای هر هاپ OpenVPN یا OpenConnect درون زنجیره هم یک قانون ساخته شود. - هاپهای نقطهٔ پایانی نمیتوانند روی Xray اجرا شوند و نمیتوانند نمایهٔ هستهٔ اضافی (Extra Core) یا نمایهٔ پیکربندی کامل باشند.
برای یک نمونهٔ کامل، دستورالعملهای کاربردی را ببینید.
Tailscale
نمایهٔ Tailscale به tailnet شما میپیوندد تا بتوانید به دستگاههای Tailscale خود دسترسی داشته باشید یا از یکی از آنها بهعنوان گرهٔ خروجی (exit node) استفاده کنید. نمایههای Tailscale فقط در دسکتاپ وجود دارند.
برنامه(Program) ←نمایه جدید(New profile) را باز کنید.نوع(Type) را رویTailscaleبگذارید.- فیلدهای زیر را پر کنید.
Auth keyرا در کنسول مدیریت Tailscale میسازید. - روی
تایید(OK) کلیک کنید و نمایه را اجرا کنید.
| فیلد | پیشفرض | کاربرد |
|---|---|---|
State directory |
$HOME/.tailscale |
محل ذخیرهٔ وضعیت ورود. |
Auth key |
خالی | کلیدی که برای ورود به tailnet شما استفاده میشود. |
Control URL |
https://controlplane.tailscale.com |
سرور هماهنگکننده. فقط برای سرور کنترلی که خودتان میزبانی میکنید آن را تغییر دهید. |
Hostname |
خالی | نام این دستگاه در tailnet. |
Accept routes |
خاموش | از مسیرهای زیرشبکهای که دستگاههای دیگر اعلام میکنند استفاده میکند. |
Ephemeral |
خاموش | بهعنوان دستگاه موقت (ephemeral) ثبت میشود که tailnet پس از آفلاین شدنش آن را حذف میکند. |
Exit node |
خالی | ترافیک اینترنت را از راه این دستگاه tailnet میفرستد. |
Exit node allow lan access |
خاموش | هنگام استفاده از گرهٔ خروجی، دسترسی به شبکهٔ محلی را حفظ میکند. |
Advertise exit node |
خاموش | این رایانه را بهعنوان گرهٔ خروجی پیشنهاد میکند. |
Advertise routes |
خالی | زیرشبکههایی که به tailnet پیشنهاد میشوند، جداشده با کاما (,). |
Global DNS |
خاموش | اجازه میدهد DNS مربوط به Tailscale از سرورهای نام سراسری tailnet هم استفاده کند. |
Throne نام دستگاههای tailnet شما (زیر ts.net) را با DNS مربوط به Tailscale تفکیک میکند. نامهای دیگر از تنظیمات DNS معمول شما استفاده میکنند. تست URL و انتخابگر خودکار (auto selector) از نمایههای Tailscale صرفنظر میکنند.
Android
- نمایههای OpenVPN و OpenConnect در Android با همان قالبهای وارد کردن کار میکنند. ویرایشگر گزینههای کمتری نشان میدهد: انتخاب مورد OTP،
Only route advertised networkوTunnel DNSدر آن وجود ندارند. - مدیر OTP و پنجرهٔ
VPN Authenticationوجود ندارند. نمایه باید با نام کاربری و گذرواژهٔ ذخیرهشدهٔ خود وارد شود. موارد OTP از نسخهٔ پشتیبان دسکتاپ بازیابی نمیشوند. - نقطههای پایانی نمایهٔ مسیریابی (تونل تفکیکی) در Android اجرا نمیشوند. نمایهٔ مسیریابیای که از نسخهٔ پشتیبان دسکتاپ آمده، نقطههای پایانی خود را نگه میدارد، اما Android آنها را راهاندازی نمیکند.
- نمایههای Tailscale پشتیبانی نمیشوند.
- در هر دو پلتفرم، انتخابگر خودکار از نمایههای OpenVPN، OpenConnect و Tailscale صرفنظر میکند.