.TH OPENFORTIVPN 1 "May 4, 2020" "" .SH "نام (NAME)" openfortivpn \- کلاینت برای سرویس‌های تونل VPN مبتنی بر PPP+TLS .SH "خلاصه دستور (SYNOPSIS)" .B openfortivpn [\fI\fR[:\fI\fR]] [\fB\-u\fR \fI\fR] [\fB\-p\fR \fI\fR] [\fB\-\-cookie=\fI\fR] [\fB\-\-cookie\-on\-stdin\fR] [\fB\-\-saml\-login[=\fI\fR]] [\fB\-\-pinentry=\fI\fR] [\fB\-\-otp=\fI\fR] [\fB\-\-otp\-prompt=\fI\fR] [\fB\-\-otp\-delay=\fI\fR] [\fB\-\-no\-ftm\-push\fR] [\fB\-\-realm=\fI\fR] [\fB\-\-ifname=\fI\fR] [\fB\-\-set\-routes=\fI\fR] [\fB\-\-no\-routes\fR] [\fB\-\-set\-dns=\fI\fR] [\fB\-\-no\-dns\fR] [\fB\-\-half\-internet\-routes=\fI\fR] [\fB\-\-ca\-file=\fI\fR] [\fB\-\-user\-cert=\fI\fR] [\fB\-\-user-cert=\fIpkcs11:\fR] [\fB\-\-user\-key=\fI\fR] [\fB\-\-use\-syslog\fR] [\fB\-\-trusted\-cert=\fI\fR] [\fB\-\-insecure\-ssl\fR] [\fB\-\-cipher\-list=\fI\fR] [\fB\-\-min\-tls=\fI\fR] [\fB\-\-seclevel\-1\fR] [\fB\-\-pppd\-use\-peerdns=\fI\fR] [\fB\-\-pppd\-no\-peerdns\fR] [\fB\-\-pppd\-log=\fI\fR] [\fB\-\-pppd\-plugin=\fI\fR] [\fB\-\-pppd\-ipparam=\fI\fR] [\fB\-\-pppd\-ifname=\fI\fR] [\fB\-\-pppd\-call=\fI\fR] [\fB\-\-pppd\-accept\-remote=\fI\fR] [\fB\-\-ppp\-system=\fI\fR] [\fB\-\-use\-resolvconf=\fI\fR] [\fB\-\-persistent=\fI\fR] [\fB\-c\fR \fI\fR] [\fB\-v|\-q\fR] .br .B openfortivpn \-\-help .br .B openfortivpn \-\-version .SH "توضیحات (DESCRIPTION)" .B openfortivpn با ایجاد یک تونل به سمت درگاه (gateway) در \fI\fR:\fI\fR به یک شبکهٔ خصوصی مجازی (VPN) متصل می‌شود. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-\-help\fR نمایش پیام راهنما و خروج. .TP \fB\-\-version\fR نمایش نسخه و خروج. .TP \fB\-c \fI\fR, \fB\-\-config=\fI\fR مشخص کردن یک فایل پیکربندی سفارشی (پیش‌فرض: /etc/openfortivpn/config). .TP \fB\-u \fI\fR, \fB\-\-username=\fI\fR نام‌کاربری حساب VPN. .TP \fB\-p \fI\fR, \fB\-\-password=\fI\fR گذرواژه حساب VPN به صورت متن خام. برای یک جایگزین امن‌تر، از pinentry استفاده کنید یا اجازه دهید openfortivpn گذرواژه را از شما بپرسد. .TP \fB\-\-cookie=\fI\fR یک کوکی معتبر (SVPNCOOKIE) برای استفاده به جای نام‌کاربری و گذرواژه. .TP \fB\-\-cookie\-on\-stdin\fR خواندن کوکی (SVPNCOOKIE) از ورودی استاندارد. .TP \fB\-\-saml\-login[=\fI\fR] ایجاد یک وب‌سرور موقت برای دریافت عملیات هدایت محلی (redirect) سامِل (SAML). برای ورود با استفاده از SAML، کافی است نشانی `/remote/saml/start?redirect=1' را باز کرده و مراحل ورود را دنبال کنید. در پایان فرآیند ورود، صفحه به `http://127.0.0.1:8020/?id=' هدایت خواهد شد. نشانی واقعی (URL) که باید برای ورود استفاده شود، شامل realm اختیاری، هنگام شروع به کار وب‌سرور در ترمینال چاپ می‌شود. .TP \fB\-\-pinentry=\fI\fR برنامه pinentry مورد استفاده. امکان وارد کردن امن گذرواژه را فراهم می‌کند. برای مثال: pinentry-gnome3 در لینوکس، یا pinentry-mac در macOS. .TP \fB\-o \fI\fR, \fB\-\-otp=\fI\fR رمز عبور یک‌بار مصرف (OTP). .TP \fB\-\-otp\-prompt=\fI\fR جستجو برای اعلان (prompt) گذرواژه OTP که با رشته \fI\fR شروع می‌شود. .TP \fB\-\-otp\-delay\=\fI\fR تنظیم مدت‌زمان انتظار قبل از ارسال رمز عبور یک‌بار مصرف. زمان تاخیر باید بر حسب ثانیه مشخص شود، که 0 به معنای عدم انتظار است (پیش‌فرض). .TP \fB\-\-no\-ftm\-push\fR در صورت ارائه این گزینه توسط سرور، از اعلان فشاری (push) مربوط به FTM استفاده نکن. سرور ممکن است به نحوی پیکربندی شده باشد که احراز هویت دو مرحله‌ای را از طریق اعلان فشاری به برنامه موبایل مجاز کند. اگر این گزینه ارائه شود، به جای آن از احراز هویت مبتنی بر OTP استفاده خواهد شد. .TP \fB\-\-realm=\fI\fR اتصال به قلمرو (realm) احراز هویت مشخص‌شده. پیش‌فرض مقدار خالی است، که معمولاً همان چیزی است که نیاز دارید. .TP \fB\-\-ifname=\fI\fR مقید کردن اتصال به رابط شبکه مشخص‌شده. .TP \fB\-\-set\-routes=\fI\fR, \fB\-\-no-routes\fR تعیین می‌کند که آیا openfortivpn پس از برقراری تونل، باید مسیرهای IP را از طریق VPN پیکربندی کند یا خیر. در صورت استفاده مکرر، آخرین مورد اولویت خواهد داشت. گزینه \fB\-\-no\-routes\fR معادل \fB\-\-set-routes=\fI0\fR است. .TP \fB\-\-half\-internet\-routes=\fI\fR تعیین می‌کند که آیا openfortivpn باید به جای جایگزینی مسیر پیش‌فرض، دو مسیر 0.0.0.0/1 و 128.0.0.0/1 را با اولویت بالاتر اضافه کند یا خیر. .TP \fB\-\-set\-dns=\fI\fR, \fB\-\-no\-dns\fR تعیین می‌کند که آیا openfortivpn پس از برقراری تونل، باید کارگزارهای نام DNS را به /etc/resolv.conf اضافه کند یا خیر. همچنین ممکن است یک پسوند دامنه (dns-suffix) از طرف مقابل دریافت شده و همراه با کارگزارهای نام به /etc/resolv.conf اضافه شود. در صورتی که resolvconf نصب شده باشد و \-\-use\-resolvconf فعال باشد، به‌روزرسانی فایل resolv.conf به آن محول می‌شود؛ در غیر این صورت، openfortivpn تغییرات خود را در ابتدای محتوای موجود فایل resolv.conf قرار می‌دهد. توجه داشته باشید که ممکن است سازوکارهای دیگری نیز برای به‌روزرسانی /etc/resolv.conf وجود داشته باشد، مانند \fB\-\-pppd\-use\-peerdns\fR همراه با یک ip-up-script، که ممکن است مستلزم اجرای openfortivpn همراه با \fB\-\-no\-dns\fR باشد. گزینه \fB\-\-no\-dns\fR معادل \fB\-\-set\-dns=\fI0\fR است. .TP \fB\-\-use\-resolvconf=\fI\fR تعیین می‌کند که آیا openfortivpn باید از resolvconf برای افزودن کارگزارهای نام DNS به /etc/resolv.conf استفاده کند یا خیر. اگر روی false تنظیم شود، حتی در صورت در دسترس بودن resolvconf، از سازوکار جایگزین داخلی استفاده خواهد شد. .TP \fB\-\-ca\-file=\fI\fR استفاده از بسته گواهی مشخص‌شده با کدگذاری PEM به جای مخزن سراسری سیستم جهت اعتبارسنجی گواهی درگاه. .TP \fB\-\-user\-cert=\fI\fR استفاده از گواهی مشخص‌شده با کدگذاری PEM در صورتی که سرور نیازمند احراز هویت با گواهی باشد. .TP \fB\-\-user-cert=\fIpkcs11:\fR برای استفاده از کارت هوشمند، حداقل از رشته pkcs11: استفاده کنید. این گزینه یک PKCS11-URI کامل یا جزئی را می‌پذیرد (p11tool --list-token-urls) --user-cert = pkcs11: --user-cert = pkcs11:token=someuser --user-cert = pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=012345678;token=someuser \fBاین ویژگی نیازمند موتور OpenSSL PKCS است!\fR .TP \fB\-\-user\-key=\fI\fR استفاده از کلید مشخص‌شده با کدگذاری PEM در صورتی که سرور نیازمند احراز هویت با گواهی باشد. .TP \fB\-\-pem-passphrase=\fI\fR عبارت عبور (passphrase) برای کلید کدگذاری‌شده با PEM. .TP \fB\-\-use\-syslog\fR ثبت لاگ‌ها در syslog به جای ترمینال. .TP \fB\-\-trusted\-cert=\fI\fR اعتماد به یک درگاه مشخص. اگر اعتبارسنجی سنتی گواهی TLS با شکست مواجه شود، گواهی درگاه با این مقدار مطابقت داده خواهد شد. \fI\fR مقدار چکیده sha256 گواهی X509 است. گواهی باید به فرم DER کدگذاری شده باشد. این گزینه می‌تواند چندین بار برای اعتماد به چند گواهی استفاده شود. .TP \fB\-\-insecure\-ssl\fR پروتکل‌ها/رمزنگاری‌های (ciphers) ناامن TLS را غیرفعال نکن. اگر سرور شما به یک رمز مشخص نیاز دارد، به جای آن استفاده از \fB\-\-cipher\-list\fR را در نظر بگیرید. .TP \fB\-\-cipher\-list=\fI\fR رمزهای OpenSSL مورد استفاده. در صورتی که حالت پیش‌فرض کار نکرد، می‌توانید گزینه‌های جایگزین مانند HIGH:!MD5:!RC4 یا موارد پیشنهادی در خط Cipher: در خروجی دستور \fBopenssl\fP(1) را امتحان کنید (به عنوان مثال AES256-GCM-SHA384): $ openssl s_client -connect \fI\fR (پیش‌فرض: HIGH:!aNULL:!kRSA:!PSK:!SRP:!MD5:!RC4) \fBتنها برای TLS نسخه 1.2 یا پایین‌تر اعمال می‌شود و نباید با رمزهای TLS نسخه 1.3 استفاده شود.\fR .TP \fB\-\-min\-tls=\fI\fR استفاده از حداقل نسخه TLS به جای مقدار پیش‌فرض سیستم. مقادیر معتبر عبارتند از 1.0، 1.1، 1.2، 1.3..TP \fB\-\-seclevel\-1\fR اگر \fB\-\-cipher-list\fR مشخص نشده باشد، مقدار @SECLEVEL=1 را به فهرست رمزها (ciphers) می‌افزاید. این کار محدودیت‌های اعمال‌شده بر کلید dh را کاهش می‌دهد. \fBتنها برای TLS نسخه ۱.۲ یا پایین‌تر اعمال می‌شود.\fR .TP \fB\-\-pppd\-use\-peerdns=\fI\fR, \fB\-\-pppd\-no\-peerdns\fR این‌که آیا نشانی‌های کارساز DNS از کارساز ppp مقابل درخواست شود و به pppd اجازه بازنویسی /etc/resolv.conf داده شود یا خیر. سازوکاری برای ارسال dns\-suffix به pppd وجود ندارد. در صورت درخواست نشانی‌های کارساز DNS، ممکن است \fB\-\-set\-dns=\fI1\fR با سازوکارهای درون pppd دچار تداخل (شرایط رقابتی) شود. گزینه \fB\-\-pppd\-no\-peerdns\fR همانند \fB\-\-pppd\-use\-peerdns=\fI0\fR است. .TP \fB\-\-pppd\-log=\fI\fR قرار دادن pppd در حالت اشکال‌زدایی (debug) و ذخیره گزارش‌های آن در \fI\fR. .TP \fB\-\-pppd\-plugin=\fI\fR استفاده از افزونه مشخص‌شده pppd به جای پیکربندی مستقیم تحلیل‌گر نام (resolver) و مسیرها. .TP \fB\-\-pppd\-ipparam=\fI\fR ارائه یک پارامتر اضافی به اسکریپت‌های ip\-up، ip\-pre\-up و ip\-down. برای جزئیات بیشتر به راهنمای .BR pppd(8) مراجعه کنید. .TP \fB\-\-pppd\-ifname=\fI\fR تنظیم نام رابط ppp. تنها در صورتی که توسط pppd پشتیبانی شود. نسخه‌های وصله‌شده pppd این گزینه را پیاده‌سازی کرده‌اند، اما ممکن است روی سکوی شما موجود نباشد. .TP \fB\-\-pppd\-call=\fI\fR حذف آرگومان‌های معمول از خط فرمان pppd و افزودن \(lqcall \(rq به جای آن. این گزینه می‌تواند در دبیان و اوبونتو مفید باشد، جایی که کاربران فاقد دسترسی ریشه در گروه \(lqdip\(rq می‌توانند \(lqpppd call \(rq را اجرا کنند تا pppd گزینه‌ها را از /etc/ppp/peers/ (شامل گزینه‌های نیازمند دسترسی ریشه) بخواند و اعمال کند. .TP \fB\-\-pppd\-accept\-remote=\fI\fR این‌که آیا pppd با \(lqipcp-accept-remote\(rq فراخوانی شود یا خیر. فعال کردن این گزینه کارکرد نسخه‌های pppd < 2.5.0 را مختل می‌کند، اما برای نسخه‌های جدیدتر pppd الزامی است. .TP \fB\-\-ppp\-system=\fI\fR تنها زمانی در دسترس است که برای کلاینت فضای کاربری ppp کامپایل شده باشد (مثلاً در FreeBSD). اتصال به سامانه مشخص‌شده بر اساس تعاریف موجود در /etc/ppp/ppp.conf. .TP \fB\-\-persistent\=\fI\fR اجرای مداوم VPN در یک حلقه بی‌پایان و تلاش همیشگی برای برقراری مجدد اتصال. بازه زمانی اتصال مجدد را می‌توان به ثانیه مشخص کرد که در آن 0 به معنای عدم انجام اتصال مجدد است (این مقدار پیش‌فرض است). .TP \fB\-v\fR افزایش سطح جزئیات گزارش‌ها. می‌توان چندین بار برای دریافت جزئیات بیشتر از آن استفاده کرد. .TP \fB\-q\fR کاهش سطح جزئیات گزارش‌ها. می‌توان چندین بار برای کاهش بیشتر جزئیات از آن استفاده کرد. .SH "محیط و پشتیبانی از پراکسی (ENVIRONMENT and proxy support)" برنامه .B openfortivpn می‌تواند پشت یک پراکسی HTTP که از دستور connect پروتکل HTTP پشتیبانی می‌کند اجرا شود. این برنامه بررسی می‌کند که آیا یکی از متغیرهای محیطی .B https_proxy HTTPS_PROXY all_proxy ALL_PROXY تنظیم شده است یا خیر، که انتظار می‌رود حاوی رشته‌ای با قالب زیر باشند: .br .B http://[host]:[port] .br که در آن .B [host] نشانی ip یا نام دامنه کاملاً مشخص (FQDN) کارساز پراکسی است و .B [port] شماره درگاه TCP است که پراکسی برای اتصالات ورودی روی آن شنود می‌کند. اگر یکی از این متغیرها تعریف شده باشد، .B openfortivpn ابتدا تلاش می‌کند یک اتصال TCP با این پراکسی برقرار کند (HTTP ساده، رمزگذاری‌نشده)، و سپس درخواستی را برای اتصال به میزبان VPN طبق آنچه در خط فرمان یا فایل پیکربندی مشخص شده ارسال می‌کند. انتظار می‌رود که پراکسی تمام بسته‌های بعدی را به صورت شفاف به میزبان VPN هدایت کند، به طوری که لایه TLS اتصال عملاً بین کلاینت و میزبان VPN برقرار شود، و پراکسی تنها به عنوان یک واسطه هدایت‌کننده در لایه پایینی اتصال TCP عمل کند. متغیرهای محیطی زیر توسط .B openfortivpn تنظیم می‌شوند و .BR pppd(8) یا اسکریپت‌های آن می‌توانند اطلاعات را از این طریق دریافت کنند: .br VPN_GATEWAY نشانی ip میزبان دروازه (gateway) .br و برای هر مسیر سه متغیر تنظیم می‌شود، که در آن یک عدد صحیح به انتهای نام متغیرها اضافه شده و نشان‌دهنده شماره مسیر فعلی است: .br VPN_ROUTE_DEST_... شبکه مقصد مسیر .br VPN_ROUTE_MASK_... ماسک شبکه برای این مسیر .br VPN_ROUTE_GATEWAY_... دروازه مربوط به مدخل مسیر فعلی اگر برای pppd کامپایل نشده باشد، گزینه‌های pppd و ویژگی‌هایی که به آن‌ها وابسته هستند در دسترس نخواهند بود. در FreeBSD به جای آن گزینه \fB\-\-ppp\-system\fR در دسترس است. .SH "پیکربندی (CONFIGURATION)" گزینه‌ها را می‌توان از یک فایل پیکربندی دریافت کرد. با این حال، گزینه‌های وارد شده در خط فرمان بر گزینه‌های فایل پیکربندی اولویت خواهند داشت (آن‌ها را بازنویسی می‌کنند). فایل پیکربندی پیش‌فرض /etc/openfortivpn/config است، اما می‌توان آن را با استفاده از گزینه \fB\-c\fR تغییر داد. یک قالب خام برای فایل پیکربندی در مسیر /usr/share/openfortivpn/config.template نصب شده است. .TP یک فایل پیکربندی به این صورت است: # this is a comment .br host = vpn\-gateway .br port = 443 .br username = foo .br # Password in plain text. .br # For a secure alternative, use pinentry or let openfortivpn prompt for the password. .br # password = bar .br # The pinentry program to use. Allows supplying the password in a secure manner. .br # pinentry = pinentry-mac .br # realm = some-realm .br # useful for a gui that passes a configuration file to openfortivpn .br # otp = 123456 .br # otp\-delay = 0 .br # otp\-prompt = Please .br # This would disable FTM push notification support, and use OTP instead .br # no\-ftm\-push = 1 .br user\-cert = /etc/openfortivpn/user\-cert.pem .br # user\-cert = pkcs1: # use smartcard as client certificate .br user\-key = /etc/openfortivpn/user\-key.pem .br pem\-passphrase = baz .br # the sha256 digest of the trusted host certs obtained by .br # openssl dgst -sha256 server\-cert.crt: .br trusted\-cert = certificatedigest4daa8c5fe6c... .br trusted\-cert = othercertificatedigest6631bf... .br # This would specify a ca bundle instead of system-wide store .br # ca\-file = /etc/openfortivpn/ca\-bundle.pem .br set\-dns = 0 .br use\-resolvconf = 1 .br set\-routes = 1 .br half\-internet\-routes = 0 .br pppd\-use\-peerdns = 1 .br # alternatively, use a specific pppd plugin instead .br # pppd\-plugin = /usr/lib/pppd/default/some\-plugin.so .br # for debugging pppd write logs here .br # pppd\-log = /var/log/pppd.log .br # pass ppp interface name to pppd (if supported by a patched pppd) .br # pppd\-ifname = ppp1 .br # pass an ipparam string to pppd, e.g. the device name (a similar use case) .br # pppd\-ipparam = 'device=$DEVICE' .br # instruct pppd to call a script instead of passing arguments (if pppd supports it) .br # pppd\-call = script .br # use\-syslog = 0 .br insecure\-ssl = 0 .br cipher\-list = HIGH:!aNULL:!kRSA:!PSK:!SRP:!MD5:!RC4 .br persistent = 0 .br seclevel-1 = 0.SH "همچنین ببینید (SEE ALSO)" صفحهٔ خانگی \fBopenfortivpn\fR (\fIhttps://github.com/adrienverge/openfortivpn\fR) معرفی کوتاهی در فایل \fBREADME\fR و اطلاعات تکمیلی را در برگهٔ \fBWiki\fR ارائه می‌دهد.