پروفایلی که سال‌ها کار می‌کرده ناگهان از راه‌اندازی سر باز می‌زند و پیام نام دستوری را می‌آورد که هیچ‌کس به یاد ندارد آن را افزوده باشد: key-method. نتیجهٔ جستجوی بعدی پیشنهاد می‌کند برای سازگاری key-method 2 را اضافه کنید، که توصیه‌ای از دورهٔ دیگری است. تجزیه‌گری که آن خط را رد کرده به‌روز است و اصلاً چنین گزینه‌ای ندارد. حذف آن خط راه‌اندازی را درست می‌کند و هیچ چیز را در نحوهٔ محافظت دو همتا از نشست تغییر نمی‌دهد.

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

نشانه خطای تجزیه است، نه شکست دست‌دهی

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

openvpn --config /etc/openvpn/client/office.ovpn --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log

اگر پیام نام دستور را بیاورد، تشخیص تمام است: پرونده چیزی دارد که این ساخت آن را نمی‌پذیرد. اگر پیام به‌جای آن مسیر یک پرونده را بیاورد، مشکل یک include یا کلید غایب است، که بخش دیگری از همان مرحلهٔ راه‌اندازی است.

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

دستور و قالب انتقال دو چیز متفاوت‌اند

گزینهٔ قدیمی key-method تعیین می‌کرد که تبادل کلید TLS چگونه قالب‌بندی شود، و تبادل مدرن همان روش چندبسته‌ای است که آن گزینه پیش‌تر درخواست می‌کرد. گزینه از میان رفت چون دیگر چیزی را تعیین نمی‌کرد؛ قالبی که نام می‌برد تنها قالب شد. بنابراین حذف آن خط نشست را با همان قالب‌بندی پیشین رها می‌کند. یک ویرایش متنی نمی‌تواند این را در هیچ جهتی تغییر دهد.

به همین دلیل آوردن دوبارهٔ یک فایل دودویی قدیمی برای «بازگرداندن» روش 2 تعمیر اشتباه است. چیزی جز یک تجزیه‌گر قدیمی‌تر با پیش‌فرض‌های قدیمی‌تر بازنمی‌گرداند و اصلاحاتی را که پس از آن آمده‌اند از شما می‌گیرد. همین استدلال دربارهٔ سست‌کردن بررسی گواهی یا فهرست رمزنگاری به امید بازگشت اتصال هم صادق است.

بررسی سودمند، نسخه و پیکربندی تجزیه‌شده است، نه وجود آن واژه در پرونده:

openvpn --version | head -n 1
grep -rn 'key-method' /etc/openvpn/ 2>/dev/null

چه چیزی را حذف کنیم و از کدام پرونده

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

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

سپس نمونهٔ موردنظر را راه‌اندازی کنید و خروجی راه‌اندازی آن را بخوانید. راه‌اندازی پاک با شنوندهٔ حاضر تأیید این است که این مرحله تمام شده؛ آزمون کارخواه پس از آن به پرسش دیگری پاسخ می‌دهد.

پروفایل ردشده و کارخواه ردشده شبیه هم به نظر می‌رسند

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

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

پرسش‌های سازگاری که آن خط هرگز پاسخ نداد

پروفایل‌هایی که با این دستور دست‌به‌دست می‌شوند معمولاً داستانی دربارهٔ یک سکو با خود دارند و داستان از دلیل فنی بیشتر عمر می‌کند. کارخواه موبایل یا رومیزی هنوز به یک پروفایل کامل پشتیبانی‌شده نیاز دارد: زنجیرهٔ گواهی مورداعتماد، رمزنگاری داده‌ای که هر دو طرف می‌پذیرند، حالت کانال کنترلی که هر دو طرف پیاده می‌کنند، و نبود دستورهایی که ساخت کارخواه آن‌ها را رد می‌کند. هیچ‌کدام از این‌ها با بودن یا نبودن خط قدیمی key-method تعیین نمی‌شود.

فشرده‌سازی پرسش سیاستی جداگانه‌ای با همان شکل است. حذف یک خط key-method هیچ چیزی دربارهٔ پشتیبانی‌شدن یا پذیرفتنی‌بودن یک دستور فشرده‌سازی در استقرار شما نمی‌گوید و این دو تصمیم باید مستقل گرفته شوند. پاک‌کردن چند تنظیم مرتبط با امنیت به‌طور هم‌زمان تا وقتی چیزی وصل شود، همان راهی است که یک پروفایل کارکن به پروفایلی توضیح‌نشده تبدیل می‌شود.

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

مقالات مرتبط