دليل التحديثات التلقائية: إعداد unattended-upgrades
تثبيت وإعداد unattended-upgrades وتحديثات الأمان فقط وإشعارات البريد الإلكتروني والاختبار والمخاطر والتخفيف منها.
جدول المحتويات
دليل التحديثات التلقائية: إعداد unattended-upgrades
أحد المتطلبات الأساسية لأمان الخادم هو التطبيق الفوري لتصحيحات الأمان. نسيان التحديث اليدوي قد يُعرّض خادمك لثغرات أمنية معروفة. تُطبّق حزمة unattended-upgrades تحديثات الأمان تلقائياً على أنظمة Ubuntu وDebian. يغطي هذا الدليل التثبيت والإعداد وأفضل الممارسات.
ما هو unattended-upgrades؟
unattended-upgrades هو ملحق APT يُنزّل تحديثات الأمان ويثبّتها تلقائياً دون تدخل بشري. مثالي لـ:
- التطبيق السريع لتصحيحات الأمان الحرجة
- التحديثات التلقائية خارج ساعات العمل أو في نوافذ الصيانة
- تبسيط تتبع التحديثات عند إدارة خوادم متعددة
قد تتسبب التحديثات التلقائية أحياناً في انقطاع الخدمة. تحديثات النواة بالذات تتطلب إعادة تشغيل. قم بالإعداد بعناية في بيئات الإنتاج.
التثبيت
Ubuntu/Debian
# تثبيت الحزمة
sudo apt update
sudo apt install unattended-upgrades apt-listchanges -y
# التحقق من التثبيت
dpkg -l unattended-upgrades
# التحقق من حالة الخدمة
systemctl status unattended-upgrades
معالج الإعداد التلقائي
# إعداد الإعدادات الأساسية تلقائياً
sudo dpkg-reconfigure -plow unattended-upgrades
# اختر "Yes"
الإعداد الأساسي
ملف الإعداد الرئيسي: /etc/apt/apt.conf.d/50unattended-upgrades
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
// تحديثات أمان Ubuntu
"${distro_id}:${distro_codename}-security";
// جميع التحديثات (غير موصى به — يُفضَّل الأمان فقط)
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
};
// استثناء حزم معينة من التحديثات
Unattended-Upgrade::Package-Blacklist {
// "nginx";
// "mysql-server";
// "php*";
};
// إعادة التشغيل التلقائية بعد التحديثات
Unattended-Upgrade::Automatic-Reboot "false";
// وقت إعادة التشغيل (فقط إذا كان Automatic-Reboot صحيحاً)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// إزالة التبعيات غير المستخدمة
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// إزالة حزم النواة غير المستخدمة
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// إشعار البريد الإلكتروني
Unattended-Upgrade::Mail "admin@rexe.tr";
// إرسال بريد إلكتروني عند التغييرات فقط
Unattended-Upgrade::MailReport "on-change";
// الخيارات: "always" أو "only-on-error" أو "on-change"
// الاحتفاظ بسجل التحديثات
Unattended-Upgrade::SyslogEnable "true";
جدول التحديثات
يُعدَّ تكرار التحديثات في /etc/apt/apt.conf.d/20auto-upgrades:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
// تحديث قائمة الحزم يومياً
APT::Periodic::Update-Package-Lists "1";
// تنزيل الحزم القابلة للترقية يومياً
APT::Periodic::Download-Upgradeable-Packages "1";
// تشغيل unattended-upgrades يومياً
APT::Periodic::Unattended-Upgrade "1";
// تنظيف ذاكرة التخزين المؤقت القديمة كل 7 أيام
APT::Periodic::AutocleanInterval "7";
القيم بالأيام. "1" = يومياً، "7" = أسبوعياً، "0" = معطّل.
تحديثات الأمان فقط
تطبيق تحديثات الأمان فقط تلقائياً هو النهج الأكثر أماناً لخوادم الإنتاج:
Unattended-Upgrade::Allowed-Origins {
// تحديثات الأمان فقط
"${distro_id}:${distro_codename}-security";
};
// تعليق جميع مصادر التحديثات الأخرى
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
إشعارات البريد الإلكتروني
yتطلب mailutils أو postfix لإشعارات التحديث:
# تثبيت mailutils
sudo apt install mailutils -y
# لإعداد SMTP بسيط
sudo apt install ssmtp -y
sudo nano /etc/ssmtp/ssmtp.conf
root=admin@rexe.tr
mailhub=smtp.gmail.com:587
AuthUser=بريدك@gmail.com
AuthPass=كلمة-مرور-التطبيق
UseTLS=YES
UseSTARTTLS=YES
# اختبار البريد الإلكتروني
echo "رسالة اختبار" | mail -s "اختبار تحديث الخادم" admin@rexe.tr
اختبار الإعداد
تشغيل تجريبي (Dry Run)
# محاكاة دون تحديث فعلي
sudo unattended-upgrade --dry-run --debug
# ناتج أكثر تفصيلاً
sudo unattended-upgrade -d --dry-run
تشغيل يدوي
# تشغيل unattended-upgrades فوراً
sudo unattended-upgrade -d
# التشغيل في الوضع التفصيلي
sudo unattended-upgrade --verbose
مراجعة ملفات السجل
# ملف السجل الرئيسي
cat /var/log/unattended-upgrades/unattended-upgrades.log
# سجلات الأخطاء
cat /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
# مراقبة السجل في الوقت الفعلي
tail -f /var/log/unattended-upgrades/unattended-upgrades.log
تحديثات النواة وإعادة التشغيل
تحديثات النواة تتطلب اهتماماً خاصاً:
# التحقق من الحاجة لإعادة التشغيل
cat /var/run/reboot-required
# الحزم التي تتطلب إعادة تشغيل
cat /var/run/reboot-required.pkgs
# فحص الحاجة لإعادة التشغيل
if [ -f /var/run/reboot-required ]; then
echo "إعادة التشغيل مطلوبة!"
fi
إعداد إعادة التشغيل التلقائية
// تفعيل إعادة التشغيل التلقائية
Unattended-Upgrade::Automatic-Reboot "true";
// وقت إعادة التشغيل (2:00 صباحاً)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// عدم إعادة التشغيل إذا كان المستخدمون مسجلين
Unattended-Upgrade::Automatic-Reboot-WithUsers "false";
قبل تفعيل إعادة التشغيل التلقائية، قيّم ما إذا كان تطبيقك يتحمل إعادة التشغيل. تُفضَّل إعادة التشغيل اليدوية لأنظمة الإنتاج الحرجة.
المخاطر وتخفيفها
المخاطر المحتملة
- انقطاع الخدمة: بعض التحديثات تُعيد تشغيل الخدمات
- تعارضات التبعيات: قد تحدث تعارضات الحزم في حالات نادرة
- تغييرات الإعداد: قد تُعدّل التحديثات ملفات الإعداد
- تحديثات النواة: تتطلب إعادة تشغيل
تخفيف المخاطر
Unattended-Upgrade::Package-Blacklist {
// خادم قاعدة البيانات الحرج
"mysql-server";
"postgresql";
// خادم الويب
"nginx";
"apache2";
// النواة (للتحديثات اليدوية)
"linux-image*";
"linux-headers*";
};
# التحقق من حالة الخدمات بعد التحديثات
systemctl --failed
# مراجعة السجلات بانتظام
tail -100 /var/log/unattended-upgrades/unattended-upgrades.log
dnf-automatic لـ CentOS/AlmaLinux/RHEL
تستخدم الأنظمة المستندة إلى RPM dnf-automatic:
# التثبيت
sudo dnf install dnf-automatic -y
# الإعداد
sudo nano /etc/dnf/automatic.conf
[commands]
# تحديثات الأمان فقط
upgrade_type = security
# تطبيق التحديثات تلقائياً
apply_updates = yes
[emitters]
# إشعار البريد الإلكتروني
emit_via = email
email_to = admin@rexe.tr
# تفعيل الخدمة
sudo systemctl enable --now dnf-automatic.timer
# التحقق من الحالة
sudo systemctl status dnf-automatic.timer
على أنظمة Ubuntu وCentOS، راقب ملفات السجل عن كثب خلال الأسبوع الأول بعد تفعيل التحديثات التلقائية. هذا يساعدك على اكتشاف المشاكل غير المتوقعة مبكراً.
الخلاصة
unattended-upgrades أداة قوية للحفاظ على أمان خوادم REXE. من خلال التطبيق التلقائي لتحديثات الأمان فقط وإضافة الحزم الحرجة إلى القائمة السوداء وتفعيل إشعارات البريد الإلكتروني، يمكنك الحفاظ على بيئة خادم آمنة ومستقرة. المراجعة المنتظمة للسجلات والتحقق في بيئة الاختبار يجعل عملية التحديث التلقائي أكثر موثوقية.
مقالات ذات صلة
الاتصال بخادم VDS عبر SSH: PuTTY والطرفية والمفاتيح
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
الاتصال بـ Windows VDS عبر RDP: دليل شامل للمبتدئين
دليل خطوة بخطوة للاتصال بـ Windows Server VDS عبر RDP: الإعداد الكامل، تفعيل NLA للأمان، إنشاء قاعدة تصفية Path Panel واستكشاف الأخطاء وإصلاحها.
تغيير نظام تشغيل خادم VDS: دليل إعادة التثبيت خطوة بخطوة
تغيير نظام تشغيل خادم VDS عبر لوحة REXE: نصائح النسخ الاحتياطي قبل التثبيت، توزيعات Linux المدعومة وإصدارات Windows Server المتاحة للتثبيت الآن.