بیشتر سرورهایی که نفوذ میشوند با یک ترفند زیرکانه نمیافتند. نرمافزاری اجرا میکردند که یک ایراد شناختهشده و از مدتها پیش اصلاحشده داشت و کسی اصلاحیه را نصب نکرده بود. بهروزرسانیهای امنیتی خودکار این شکاف را میبندند، بدون اینکه لازم باشد یادتان بماند وارد شوید. این یکی از پربازدهترین پنج دقیقههایی است که میتوانید به یک سرور تازه بدهید.
Ubuntu و Debian: unattended-upgrades
ایمیجهای Ubuntu معمولاً آن را از قبل دارند؛ Debian شاید نداشته باشد. نصب و فعالش کنید:
apt update
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades # answer "Yes"
این فایل /etc/apt/apt.conf.d/20auto-upgrades را میسازد:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
دو مقدار 1 یعنی: هر روز فهرست بستهها را بهروز کن و بهروزرسانیهای امنیتی را نصب کن.
درباره ریبوت تصمیم بگیرید
وصلههای کرنل برای اعمال شدن به ریبوت نیاز دارند. برای ریبوت خودکار در ساعتی آرام، /etc/apt/apt.conf.d/50unattended-upgrades را ویرایش و این را تنظیم کنید:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
سرور فقط وقتی ریبوت میشود که یک بهروزرسانی واقعاً به آن نیاز داشته باشد (وقتی /var/run/reboot-required وجود دارد).
آزمایشش کنید
unattended-upgrade --dry-run --debug
لاگها در /var/log/unattended-upgrades/ هستند.
Rocky Linux و AlmaLinux: dnf-automatic
dnf install -y dnf-automatic
/etc/dnf/automatic.conf را ویرایش کنید:
[commands]
upgrade_type = security
apply_updates = yes
تایمر را فعال کنید:
systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer
برای اینکه بفهمید یک بهروزرسانی ریبوت لازم دارد یا نه، dnf-utils را نصب و needs-restarting -r را اجرا کنید.
کدام سیاست ریبوت برای شما مناسب است؟
- یک اپلیکیشن که میتواند شبانه یک دقیقه مکث کند (بات، سرویس شخصی، سایت کوچک): ریبوت خودکار روشن.
- چیزی که مردم شبانهروز استفاده میکنند، یا پایگاهدادهای که ترجیح میدهید خودتان ریبوتش کنید: ریبوت خودکار خاموش، به همراه یادآوری ریبوت وقتی
/var/run/reboot-requiredظاهر شد.
چه چیزی را پوشش نمیدهد
فقط بستههای سیستم. ایمیجهای Docker، وابستگیهای زبان (pip، npm) و فایلهای اجرایی که دستی نصب شدهاند خودشان بهروز نمیشوند: برایشان زمانبندی جداگانه بگذارید. و بهروزرسانیهای داخل یک نسخه خودکارند؛ رفتن به نسخه جدید (Ubuntu 22.04 → 24.04) همچنان کاری عمدی و دستی است.
اگر روزی یک بهروزرسانی بد بوت را خراب کرد، کنسول وب در پنل EQVPS بدون SSH شما را وارد میکند و Managed Backups یک نقطه بازیابی از پیش از تغییر به شما میدهد.
نظرات
هنوز نظری نیست. اولین نفر باشید.