پچ کردن سرور بدون وقفه سرویس
بهروزرسانی امنیتی که سرویس را از کار بیندازد، عملاً یعنی انجام ندادن آن است. راهحل، برنامهریزی درست و استفاده از ابزارهای مناسب است.
اصل اول: همیشه راه بازگشت داشته باشید
قبل از هر تغییری، مطمئن شوید:
- دسترسی SSH روی یک کنسول فیزیکی دارید
- از وضعیت فعلی نسخه پشتیبان گرفتهاید
- میدانید چطور به نسخه قبلی برگردید
اگر سرور در دیتاسنتر است، کنسول از راه دور یا IPMI دسترسی شما را نجات میدهد.
روش اول: خوشهبندی
اگر دو سرور یکسان دارید:
- سرور اول را از خوشه خارج کنید
- وصلهها را اعمال کنید
- تست کنید
- به خوشه برگردانید
- همین کار را با سرور دوم انجام دهید
سرویس در این مدت قطع نمیشود، چون همیشه یک سرور فعال است.
روش دوم: بازسازی سرویس
اگر خوشه ندارید و سرویس تکنمونهای است:
- یک نمونه جدید از آخرین تصویر یا کانفیگ بسازید
- سرویس را روی نمونه جدید اجرا کنید
- آزمایشی بررسی کنید
- ترافیک را به نمونه جدید منتقل کنید
- سرور اصلی را وصله کنید
- پس از تأیید، ترافیک را برگردانید
فهرست وصلههای بحرانی
این موارد را در اولویت قرار دهید:
- آسیبپذیریهای بدون احراز هویت (RCE)
- آسیبپذیریهایی که در حال بهرهبرداری فعال هستند
- باگهای امنیتی در کتابخانههای پرکاربرد مثل OpenSSL و curl
- بهروزرسانیهای مربوط به کرنل لینوکس
ساخت روال تیمی
یک فهرست بهروز بهروز برای خودتان نگه دارید. هر هفته مرور کنید و موارد بحرانی را فوری، بقیه را در بازه نگهداری برنامهریزیشده اعمال کنید.
برای سرورهای لینوکسی، ابزارهایی مثل unattended-upgrades میتوانند وصلههای امنیتی را خودکار و در ساعات کمبار اعمال کنند.
نکته مهم درباره وصله بدون ریاستارت
بسیاری از وصلههای کرنل و سرویسها بدون ریاستارت اعمال میشوند، اما تا زمانی که سرویس ریاستارت نشود، سرویس قدیمی در حافظه باقی میماند. این را در برنامهریزی لحاظ کنید.