.TH OPENCONNECT 8 .SH "نام (NAME)" openconnect \- کلاینت VPN چندپروتکله، برای VPNهای AnyConnect سیسکو و دیگر موارد .SH "خلاصه دستور (SYNOPSIS)" .SY openconnect .OP \-\-config configfile .OP \-b,\-\-background .OP \-\-pid\-file pidfile .OP \-c,\-\-certificate cert .OP \-e,\-\-cert\-expire\-warning days .OP \-k,\-\-sslkey key .OP \-C,\-\-cookie cookie .OP \-\-cookie\-on\-stdin .OP \-\-compression MODE .OP \-d,\-\-deflate .OP \-D,\-\-no\-deflate .OP \-\-force\-dpd interval .OP \-\-force\-trojan interval .OP \-F,\-\-form\-entry form:opt=value .OP \-g,\-\-usergroup group .OP \-h,\-\-help .OP \-\-http\-auth methods .OP \-\-external\-browser browser .OP \-i,\-\-interface ifname .OP \-l,\-\-syslog .OP \-\-timestamp .OP \-\-passtos .OP \-U,\-\-setuid user .OP \-\-csd\-user user .OP \-m,\-\-mtu mtu .OP \-\-base\-mtu mtu .OP \-p,\-\-key\-password pass .OP \-P,\-\-proxy proxyurl .OP \-\-proxy\-auth methods .OP \-\-no\-proxy .OP \-\-libproxy .OP \-\-key\-password\-from\-fsid .OP \-q,\-\-quiet .OP \-Q,\-\-queue\-len len .OP \-s,\-\-script vpnc\-script .OP \-S,\-\-script\-tun .OP \-u,\-\-user name .OP \-V,\-\-version .OP \-v,\-\-verbose .OP \-x,\-\-xmlconfig config .OP \-\-authgroup group .OP \-\-authenticate .OP \-\-cookieonly .OP \-\-printcookie .OP \-\-cafile file .OP \-\-disable\-ipv6 .OP \-\-dtls\-ciphers list .OP \-\-dtls12\-ciphers list .OP \-\-dtls\-local\-port port .OP \-\-dump\-http\-traffic .OP \-\-no\-system\-trust .OP \-\-pfs .OP \-\-no\-dtls .OP \-\-no\-http\-keepalive .OP \-\-no\-passwd .OP \-\-no\-xmlpost .OP \-\-non\-inter .OP \-\-passwd\-on\-stdin .OP \-\-protocol proto .OP \-\-token\-mode mode .OP \-\-token\-secret {secret\fR[\fI,counter\fR]|@\fIfile\fR} .OP \-\-reconnect\-timeout seconds .OP \-\-resolve host:ip .OP \-\-sni host .OP \-\-servercert sha1 .OP \-\-useragent string .OP \-\-version\-string string .OP \-\-local\-hostname string .OP \-\-os string .B [\-\-server] [https://]\fIhost\fB[:\fIport\fB][/\fIgroup\fB] .YS .SH "توضیحات (DESCRIPTION)" برنامه .B openconnect به سرورهای VPN که از پروتکل‌های استاندارد TLS/SSL، DTLS و ESP برای انتقال داده استفاده می‌کنند، متصل می‌شود. این برنامه در ابتدا برای پشتیبانی از سرورهای VPN سیسکو "AnyConnect" نوشته شد، و از آن زمان با پشتیبانی آزمایشی از سرورهای VPN جونیپر Network Connect .RB ( \-\-protocol=nc )، سرورهای VPN پالس/ایوانتی Connect Secure .RB ( \-\-protocol=pulse )، سرورهای VPN پالو آلتو نتورکز GlobalProtect .RB ( \-\-protocol=gp )، سرورهای VPN اف۵ Big-IP .RB ( \-\-protocol=f5 )، سرورهای VPN فورتی‌نت Fortigate .RB ( \-\-protocol=fortinet ) و سرورهای SSL VPN ارِی نتورکز (Array Networks) .RB ( \-\-protocol=array ) گسترش یافته است. اتصال در دو فاز انجام می‌شود. ابتدا یک اتصال ساده HTTPS برقرار می‌شود که کاربر در آن به روشی احراز هویت می‌کند \- با استفاده از یک گواهی، رمز عبور یا SecurID و غیره. پس از احراز هویت، به کاربر یک کوکی احراز هویت داده می‌شود که می‌تواند برای برقراری اتصال واقعی VPN استفاده شود. فاز دوم از آن کوکی برای اتصال به یک تونل از طریق HTTPS استفاده می‌کند و بسته‌های داده می‌توانند از طریق اتصال حاصل منتقل شوند. در صورت امکان، یک تونل UDP نیز پیکربندی می‌شود: AnyConnect از DTLS استفاده می‌کند، در حالی که Juniper و GlobalProtect از ESP کپسوله‌شده در UDP بهره می‌برند. تونل UDP می‌تواند با .B \-\-no\-dtls غیرفعال شود، اما در صورتی که توسط سرور و شبکه به درستی پشتیبانی شود، به دلایل کارایی ترجیح داده می‌شود. (عملکرد TCP بر روی تونل‌های مبتنی بر TCP ضعیف و غیرقابل‌اطمینان است؛ به .I https://web.archive.org/web/20230228035749/https://sites.inka.de/~W1011/devel/tcp-tcp.html مراجعه کنید.) .SH "گزینه‌ها (OPTIONS)" .TAG opt-config .TP .B \-\-config=CONFIGFILE خواندن گزینه‌های بیشتر از .I CONFIGFILE پیش از ادامه پردازش گزینه‌ها از خط فرمان. این فایل باید شامل گزینه‌های قالب طولانی باشد، همانند مواردی که در خط فرمان پذیرفته می‌شوند، اما بدون دو خط تیره \-\- ابتدایی. خطوط خالی یا خطوطی که اولین نویسه غیرفاصله آن‌ها نویسه # باشد، نادیده گرفته می‌شوند. هر گزینه‌ای به جز گزینه .B config می‌تواند در این فایل مشخص شود. .TAG opt-background .TP .B \-b,\-\-background ادامه فعالیت در پس‌زمینه پس از راه‌اندازی .TAG opt-pid-file .TP .B \-\-pid\-file=PIDFILE ذخیره pid در .I PIDFILE هنگام رفتن به پس‌زمینه .TAG opt-certificate .TAG opt-mca-certificate .TP .B \-c,\-\-certificate=CERT [,\-\-mca\-certificate=CERT] استفاده از گواهی کلاینت SSL .I CERT که می‌تواند یک نام فایل یا در صورتی که OpenConnect با نسخه مناسبی از GnuTLS ساخته شده باشد، یک URL مربوط به PKCS#11 باشد. گزینه .B \-\-mca\-certificate گواهی ثانویه را برای احراز هویت چندگواهی تنظیم می‌کند (طبق اصطلاحات سیسکو، گواهی کلاینت SSL گواهی "دستگاه" و گواهی دوم گواهی "کاربر" نامیده می‌شود). .TAG opt-cert-expire-warning .TP .B \-e,\-\-cert\-expire\-warning=DAYS ارائه هشدار زمانی که .I DAYS روز تا انقضای گواهی کلاینت SSL باقی مانده است .TAG opt-sslkey .TAG opt-mca-key .TP .B \-k,\-\-sslkey=KEY [,\-\-mca\-key=KEY] استفاده از کلید خصوصی SSL .I KEY که می‌تواند یک نام فایل یا در صورتی که OpenConnect با نسخه مناسبی از GnuTLS ساخته شده باشد، یک URL مربوط به PKCS#11 باشد. گزینه .B \-\-mca\-key کلید خصوصی را برای گواهی ثانویه تنظیم می‌کند (به .B \-\-mca\-certificate مراجعه کنید). .TAG opt-cookie .TP .B \-C,\-\-cookie=COOKIE استفاده از کوکی احراز هویت .IR COOKIE . .TAG opt-cookie-on-stdin .TP .B \-\-cookie\-on\-stdin خواندن کوکی از ورودی استاندارد. .TAG opt-deflate .TP .B \-d,\-\-deflate فعال‌سازی تمام حالت‌های فشرده‌سازی، از جمله حالت‌های دارای وضعیت (stateful). به طور پیش‌فرض، فقط الگوریتم‌های فشرده‌سازی بدون وضعیت فعال هستند. .TAG opt-no-deflate .TP .B \-D,\-\-no\-deflate غیرفعال‌سازی تمام حالت‌های فشرده‌سازی. .TAG opt-compression .TP .B \-\-compression=MODE تنظیم حالت فشرده‌سازی، که در آن .I MODE یکی از مقادیر .IR "stateless" ، .I "none" یا .I "all" است. به طور پیش‌فرض، فقط الگوریتم‌های فشرده‌سازی بدون وضعیت که وضعیتی را از یک بسته به بسته بعدی حفظ نمی‌کنند (و می‌توانند در بسترهای انتقال UDP استفاده شوند) فعال هستند. با تنظیم حالت روی .I "all" الگوریتم‌های دارای وضعیت (در حال حاضر تنها zlib deflate) می‌توانند فعال شوند. یا می‌توان تمام فشرده‌سازی را با تنظیم حالت روی .I "none" غیرفعال کرد. .TAG opt-force-dpd .TP .B \-\-force\-dpd=INTERVAL استفاده از .I INTERVAL به عنوان بازه زمانی تشخیص همتای مرده (Dead Peer Detection - DPD) (به ثانیه). این امر باعث می‌شود که کلاینت از DPD در بازه زمانی مشخص‌شده استفاده کند حتی اگر سرور آن را درخواست نکرده باشد، یا در بازه زمانی متفاوتی نسبت به آنچه توسط سرور درخواست شده است. سازوکارهای DPD بر اساس پروتکل و بستر انتقال (TLS یا DTLS/ESP) متفاوت است، اما همگی از نظر عملکردی مشابه هستند: آن‌ها به کلاینت VPN یا سرور VPN امکان می‌دهند سیگنالی را به همتا ارسال کنند و خواستار پاسخ فوری شوند که می‌تواند برای تایید فعال بودن پیوند میان دو همتا استفاده شود. .TAG opt-usergroup .TP .B \-g,\-\-usergroup=GROUP تنظیم مسیر URL اتصال اولیه HTTPS به سرور. در برخی پروتکل‌ها، این مسیر ممکن است به عنوان گروه ورود به سیستم یا قلمرو (realm) عمل کند، از این رو این گزینه نام‌گذاری شده است. به عنوان مثال، فراخوانی‌های زیر از OpenConnect معادل یکدیگر هستند: .nf .B openconnect \-\-usergroup=loginPath vpn.server.com .B openconnect https://vpn.server.com/loginPath .fi .TAG opt-form-entry .TP .B \-F,\-\-form\-entry=FORM:OPTION[=VALUE] ارائه ورودی فرم احراز هویت، که در آن .I FORM و .I OPTION شناسه‌های مربوط به فرم و فیلد ورودی خاص هستند و .I VALUE رشته‌ای است که باید به طور خودکار پر شود. به عنوان مثال، فیلد نام کاربری استاندارد (که توسط گزینه .B \-\-user نیز مدیریت می‌شود) می‌تواند با این گزینه نیز به این صورت ارائه شود: .B \-\-form\-entry .IR main:username=joebloggs . اگر .I VALUE مشخص نشود، این گزینه باعث می‌شود با یک فیلد فرم پنهان مانند یک فیلد استاندارد ورودی متن رفتار شود. از این گزینه .B نباید برای وارد کردن رمزهای عبور استفاده شود. گزینه .B \-\-passwd\-on\-stdin باید برای این منظور استفاده گردد. این گزینه نه تنها مقدار رمز عبور را از طریق خط فرمان فرایند OpenConnect فاش می‌کند، بلکه برخلاف .B \-\-passwd\-on\-stdin حالت رمز عبور نادرست را تشخیص نمی‌دهد و تلاش مکرر برای ورود مجدد آن را متوقف نمی‌کند. .TAG opt-help .TP .B \-h,\-\-help نمایش متن راهنما .TAG opt-http-auth .TP .B \-\-http\-auth=METHODS استفاده تنها از روش‌های مشخص‌شده برای احراز هویت HTTP در سرور. به طور پیش‌فرض، فقط روش‌های احراز هویت .IR Negotiate ، .I NTLM و .I Digest فعال هستند. احراز هویت .I Basic نیز پشتیبانی می‌شود اما به دلیل ناامن بودن باید به صراحت فعال شود. آرگومان یک لیست جداشده با ویرگول از روش‌هایی است که باید فعال شوند. توجه داشته باشید که ترتیب آن‌ها اهمیتی ندارد: OpenConnect در صورت فعال بودن هر کدام، از روش‌های احراز هویت .IR Negotiate ، .IR NTLM ، .I Digest و .I Basic به همین ترتیب استفاده خواهد کرد، صرف‌نظر از ترتیبی که در رشته .I METHODS مشخص شده است. .TAG opt-external-browser .TP .B \-\-external\-browser=BROWSER تنظیم .I BROWSER به عنوان فایل اجرایی مورد استفاده OpenConnect برای مدیریت فرایند احراز هویت با درگاه‌هایی که از روش احراز هویت .B single-sign-on-external-browser پشتیبانی می‌کنند. .TAG opt-interface .TP .B \-i,\-\-interface=IFNAME استفاده از .I IFNAME برای رابط تونل .TAG opt-syslog .TP .B \-l,\-\-syslog پس از بالا آمدن تونل، استفاده از syslog برای پیام‌های بعدی پیشرفت .TAG opt-timestamp .TP .B \-\-timestamp افزودن برچسب زمانی به ابتدای هر پیام پیشرفت .TAG opt-passtos .TP .B \-\-passtos کپی کردن TOS / TCLASS بسته داده در بسته‌های DTLS و ESP. این گزینه به طور پیش‌فرض تنظیم نشده است زیرا ممکن است اطلاعاتی درباره بار داده نشت دهد (به عنوان مثال، با متمایز کردن ترافیک صوتی/تصویری). .TAG opt-setuid .TP .B \-U,\-\-setuid=USER کاهش اختیارات پس از اتصال، برای تبدیل شدن به کاربر .I USER .TAG opt-csd-user .TP .B \-\-csd\-user=USER کاهش اختیارات در حین اجرای فایل باینری یا اسکریپت تروجان (CSD، TNCC یا HIP). .TAG opt-csd-wrapper .TP .B \-\-csd\-wrapper=SCRIPT اجرای .I SCRIPT به جای باینری یا اسکریپت تروجان. .TAG opt-force-trojan .TP .B \-\-force\-trojan=INTERVAL استفاده از .I INTERVAL به عنوان بازه زمانی (به ثانیه) برای اجرای مکرر باینری یا اسکریپت تروجان، با نادیده گرفتن بازه زمانی پیش‌فرض و/یا تعیین‌شده توسط سرور. .TAG opt-mtu .TP .B \-m,\-\-mtu=MTU درخواست .I MTU از سرور به عنوان MTU تونل. .TAG opt-base-mtu .TP .B \-\-base\-mtu=MTU مشخص کردن .I MTU به عنوان MTU مسیر میان کلاینت و سرور در شبکه رمزگذاری‌نشده. سرورهای جدیدتر به طور خودکار MTU مورد استفاده در تونل را از این مقدار محاسبه می‌کنند. .TAG opt-key-password .TAG opt-mca-key-password .TP .B \-p,\-\-key\-password=PASS [,\-\-mca\-key\-password=PASS] ارائه عبارت عبور برای فایل گواهی، یا پین SRK (کلید ریشه سیستم) برای TPM گزینه .B \-\-mca\-key\-password عبارت عبور را برای گواهی ثانویه ارائه می‌دهد (به .B \-\-mca\-certificate مراجعه کنید). .TAG opt-proxy .TP .B \-P,\-\-proxy=PROXYURL استفاده از پراکسی HTTP یا SOCKS برای اتصال. نام کاربری و رمز عبور می‌توانند در URL ارائه‌شده قید شوند و برای احراز هویت استفاده خواهند شد. اگر احراز هویت لازم باشد اما اطلاعات اعتبارسنجی ارائه نشده باشد، ممکن است احراز هویت خودکار NTLM با ابزار کمکی ntlm_auth متعلق به سامبا و همچنین GSSAPI امتحان شود. .TAG opt-proxy-auth .TP .B \-\-proxy\-auth=METHODS استفاده تنها از روش‌های مشخص‌شده برای احراز هویت HTTP در یک پراکسی. به طور پیش‌فرض، فقط احراز هویت‌های Negotiate، NTLM و Digest فعال هستند. احراز هویت Basic نیز پشتیبانی می‌شود اما به دلیل ناامن بودن باید به صراحت فعال شود. آرگومان یک لیست جداشده با ویرگول از روش‌هایی است که باید فعال شوند. توجه داشته باشید که ترتیب آن‌ها اهمیتی ندارد: OpenConnect در صورت فعال بودن هر کدام، از احراز هویت‌های Negotiate، NTLM، Digest و Basic به همین ترتیب استفاده خواهد کرد، صرف‌نظر از ترتیبی که در رشته METHODS مشخص شده است. .TAG opt-no-proxy .TP .B \-\-no\-proxy غیرفعال کردن استفاده از پراکسی .TAG opt-libproxy .TP .B \-\-libproxy استفاده از libproxy برای پیکربندی خودکار پراکسی (در صورت ساخت با پشتیبانی از libproxy) .TAG opt-key-password-from-fsid .TP .B \-\-key\-password\-from\-fsid تولید خودکار عبارت عبور فایل گواهی از .I fsid سیستم‌فایلی که گواهی روی آن ذخیره شده است. مقدار .I fsid بسته به سیستم‌عامل، از فراخوان سیستمی .BR statvfs (2) یا .BR statfs (2) به دست می‌آید. در لینوکس یا سیستم‌های مشابه با GNU coreutils، مقدار .I fsid مورد استفاده توسط این گزینه باید برابر با خروجی دستور زیر باشد: .EX stat \-\-file\-system \-\-printf=%i\e\en $CERTIFICATE .EE این مقدار با UUID ۱۲۸ بیتی سیستم‌فایل یکسان نیست. .TAG opt-quiet .TP .B \-q,\-\-quiet خروجی کمتر .TAG opt-queue-len .TP .B \-Q,\-\-queue\-len=LEN تنظیم محدودیت صف بسته‌ها به .I LEN بسته. مقدار پیش‌فرض ۳۲ است. یک مقدار بالا ممکن است پهنای باند کلی بهتری را فراهم کند اما به بهای افزایش تاخیر (latency) تمام می‌شود. اگر از Voice over IP یا دیگر ترافیک‌های تعاملی روی VPN استفاده می‌کنید، نمی‌خواهید آن بسته‌ها پشت هزاران بسته بزرگ دیگر که بخشی از یک انتقال انبوه داده هستند در صف بمانند. این گزینه حداکثر اندازه صف بسته‌های ورودی و خروجی را در خود OpenConnect تنظیم می‌کند، که تعیین می‌نماید چه تعداد بسته در یک دسته ارسال و دریافت می‌شوند، و همچنین بر سایر بافرها مانند بافر ارسال سوکت (SO_SNDBUF) برای اتصالات شبکه و دستگاه تونل سیستم‌عامل تاثیر می‌گذارد. در نهایت، اندازه مناسب برای یک صف "فقط به تعداد کافی بسته است که پیش از رسیدن بسته‌های بیشتر، هرگز کاملا خالی نشود". هر مقداری بیش از آن، صرفا باعث ایجاد اتساع بافر (bufferbloat) و تاخیر اضافی بدون هیچ مزیتی می‌شود. با مقدار پیش‌فرض ۳۲، ما قادریم یک اترنت گیگابیتی را حتی با سخت‌افزاری معمولی اشباع کنیم، که برای بیشتر کاربران VPN بیش از حد کافی است. اگر OpenConnect با پشتیبانی از vhost-net ساخته شده باشد، تنها در صورتی از آن استفاده می‌شود که طول صف روی ۱۶ یا بیشتر تنظیم شده باشد. دلیل این امر آن است که vhost-net مقدار کمی تاخیر اضافی ایجاد می‌کند، اما پهنای باند کلی را برای کسانی که با نرخ ترافیک بالا کار می‌کنند به طور قابل توجهی بهبود می‌بخشد. بنابراین استفاده از آن زمانی منطقی است که کاربر با افزایش اندازه صف، ترجیح خود را برای پهنای باند نسبت به تاخیر نشان داده باشد. .TAG opt-script .TP .B \-s,\-\-script=SCRIPT فراخوانی .I SCRIPT برای پیکربندی شبکه پس از اتصال. بدون این اسکریپت، بعید است مسیریابی و سرویس نام دامنه به درستی کار کنند. انتظار می‌رود این اسکریپت با .B vpnc\-script که همراه با کلاینت VPN "vpnc" ارائه می‌شود سازگار باشد. برای اطلاعات بیشتر به .I https://www.infradead.org/openconnect/vpnc-script.html مراجعه کنید. این نسخه از OpenConnect به طور پیش‌فرض برای استفاده از \fB/etc/vpnc/vpnc-script\fR پیکربندی شده است. در ویندوز، دایرکتوری نسبی برای اسکریپت پیش‌فرض به جای دایرکتوری جاری، از دایرکتوری محل اجرای فایل اجرایی openconnect در نظر گرفته می‌شود. این اسکریپت با میزبان اسکریپت مبتنی بر دستور \fBcscript.exe\fR فراخوانی خواهد شد. .TAG opt-script-tun .TP .B \-S,\-\-script\-tun انتقال ترافیک به برنامه 'script' از طریق یک سوکت UNIX، به جای ارسال به یک دستگاه tun/tap در هسته. این کار اجازه می‌دهد ترافیک IP مربوط به VPN کاملا در فضای کاربری مدیریت شود، برای مثال توسط برنامه‌ای که از lwIP برای ارائه دسترسی SOCKS به داخل VPN استفاده می‌کند. .TAG opt-server .TP .B \-\-server=[https://]\fIHOST\fB[:\fIPORT\fB][/\fIPATH\fB] تعریف سرور VPN به عنوان یک .I HOST ساده یا به عنوان یک URL شامل .I HOST و در صورت تمایل شماره .I PORT و .IR PATH ؛ در برخی پروتکل‌ها، این مسیر ممکن است به عنوان گروه ورود به سیستم یا realm عمل کند، و می‌توان آن را به طور معادل با .B \-\-usergroup نیز مشخص کرد. به عنوان جایگزین، سرور VPN را به عنوان یک آرگومان غیرگزینه‌ای در خط فرمان تعریف کنید. .TAG opt-user .TP .B \-u,\-\-user=NAME تنظیم نام کاربری ورود به سیستم به .I NAME .TAG opt-version .TP .B \-V,\-\-version گزارش شماره نسخه .TAG opt-verbose .TP .B \-v,\-\-verbose خروجی بیشتر (می‌تواند چندین بار برای خروجی‌های اضافی مشخص شود) .TAG opt-xmlconfig .TP .B \-x,\-\-xmlconfig=CONFIG فایل پیکربندی XML .TAG opt-authgroup .TP .B \-\-authgroup=GROUP انتخاب GROUP از منوی کشویی یا ورودی لیست احراز هویت. بسیاری از VPNها نیازمند انتخابی از یک منوی کشویی یا لیست در طول فرایند احراز هویت هستند. این انتخاب ممکن است با نام‌های .B authgroup (در VPNهای سیسکو)، .B realm (جونیپر، پالس، فورتی‌نت)، .B domain (اف۵)، و .B gateway (گلوبال‌پروتکت) شناخته شود. این گزینه تلاش می‌کند فیلد مناسب و مختص هر پروتکل را به طور خودکار با مقدار دلخواه پر کند. .TAG opt-authenticate .TP .B \-\-authenticate احراز هویت در VPN، نمایش اطلاعات مورد نیاز برای برقراری اتصال در قالبی که بتواند برای تنظیم متغیرهای محیطی پوسته استفاده شود، و سپس خروج. هنگامی که OpenConnect با این گزینه فراخوانی شود، اتصال واقعی VPN را ایجاد نمی‌کند و رابط تونل را نیز پیکربندی نخواهد کرد، بلکه در صورت موفقیت، خروجی مشابه زیر را در stdout چاپ می‌کند: .nf .B COOKIE='3311180634@13561856@1339425499@B315A0E29D16C6FD92EE...' .B HOST='10.0.0.1' .B CONNECT_URL='https://vpnserver.example.com' .B FINGERPRINT='469bb424ec8835944d30bc77c77e8fc1d8e23a42' .B RESOLVE='vpnserver.example.com:10.0.0.1' .fi بنابراین، می‌توانید openconnect را به عنوان یک کاربر بدون امتیاز ویژه .I (با دسترسی به توکن‌های PKCS#11 کاربر و غیره) برای احراز هویت فراخوانی کنید، و سپس openconnect را به طور جداگانه برای برقراری اتصال واقعی به عنوان ریشه (root) اجرا نمایید: .nf .B eval `openconnect --authenticate https://vpnserver.example.com`; .B [ -n \fR["$COOKIE"\fR] ] && echo \fR["$COOKIE"\fR] | .B \ \ sudo openconnect --cookie-on-stdin $CONNECT_URL --servercert $FINGERPRINT --resolve $RESOLVE .fi نسخه‌های پیشین OpenConnect فقط متغیر .B HOST (حاوی آدرس عددی سرور) را تولید می‌کردند، و نه متغیرهای .B CONNECT_URL یا .BR RESOLVE . متعاقبا دریافتیم که سرورهای پشت پراکسی ممکن است به درستی پاسخ ندهند مگر اینکه نام صحیح DNS در فاز اتصال وجود داشته باشد، و پشتیبانی از پروتکل‌های VPN را اضافه کردیم که بخش .I path در URL سرور ممکن است در فاز اتصال مهم باشد، که این امر منجر به افزودن .B CONNECT_URL و .B RESOLVE و توصیه به استفاده از آن‌ها به شرح بالا شد. اگر مطمئن نیستید که در حال اجرای نسخه جدیدتری از OpenConnect هستید که این متغیرها را خروجی می‌دهد، از دستور زیر استفاده کنید (سازگار با بیشتر مشتقات پوسته Bourne) که هم با نسخه جدیدتر و هم با نسخه قدیمی‌تر کار می‌کند: .nf .B sudo openconnect --cookie-on-stdin ${CONNECT_URL:-$HOST} --servercert $FINGERPRINT ${RESOLVE:+--resolve=$RESOLVE} .fi .TAG opt-cookieonly .TP .B \-\-cookieonly تنها دریافت و چاپ کوکی؛ متصل نشدن (این گزینه در اصل زیرمجموعه‌ای از .B \-\-authenticate است). .TAG opt-printcookie .TP .B \-\-printcookie چاپ کوکی در stdout پیش از اتصال (برای مفهوم این کوکی به .B \-\-authenticate مراجعه کنید) .TAG opt-cafile .TP .B \-\-cafile=FILE فایل CA اضافی برای اعتبارسنجی سرور. به طور پیش‌فرض، این گزینه به سادگی باعث می‌شود OpenConnect گواهی(های) ریشه CA بیشتری را علاوه بر مواردی که مورد اعتماد سیستم هستند، مورد اعتماد قرار دهد. از گزینه .B \-\-no\-system\-trust برای جلوگیری از اعتماد OpenConnect به مراجع صدور گواهی پیش‌فرض سیستم استفاده کنید. .TAG opt-no-system-trust .TP .B \-\-no\-system\-trust به مراجع صدور گواهی پیش‌فرض سیستم اعتماد نشود. اگر این گزینه داده شود، فقط مراجع صدور گواهی ارائه‌شده با گزینه .B \-\-cafile (در صورت وجود) به طور خودکار مورد اعتماد قرار خواهند گرفت. .TAG opt-disable-ipv .TP .B \-\-disable\-ipv6 قابلیت IPv6 به سرور اعلان نشود .TAG opt-dtls-ciphers .TP .B \-\-dtls\-ciphers=LIST تنظیم رمزهای OpenSSL مورد پشتیبانی برای DTLS .TAG opt-dtls .TP .B \-\-dtls12\-ciphers=LIST تنظیم رمزهای OpenSSL برای DTLS نسخه 1.2 سیسکو .TAG opt-dtls-local-port .TP .B \-\-dtls\-local\-port=PORT استفاده از .I PORT به عنوان پورت محلی برای دیتاگرام‌های DTLS و UDP .TAG opt-dump-http-traffic .TP .B \-\-dump\-http\-traffic فعال‌سازی خروجی تفصیلی تمام درخواست‌های HTTP و بدنه تمامی پاسخ‌های دریافت شده از سرور. .TAG opt-pfs .TP .B \-\-pfs اعمال رازداری روبه‌جلو بی‌نقص (PFS). این امر تضمین می‌کند که در صورت به خطر افتادن کلید بلندمدت سرور، کلیدهای نشستی که پیش از افشای کلید ایجاد شده‌اند، مصون خواهند ماند. اگر این گزینه ارائه شود و سرور از PFS در کانال TLS پشتیبانی نکند، اتصال برقرار نخواهد شد. قابلیت PFS در نسخه‌های سیسکو ASA نسخه 9.1(2) و بالاتر در دسترس است؛ ممکن است لازم باشد مجموعه رمز مناسب توسط مدیر سیستم به صورت دستی با استفاده از تنظیم .B ssl encryption فعال شود. .TAG opt-no-dtls .TP .B \-\-no\-dtls غیرفعال‌سازی DTLS و ESP .TAG opt-no-http-keepalive .TP .B \-\-no\-http\-keepalive نسخه 8.2.2.5 نرم‌افزار Cisco ASA دارای باگی است که هنگام استفاده مجدد از اتصالات HTTP برای چندین درخواست، گواهی SSL کلاینت را فراموش می‌کند. تاکنون، این مشکل فقط در اتصال اولیه مشاهده شده است، جایی که سرور یک پاسخ تغییرمسیر HTTP/1.0 با دستور صریح .B Connection: Keep\-Alive می‌دهد. OpenConnect از نسخه 2.22 یک راه‌حل بدون قید و شرط برای این موضوع دارد، که هرگز نباید از آن دستور پس از یک پاسخ HTTP/1.0 پیروی کرد. با این حال، تیم پشتیبانی سیسکو نتوانست پاسخ مناسبی به گزارش باگ ارائه دهد و ما نمی‌دانیم این باگ تحت چه شرایط دیگری ممکن است بروز پیدا کند. بنابراین این گزینه برای غیرفعال کردن تمامی استفاده‌های مجدد از نشست‌های HTTP و برقراری یک اتصال جدید برای هر درخواست وجود دارد. اگر به نظر می‌رسد سرور شما گواهی‌تان را شناسایی نمی‌کند، این گزینه را امتحان کنید. اگر تغییری ایجاد کرد، لطفاً این اطلاعات را به لیست پستی .B openconnect\-devel@lists.infradead.org گزارش دهید. .TAG opt-no-passwd .TP .B \-\-no\-passwd هرگز برای احراز هویت با رمز عبور (یا SecurID) تلاش نشود. .TAG opt-no-external-auth .TP .B \-\-no\-external\-auth جلوگیری از اعلان پشتیبانی از هرگونه حالت احراز هویت که به مرورگر خارجی نیاز دارد توسط OpenConnect به سرور. برخی سرورها در صورتی که کلاینت اعلام پشتیبانی کند، آن را وادار به استفاده از چنین روش احراز هویتی می‌کنند، اما اگر به نظر برسد کلاینت از آن پشتیبانی نمی‌کند، به یک حالت احراز هویت "اسکریپت‌پذیرتر" بازمی‌گردند. .TAG opt-no-xmlpost .TP .B \-\-no\-xmlpost تلاش برای ارسال درخواست احراز هویت/پیکربندی با متد POST به صورت XML به سرور انجام نشود؛ در عوض از متد سنتی GET که توسط کلاینت‌ها و سرورهای قدیمی‌تر استفاده می‌شد، استفاده شود. این گزینه یک راهکار موقت برای سازگاری است تا مشکلات احتمالی کدی که به طور خودکار به روش قدیمی بازمی‌گردد دور زده شود. این کار باعث می‌شود OpenConnect رفتاری شبیه به نسخه‌های قدیمی‌تر (4.08 و پایین‌تر) داشته باشد. اگر متوجه شدید که به استفاده از این گزینه نیاز دارید، باگی در OpenConnect یافته‌اید. لطفاً به https://www.infradead.org/openconnect/mail.html مراجعه کرده و این موضوع را به توسعه‌دهندگان گزارش دهید. .TAG opt-allow-insecure-crypto .TP .B \-\-allow\-insecure\-crypto الگوریتم‌های رمزنگاری کهنه و شکسته 3DES و RC4 ناامن هستند؛ ما به صراحت آن‌ها را به طور پیش‌فرض غیرفعال کرده‌ایم. با این حال، برخی از سرورهای VPN که هنوز مورد استفاده هستند، توانایی استفاده از الگوریتم‌های بهتری را ندارند. این گزینه استفاده از این الگوریتم‌های ناامن و همچنین استفاده از SHA1 را برای اعتبارسنجی گواهی سرور فعال می‌کند. .TAG opt-non-inter .TP .B \-\-non\-inter منتظر ورودی کاربر نماند؛ در صورت نیاز به ورودی، خارج شود. .TAG opt-passwd-on-stdin .TP .B \-\-passwd\-on\-stdin خواندن رمز عبور از ورودی استاندارد .TAG opt-protocol .TP .B \-\-protocol=PROTO انتخاب پروتکل VPN .I PROTO برای استفاده در اتصال. پروتکل‌های پشتیبانی‌شده عبارتند از: .I anyconnect برای سیسکو AnyConnect (پیش‌فرض)، .I nc برای پشتیبانی آزمایشی از جونیپر Network Connect (همچنین توسط اکثر سرورهای Ivanti/Pulse Connect Secure پشتیبانی می‌شود)، .I pulse برای پشتیبانی آزمایشی از Ivanti/Pulse Connect Secure، .I gp برای پشتیبانی آزمایشی از پالو آلتو نتورکز GlobalProtect، .I f5 برای پشتیبانی آزمایشی از اف۵ Big-IP، .I fortinet برای پشتیبانی آزمایشی از فورتی‌نت Fortigate، و .I array برای پشتیبانی آزمایشی از SSL VPN ارِی نتورکز (Array Networks). برای جزئیات بیشتر درباره ویژگی‌ها و کاستی‌های هر یک از پروتکل‌ها، به .I https://www.infradead.org/openconnect/protocols.html مراجعه کنید. برنامه OpenConnect هنوز از تمام گزینه‌های احراز هویت مورد استفاده توسط Pulse پشتیبانی نمی‌کند، و همچنین از Host Checker/TNCC در Pulse پشتیبانی نمی‌نماید. اگر VPN مبتنی بر Junos/Ivanti Pulse شما هنوز با .B \-\-protocol=pulse پشتیبانی نمی‌شود، ممکن است .B \-\-protocol=nc یک گزینه جایگزین کاربردی باشد. .TAG opt-token-mode .TP .B \-\-token\-mode=MODE فعال‌سازی تولید رمز عبور یک‌بارمصرف با استفاده از الگوریتم .IR MODE . گزینه .B \-\-token\-mode=rsa کتابخانه libstoken را برای تولید کد توکن RSA SecurID فراخوانی می‌کند، .B \-\-token\-mode=totp یک رمز عبور مبتنی بر زمان مطابق با RFC 6238 تولید می‌کند، و .B \-\-token\-mode=hotp یک رمز عبور مبتنی بر HMAC مطابق با RFC 4226 ایجاد خواهد کرد. توکن‌های Yubikey که کدهای OATH را در سخت‌افزار تولید می‌کنند، با .B \-\-token\-mode=yubioath پشتیبانی می‌شوند. گزینه .B \-\-token\-mode=oidc از توکن ارائه‌شده OpenIDConnect به عنوان یک توکن حامل (bearer token) مطابق با RFC 6750 استفاده خواهد کرد. .TAG opt-token-secret .TP .B \-\-token\-secret={ SECRET[,COUNTER] | @FILENAME } کلید محرمانه برای استفاده هنگام تولید رمزهای یک‌بارمصرف/کدهای تایید. کلیدهای TOTP/HOTP با کدگذاری Base 32 می‌توانند با مشخص کردن "base32:" در ابتدای کلید استفاده شوند، و برای کلیدهای HOTP شمارنده توکن می‌تواند پس از یک ویرگول مشخص شود. کلیدهای محرمانه RSA SecurID می‌توانند به عنوان یک URI اندروید/آیفون یا یک رشته خام عددی CTF (با یا بدون خط تیره) مشخص شوند. برای Yubikey OATH، کلید محرمانه توکن نام اطلاعات کاربری مورد استفاده را تعیین می‌کند. اگر ارائه نشود، از اولین اطلاعات کاربری OATH یافت‌شده روی دستگاه استفاده خواهد شد. برای OIDC، کلید محرمانه همان توکن حامل (bearer token) است که باید استفاده شود. پارامتر .IR FILENAME ، در صورت مشخص شدن، می‌تواند شامل هر یک از رشته‌های فوق باشد. یا می‌تواند حاوی یک بذر XML مربوط به SecurID (SDTID) باشد. اگر این گزینه حذف شود و \-\-token\-mode برابر با "rsa" باشد، کتابخانه libstoken سعی خواهد کرد از بذر توکن نرم‌افزاری ذخیره‌شده در .B ~/.stokenrc توسط دستور "stoken import" استفاده کند. .TAG opt-reconnect-timeout .TP .B \-\-reconnect\-timeout=SECONDS پس از قطع ارتباط یا تشخیص همتای مرده (Dead Peer Detection)، تلاش برای اتصال مجدد را به مدت .I SECONDS ثانیه ادامه دهد. مقدار پیش‌فرض ۳۰۰ ثانیه است، به این معنی که openconnect می‌تواند یک اتصال VPN را پس از قطعی موقت شبکه که تا ۳۰۰ ثانیه طول بکشد، بازیابی کند. .TAG opt-resolve .TP .B \-\-resolve=HOST:IP تفکیک خودکار نام میزبان .I HOST به .I IP به جای استفاده از سرویس تفکیک‌کننده معمول شبکه برای جستجوی آن. .TAG opt-servercert .TP .B \-\-sni=HOST هنگام ایجاد اتصالات جدید TLS، همیشه نام میزبان .I HOST را به عنوان SNI (نشان‌گر نام سرور) به جای نام میزبان واقعی ارائه دهد، که نام واقعی همچنان در هدر 'Host:' پروتکل HTTP ارسال خواهد شد، و انتظار داشته باشد که گواهی همتا به جای نام میزبان واقعی با SNI مطابقت داشته باشد. این امر ممکن است برای تکنیک Domain Fronting مفید باشد، که از طریق آن می‌توان برخی اتصالات اینترنتی فیلترشده یا سانسورشده را دور زد. توجه داشته باشید که ارسال مقادیر متفاوت برای SNI و هدر 'Host:' استانداردهای HTTP را نقض می‌کند و توسط بسیاری از ارائه‌دهندگان میزبانی ابری مسدود شده است. .TP .B \-\-servercert=HASH پذیرش گواهی SSL سرور تنها در صورتی که با اثرانگشت (fingerprint) ارائه‌شده مطابقت داشته باشد. این گزینه متضمن .B \-\-no\-system\-trust است، و ممکن است چندین بار به منظور پذیرش چندین اثرانگشت احتمالی مشخص شود. انواع اثرانگشت مجاز عبارتند از .IR SHA1 ، .I SHA256 و .IR PIN-SHA256 . آن‌ها با پیشوندهای 'sha1:'، 'sha256:' و 'pin-sha256:' در ابتدای هش کدگذاری‌شده متمایز می‌شوند. دو مورد اول شناسه‌های سفارشی هستند که کدگذاری هگزادسیمال کلید عمومی همتا را ارائه می‌دهند، در حالی که 'pin-sha256:' همان PIN کلید طبق RFC7469 است که از کدگذاری base64 استفاده می‌کند. برای تسهیل برخی موارد استفاده آزمایشی، تطابق جزئی هش نیز پذیرفته خواهد شد، مشروط بر اینکه حداقل ۴ نویسه پس از پیشوند باشد. .TAG opt-useragent .TP .B \-\-useragent=STRING استفاده از .I STRING به عنوان مقدار فیلد 'User\-Agent:' در هدر HTTP. برخی از سرورهای VPN ممکن است به مقادیر خاصی مطابق با مقادیر ارسالی توسط کلاینت‌های اختصاصی VPN برای احراز هویت یا اتصال موفق نیاز داشته باشند. برای مثال، هنگام اتصال به سرور VPN سیسکو، \-\-useragent 'AnyConnect Windows 4.10.06079' یا \-\-useragent 'Cisco AnyConnect VPN Agent for Windows 2.2.0133' یا هنگام اتصال به سرور Pulse، \-\-useragent 'Pulse-Secure/9.1.11.6725'. .TAG opt-version-string .TP .B \-\-version\-string=STRING استفاده از .I STRING به عنوان نسخه نرم‌افزار گزارش‌شده به سرور اصلی (head end). (مانند \-\-version\-string '2.2.0133') .TAG opt-local-hostname .TP .B \-\-local\-hostname=STRING استفاده از .I STRING به عنوان مقدار فیلد 'X\-CSTP\-Hostname:' در هدر HTTP. برای مثال \-\-local\-hostname 'mypc'، مقدار 'mypc' را به عنوان نام میزبان پیشنهادی برای اشاره به آدرس IP ارائه‌شده اعلان می‌کند. .TAG opt-os .TP .B \-\-os=STRING نوع سیستم‌عامل برای گزارش به درگاه. مقادیر شناخته‌شده عبارتند از: .BR linux ، .BR linux\-64 ، .BR win ، .BR mac\-intel ، .BR android ، .BR apple\-ios . گزارش یک سیستم‌عامل متفاوت ممکن است بر خط‌مشی دسترسی پویا (DAP) اعمال‌شده روی نشست VPN تاثیر بگذارد. اگر درگاه به CSD نیاز داشته باشد، همچنین باعث می‌شود باینری تروجان CSD مربوطه دانلود شود، بنابراین در صورتی که این کد روی ماشین محلی قابل اجرا نباشد، ممکن است نیاز به استفاده از .B \-\-csd\-wrapper داشته باشید. .SH "سیگنال‌ها (SIGNALS)" در فاز داده اتصال، سیگنال‌های زیر مدیریت می‌شوند: .TAG sig-SIGINT .TAG sig-SIGTERM .TP .B SIGINT / SIGTERM خاتمه تمیز ارتباط را با خروج از نشست (logout)، قطع ارتباط از درگاه، و اجرای vpnc\-script برای بازیابی پیکربندی شبکه انجام می‌دهد. .TAG sig-SIGHUP .TP .B SIGHUP ارتباط با درگاه را قطع کرده و vpnc\-script را اجرا می‌کند، اما از نشست خارج نمی‌شود؛ این امر امکان اتصال مجدد در آینده را با استفاده از .B \-\-cookie فراهم می‌سازد. .TAG sig-SIGUSR1 .TP .B SIGUSR1 پیام پیشرفت را همراه با اطلاعات و آمار تفصیلی اتصال می‌نویسد. .TAG sig-SIGUSR2 .TP .B SIGUSR2 قطع و اتصال مجدد فوری را اجبار می‌کند؛ این سیگنال می‌تواند برای بازیابی سریع پس از تغییرات آدرس IP شبکه محلی (LAN) استفاده شود. .SH "محدودیت‌ها (LIMITATIONS)" برای ویژگی‌های مختلفی که مایل بودیم OpenConnect دارای آن‌ها باشد به .B https://www.infradead.org/openconnect/contribute.html و برای اطلاعات درباره رفتارها و محدودیت‌های خاص هر یک از پروتکل‌های VPN به .B https://www.infradead.org/openconnect/protocols.html مراجعه کنید. .SH "همچنین ببینید (SEE ALSO)" .BR ocserv (8) .SH "نویسندگان (AUTHORS)" David Woodhouse