تحديثات الأمان التلقائية
كيف تُعدّ unattended-upgrades على Debian و Ubuntu و dnf-automatic على AlmaLinux لتثبّت التصحيحات نفسها دون توقف الخدمة ليلًا.
آخر تحديث 23 أغسطس 2026
معظم الاختراقات تحدث عبر ثغرات جرى سدّها منذ أشهر. التحديثات اليدوية تؤجَّل، أما التلقائية فلا. الإعداد السليم يثبّت تحديثات الأمان فقط ويترك كل ما عداها دون مساس.
Debian وUbuntu
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades
الملف /etc/apt/apt.conf.d/50unattended-upgrades:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Package-Blacklist {
"postgresql-.*";
"docker-ce";
};
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "you@example.com";
يوجد الجدول الزمني في /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
تشغيل تجريبي، دون إجراء أي تغييرات:
unattended-upgrade --dry-run --debug
systemctl status unattended-upgrades
cat /var/log/unattended-upgrades/unattended-upgrades.log
AlmaLinux وCentOS Stream
dnf install -y dnf-automatic
في /etc/dnf/automatic.conf:
[commands]
upgrade_type = security
apply_updates = yes
reboot = never
systemctl enable --now dnf-automatic.timer
systemctl list-timers | grep dnf
ما الذي يجب استثناؤه
أضف إلى قائمة الاستثناء كل ما يتعطّل عند تغيّر إصداره بشكل غير متوقع: خادم قاعدة البيانات، وDocker، ومحرّك التطبيق نفسه. حدّثها يدويًا في وقت هادئ — راجع تحديثات النظام والحزم.
تُثبَّت تحديثات أمان النواة أيضًا، لكنها لا تدخل حيز التنفيذ إلا بعد إعادة التشغيل:
test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs
إعادة التشغيل: قرار بشري فقط
الإغراء قوي لضبط Automatic-Reboot "true"، لكن إعادة التشغيل الليلية التلقائية تعني أن الخدمة تُعاد بلا أحد يراقب. وإذا لم تعُد إحدى الخدمات للعمل، فستعرف بالأمر صباحًا من مستخدميك.
حل وسط معقول: تُثبَّت التحديثات تلقائيًا، وتعيد التشغيل يدويًا مرة واحدة في الشهر مع مراقبة الطرفية في لوحة /hosting/vds/m/<id>. وأثناء ذلك، تحقق من أن الخدمات تبدأ من تلقاء نفسها:
systemctl is-enabled nginx postgresql
systemctl list-units --state=failed
أخطاء شائعة
| الخطأ | النتيجة | الإصلاح |
|---|---|---|
| تفعيل التحديثات لكل المستودعات، لا لمستودعات الأمان فقط | وصول تغييرات في الميزات | الإبقاء على مصدر -security فقط |
| قاعدة البيانات ليست في قائمة الاستثناء | إصدار رئيسي يتلف البيانات | إضافتها إلى Package-Blacklist |
| إعادة تشغيل تلقائية في الليل | لم تعُد الخدمة للعمل ولم يلاحظ أحد | Automatic-Reboot "false" |
| الإعداد ثم النسيان | النواة تُحدَّث لكن التحديث لا يُطبَّق | فحص reboot-required مرة في الشهر |
| الحزم المنزَّلة تملأ القرص | نفاد المساحة | الإبقاء على تنظيف ذاكرة التخزين المؤقت التلقائي مفعّلًا |
التحديثات التلقائية تأمين، وليست بديلًا عن الانتباه. مرة في الشهر، افتح الجهاز، وانظر في سجل التحديثات، وقائمة الخدمات الفاشلة، وما إذا كانت إعادة التشغيل مطلوبة. خمس عشرة دقيقة شهريًا تغطي معظم السيناريوهات الواردة في مقال علامات الاختراق.