سوکت مدیریت OpenVPN: یک کانال کنترل، نه سنجهها
کارخواه مدیریتی پذیرفتهشده فرمانهای کنترل دارد، نه نمای فقطخواندنی. سوکت یونیکس را در اختیار بگیرید، برای عکسهای لحظهای از نشست صرفنظر کنید و TCP را بیرون نگه دارید.
یک بار از رابط مدیریت وضعیت بخواهید و به نظر میرسد که یک درگاه وضعیت است. اما نیست. وقتی کارخواهی پذیرفته میشود، میتواند فرمانهای کنترل پروتکل را صادر کند، و حسابی که آن کارخواه را اجرا میکند هر چیزی را که این فرمانها میتوانند با سرویسدهنده بکنند به ارث میبرد. برخورد با آن بهعنوان جریانی فقطخواندنی همان اشتباهی است که یک یکپارچهسازی پایش را به کنسولی بدون احراز هویت تبدیل میکند.
باور، و بهای آن
باور این است که شنونده مدیریت معادل یک نقطه پایانی سنجههاست: گردآورندهای وصل کنید، شمارندهها را بخوانید و بروید. آنچه در واقع رخ میدهد این است که گردآورنده نشستی با تواناییهای کنترل باز میکند، و هر فرض دیگری که درباره استقرار کردهاید اکنون به رفتار درست همان گردآورنده وابسته است.
هیچ چیز در رابط، حالت فقطخواندنی را تبلیغ نمیکند. هیچ نقش ناظری برای انتخاب وجود ندارد، و یک نام کاربری در پیکربندی چنین نقشی نمیسازد.
آنچه یک کارخواه پذیرفتهشده واقعاً در دست دارد
سرویسدهنده جامعه هر بار فقط یک کارخواه مدیریتی فعال میپذیرد. این یک جایگاه یعنی یک رابط گرافیکی، یک اسکریپت و یک عامل پایش نمیتوانند همه وصل شوند؛ دومی منتظر میماند یا شکست میخورد تا وقتی اولی نشست را نگه داشته است. اگر طراحی شما خوانندگان همزمان را فرض میکند، از قبل اشتباه است.
جایی که یک عکس لحظهای دورهای کافی است، خروجی فایل وضعیت همان شمارهها را بدون نشست زنده به شما میدهد. نوشتن آن فایل در فواصل منظم و خواندنش با مجوزهای عادی فایل، گردآورنده را کاملاً بیرون از صفحه کنترل نگه میدارد، و این همان ترتیبی است که بیشتر پایشها واقعاً نیاز دارند.
سوکتی در اختیار خود، نه سوکتی باز
یک سوکت دامنه یونیکس مسیر کنترل را از شبکه بیرون نگه میدارد، که نشانی متغیر تونل را از مسئله حذف میکند. اما مسئله مجوزها را حذف نمیکند. پوشه والد باید برای حساب سرویس قابل نوشتن و برای حساب کنترلکننده قابل دسترسی باشد، و این دو اجازه جداگانه هستند:
management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observerفایل گذرواژه راز مدیریت را در خط اول خود دارد. از آن فایل مانند هر مدرک دیگری محافظت کنید و محتوای آن را از گزارشها و تیکتهای پشتیبانی دور نگه دارید. محدودیتهای کاربر و گروه بررسیهای همتا روی سوکت یونیکس هستند، نه مجوزهای سیستم فایل، بنابراین فرایند مورد نظر هم به دسترسی فایل و هم به هویت مطابق نیاز دارد.
دسترسپذیر کردن سوکت برای همه برای رفع یک خطای مجوز، همان اصلاحی است که باید از آن دوری کرد. یک کانال کنترل محلی را به چیزی تبدیل میکند که هر فرایندی روی میزبان میتواند آن را هدایت کند.
انتشار آن روی TCP همان طراحی نیست
انتقال شنونده به یک درگاه TCP آن را امنتر یا راحتتر نمیکند. گذرواژه مدیریت بهصورت متن روشن فرستاده میشود، پس یک شنونده TCP هم مدرک و هم نشست را برای هر کسی که بتواند مسیر را ببیند افشا میکند. دسترسی به آن از میزبان دیگر به یک کانال مدیریت مجاز یا یک عامل محلی کوچک نیاز دارد که فقط مشاهدههای موردنیاز شما را ارائه دهد.
گذرواژه روی انتقال متن روشن، احراز هویت بدون محرمانگی است، و این ترکیب بدتر از آن است که به نظر میرسد، چون احساس محافظت میدهد.
وابستگیهای راهاندازی که نخواسته بودید
چندین گزینه مدیریت چرخه عمر سرویسدهنده را تغییر میدهند. نگه داشتن راهاندازی تا اتصال یک کنترلکننده، یا خاتمه دادن وقتی کنترلکننده ناپدید میشود، یک ناظر اختیاری را به وابستگی سخت تبدیل میکند. آنگاه یک عامل پایش که از کار بیفتد تونل را هم با خود پایین میآورد.
پیش از فعالکردن هر چیزی فراتر از خود سوکت، آن گزینهها را مرور کنید. مشاهده اختیاری باید اختیاری بماند، و سیاست راهاندازی مجدد نباید به گردآورندهای گره بخورد که برای نمودارها اضافه شده است.
فایل سوکتی که پس از یک فرایند ناموفق باقی میماند دلیل وجود یک شنونده نیست. پیش از حذف آن مشخص کنید کدام نمونه صاحب مسیر است، و بهجای پاک کردن فایلها زیر یک سرویسدهنده در حال اجرا از جریان بازیابی خود سرویس استفاده کنید.
پذیرش چه شکلی است
چهار بررسی طراحی را پوشش میدهد: هویت مورد نظر کنترلکننده وصل میشود، فرایندی بدون آن هویت رد میشود، سرویسدهنده از یک کنترلکننده که بدون هشدار قطع میشود جان سالم به در میبرد، و تونل هنوز از یک راهاندازی مجدد کنترلشده ترافیک عبور میدهد. یک اتصال مدیریت موفق فقط صفحه کنترل را ثابت میکند. درباره اینکه ترافیک برنامههای خصوصی کار میکند یا نه چیزی نمیگوید، پس آن را جداگانه آزمایش کنید. چهار نتیجه را جایی بنویسید که اپراتور بعدی بتواند پیدا کند.
مستندات رابط مدیریت مدل تککارخواه و ماهیت ممتاز پروتکل را توصیف میکند، و این همان بخشی است که ارزش خواندن دارد پیش از اینکه داشبوردی را به آن نشانه بگیرید.