دو دستور یک جفت کلید WireGuard می‌سازند و هر دو با ابزارهای استاندارد همراه‌اند، پس این کار به هیچ وب‌گاهی که پیشنهاد کند برایتان کلید بسازد نیاز ندارد. آنچه خراب می‌شود هرگز حساب منحنی نیست؛ بیت‌های مجوز، جایی که فایل فرود می‌آید و آنچه بعداً به طرف دیگر فرستاده می‌شود است. دنبالهٔ زیر در یک پوشهٔ خالی آغاز می‌شود و به همتایی ختم می‌شود که ترافیک را حمل می‌کند. پیش از اجرا یک بار آن را بخوانید، چون خط اول تنها زمانی اهمیت دارد که خط بعدی در همان پوسته اجرا شود.

ساختن جفت در یک پوسته

جریان کار مستندشده پیش از وجود مقدار خصوصی، ساخت فایل را محدود می‌کند و سپس مقدار عمومی را از آن می‌گیرد. هر سه خط با هم به یک نشست پوسته تعلق دارند:

umask 077  # applies to files created next, so keep the next line in this shell
wg genkey | tee privatekey | wg pubkey > publickey
wg pubkey < privatekey  # re-derive and compare with publickey

wg genkey یک کلید خصوصی 32 بایتی Curve25519 را در base64 می‌نویسد؛ wg pubkey آن را می‌خواند و کلید عمومی متناظر را استخراج می‌کند، و tee مقدار خصوصی را ذخیره می‌کند در حالی که آن را از طریق لوله پایین می‌فرستد. همین ترتیب دلیل آن است که خط مجوزها اول می‌آید و چرا چسباندن خط لوله در ترمینال دوم بی‌صدا آن را از دست می‌دهد. نام‌های فایل نمونه‌اند و مهم این است که هر دو فایل جایی فرود بیایند که دستگاه مالک آن را کنترل می‌کند. اگر فایل خصوصی از پیش با مجوزهای پیش‌فرض وجود دارد، chmod 600 privatekey فایل فعلی را درست می‌کند و دربارهٔ نسخه‌های پیش‌تر کاری نمی‌کند.

نگه داشتن نیمهٔ خصوصی روی یک دستگاه

مقدار خصوصی به ماشینی تعلق دارد که هویت را در اختیار خواهد داشت، در پوشه‌ای که آن ماشین از آن محافظت می‌کند و نسخه‌های پشتیبان آن را مانند یک اعتبارنامه می‌بینند. جای آن در پوشهٔ اشتراکی، در پیامی به خودتان یا در قطعه‌ای پیوستِ یک تیکت پشتیبانی نیست، و نسخهٔ جاسازی‌شده فایل پیکربندی را دقیقاً به اندازهٔ کلید حساس می‌کند. کلیدی که در سه جا زندگی کرده باشد بعداً قابل بازبینی نیست، و این دلیل عملی نگه داشتن آن در یک جاست.

نابود کردن عامدانهٔ فایلی که بازنشسته شده بخشی از همان عادت است. رها کردنش در پوشهٔ دانلودها تا کسی متوجه شود، نیست.

آنچه گردانندهٔ همتا از شما می‌خواهد

طرف دیگر به مقدار عمومی و چیدمان نشانی‌ای که گرداننده‌اش برگزیده نیاز دارد، نه چیز دیگری. آن رشتهٔ عمومی را از همان کانالی بفرستید که گرداننده انتظار دارد، سپس پیش از آنکه کسی آزمایشش کند تأیید کنید به کدام ورودی همتا پیوست شده است، چون کلید درست در بخش نادرست به شکلی شکست می‌خورد که شبیه مشکل کلید است. آن را یک خط بدون شکست بفرستید، چون کلیدی که به دو خط شکسته شده بی‌هیچ شکایتی در فایل پیکربندی چسبانده می‌شود و بعد هرگز مطابقت نمی‌کند.

ساختن کلید به‌خودی‌خود چیزی را مجاز نمی‌کند. همتا باید برای پذیرش آن پیکربندی شود، و گام پیکربندی از آنِ کسی است که آن سر را اداره می‌کند.

آزمودن جفت با یک تبادل واقعی

یک جفت کلید یک سر تونل را شناسایی می‌کند؛ هیچ مسیر، هیچ ورودی تفکیک‌کننده، هیچ قاعدهٔ ارسال و هیچ مجوز دیوار آتشی نمی‌سازد. پس از آماده شدن همتا، تبادل را بیازمایید نه فایل را: دست‌دادنی که در wg show پدیدار می‌شود، نشانی‌ای که درون تونل پاسخ می‌دهد، و یک درخواست برنامه که به مسیر وابسته است. این سه‌گانه کلید نادرست را از کلید درست و مسیر غایب جدا می‌کند.

وقتی استقرار اجازه می‌دهد برای هر دستگاه یک هویت نگه دارید، تا واحد گم‌شده به‌تنهایی باطل شود نه اینکه همه را به ساختن دوبارهٔ کلیدها وادار کند. همین تصمیم است که روند جایگزینی زیر را ایمن برای اجرا می‌کند.

جایگزینی کلید بدون شکاف

جایگزین را روی دستگاه بسازید، کلید عمومی تازه را به‌عنوان همتای افزوده بیفزایید، تأیید کنید که ترافیک را حمل می‌کند و تنها پس از آن کلید قدیمی را بردارید. انجام این کار در چنین ترتیبی یعنی تونل هرگز لحظه‌ای بدون هویت معتبر ندارد، و بازگشت به عقب صرفاً حذف ورودی‌ای است که همین حالا افزودید.

فایل خصوصی جایگزین‌شده را تا تأیید همتای تازه نگه دارید، سپس عامدانه نابودش کنید. شروع سریع WireGuard مرجع خود دستورهاست و به‌قدری کوتاه است که پیش از آغاز آن را کامل بخوانید.

مقالات مرتبط