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

دو راه برای پاسخ به درخواست اعتبارنامه

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

مدل دوم auth-user-pass است که به یک فایل اشاره می‌کند؛ فایل انبار است و کلاینت وقتی مقداری لازم باشد آن را می‌خواند. مواجهه‌ای که اینجا مهم است حافظه فرایند نیست، بلکه مجوزها و مالکیت آن فایل است. هشدار راه‌اندازی از دستورهای پیکربندی می‌آید، نه از بازرسی نحوه ارائه گذرواژه، پس در هر دو مدل ظاهر می‌شود و به هیچ‌کدام اشاره نمی‌کند.

بقیه این مقایسه از همان شکاف می‌آید: مدیریت حافظه برای یک مدل، مدیریت فایل و هویت فرایند برای دیگری.

auth-nocache در واقع چه چیزی را دور می‌ریزد

با ورود تعاملی، --auth-nocache نسخه ذخیره‌شده را پس از استفاده از حافظه حذف می‌کند. هزینه، درخواست تازه در هر بازه مذاکره مجدد است، چون دور بعدی نمی‌تواند آنچه دور ریخته شده را دوباره به کار ببرد.

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

گزینه را اضافه کنید چون آن معاوضه را می‌فهمید، نه چون هشداری ظاهر شد. گزینه‌ای که برای ساکت‌تر کردن یک گزارش اضافه شود، گزینه‌ای است که هیچ‌کس اثرش را اندازه نگرفته.

کجا مسیر متکی به فایل می‌شکند

کلاینتی که به‌عنوان root شروع می‌کند تا دستگاه تونل را باز کند و سپس به user و group تغییر می‌کند، فایل اعتبارنامه را دو بار می‌خواند: یک بار پیش از تغییر، یک بار در مذاکره مجددی که پس از آن می‌آید. اگر فایل حالت 600 داشته باشد و مالکش root باشد، خواندن دوم شکست می‌خورد و شکست یک ساعت بعد به‌صورت خطای احراز هویت ظاهر می‌شود که شبیه مشکل سرور است. گزارش کلاینت را حول بازه مذاکره مجدد بررسی کنید، سپس حساب و فایل را با هم بررسی کنید.

stat -c '%a %U:%G' /etc/openvpn/client.creds
ps -o user:12,args -C openvpn | head

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

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

موردی که واقعاً این گزینه را می‌خواهد

ورودی که کد یک‌بارمصرف دارد auth-nocache را به دلیل دیگری می‌خواهد. کد یک‌بارمصرف با نخستین احراز هویت مصرف می‌شود، پس نسخه ذخیره‌شده در مذاکره مجدد بعدی بی‌فایده است و یک مقدار کهنه حتی ممکن است دوباره پخش شود.

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

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

مقایسه در یک تصمیم

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

هیچ‌یک از مدل‌ها گذرواژه ذخیره‌شده را به‌تنهایی ایمن نمی‌کند و هیچ‌کدام هشدار راه‌اندازی را معنادار نمی‌کند.

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

مقالات مرتبط