System Updates และ Patch Management บน Linux

การอัพเดต System อย่างสม่ำเสมอเป็นหนึ่งในหน้าที่สำคัญที่สุดของ System Administrator Security Patch ช่วยปิดช่องโหว่ที่ผู้โจมตีอาจนำไปใช้เจาะระบบ ในขณะที่ System Update ยังนำมาซึ่งการแก้ไข Bug และการปรับปรุงประสิทธิภาพ อย่างไรก็ตาม การอัพเดต Production Server โดยไม่มีแผนที่ดีอาจทำให้บริการหยุดชะงักได้

บทความนี้อธิบายกระบวนการจัดการอัพเดตและ Patch Management บน Linux ทั้งบน Debian-based และ RHEL-based Systems รวมถึงการตั้งค่า Automatic Security Updates

ตรวจสอบและติดตั้งอัพเดต

บน Ubuntu/Debian

# ตรวจสอบว่ามีอัพเดตอะไรบ้าง
sudo apt update
apt list --upgradable

# ดูเฉพาะ Security Update
apt list --upgradable 2>/dev/null | grep -i security

# ติดตั้งทุกอัพเดต
sudo apt upgrade -y

# ติดตั้ง Security Update เท่านั้น
sudo apt install -y $(apt list --upgradable 2>/dev/null | grep -i security | awk -F/ '{print $1}')

# ตรวจสอบว่าต้อง Reboot หรือไม่
cat /var/run/reboot-required 2>/dev/null && echo "Reboot required" || echo "No reboot needed"

บน RHEL/CentOS/Rocky Linux

# ตรวจสอบว่ามีอัพเดตอะไรบ้าง
sudo dnf check-update

# ดูเฉพาะ Security Update
sudo dnf updateinfo list security

# ติดตั้งทุกอัพเดต
sudo dnf update -y

# ติดตั้ง Security Update เท่านั้น
sudo dnf update --security -y

# ดู Advisory ของ Security Update
sudo dnf updateinfo list security --advisory RHSA-2024:1234

Automatic Security Updates

Ubuntu/Debian — unattended-upgrades

unattended-upgrades เป็นเครื่องมือที่ช่วยติดตั้ง Security Update โดยอัตโนมัติ โดยค่าเริ่มต้นจะติดตั้งเฉพาะ Security Update เท่านั้น ไม่ใช่ทุก Update

# ติดตั้ง unattended-upgrades
sudo apt install unattended-upgrades

# เปิดใช้งาน
sudo dpkg-reconfigure unattended-upgrades

# ไฟล์ config หลัก
# /etc/apt/apt.conf.d/50unattended-upgrades

# ดู Log การทำงาน
cat /var/log/unattended-upgrades/unattended-upgrades.log

# ทดสอบแบบ Dry Run
sudo unattended-upgrades --dry-run --debug
# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
    // "${distro_id}:${distro_codename}-updates";  // เปิดถ้าต้องการ non-security ด้วย
};

// รีบูตอัตโนมัติถ้าจำเป็น (ระวังบน Production)
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

// ส่ง Email แจ้งเตือน
Unattended-Upgrade::Mail "[email protected]";

RHEL/CentOS — dnf-automatic

# ติดตั้ง dnf-automatic
sudo dnf install dnf-automatic

# ไฟล์ config
# /etc/dnf/automatic.conf

# เปิดใช้งานแบบ Apply Security Updates อัตโนมัติ
sudo systemctl enable --now dnf-automatic-install.timer

# ดู timer ที่ตั้งไว้
systemctl list-timers dnf-*
# /etc/dnf/automatic.conf
[commands]
# security = ติดตั้งเฉพาะ Security Update
# default = ติดตั้งทุก Update
upgrade_type = security
apply_updates = yes

[emitters]
emit_via = email
email_to = [email protected]

Patch Management Workflow สำหรับ Production

บน Production Server การอัพเดตควรมีกระบวนการที่ชัดเจน ไม่ใช่รันคำสั่งทันทีโดยไม่มีแผน

  • ทดสอบบน Staging ก่อน — อัพเดตบน Staging Environment ก่อนเสมอ เพื่อตรวจสอบว่าไม่มี Breaking Change
  • กำหนด Maintenance Window — นัดหมายช่วงเวลาที่ Traffic ต่ำสำหรับการอัพเดต Production เพื่อลดผลกระทบ
  • Backup ก่อนอัพเดต — Snapshot VM หรือ Backup Database ก่อนทุกครั้ง เพื่อ Rollback ได้หากมีปัญหา
  • อัพเดตทีละ Server — ในกรณีที่มีหลาย Server ให้อัพเดตทีละตัวและตรวจสอบก่อนทำตัวถัดไป
  • ตรวจสอบหลังอัพเดต — ตรวจสอบ Service Status, Log และ Application Health Check หลังอัพเดตทุกครั้ง

ตรวจสอบ Kernel และ Reboot

Security Update บางอย่าง โดยเฉพาะ Kernel Update ต้องการ Reboot เพื่อให้มีผล การตรวจสอบว่าต้อง Reboot หรือไม่เป็นสิ่งสำคัญ

# ดู Kernel ที่รันอยู่ตอนนี้
uname -r

# ดู Kernel ที่ติดตั้งอยู่ทั้งหมด
rpm -q kernel       # RHEL-based
dpkg -l linux-image*  # Debian-based

# ตรวจสอบว่าต้อง Reboot
ls /var/run/reboot-required

# ตรวจสอบ Process ที่ยังใช้ Library เก่าอยู่ (ต้อง Restart)
sudo needrestart     # ต้องติดตั้งก่อน: apt install needrestart

# ลบ Kernel เก่าที่ไม่ต้องการ (Ubuntu)
sudo apt autoremove --purge

Security Advisories และ CVE Tracking

Admin ควรติดตาม Security Advisory ของ Distribution ที่ใช้อยู่เพื่อรับรู้ช่องโหว่ที่สำคัญก่อนที่ Automated Update จะทำงาน

  • Ubuntu Security Notices — https://ubuntu.com/security/notices
  • Debian Security — https://www.debian.org/security/
  • Red Hat CVE Database — https://access.redhat.com/security/cve/
  • Rocky Linux Errata — https://errata.rockylinux.org/

สรุป

Patch Management ที่ดีประกอบด้วยการตรวจสอบอัพเดตสม่ำเสมอ การติดตั้ง Security Update ทันทีที่ออกมา การทดสอบบน Staging ก่อน Production และการใช้ unattended-upgrades หรือ dnf-automatic สำหรับ Security Patch อัตโนมัติ สิ่งสำคัญที่สุดคือการ Backup ก่อนอัพเดตและการตรวจสอบ Service Health หลังอัพเดตทุกครั้ง

แนะนำบริการ DE

การจัดการ System Update และ Patch Management บน Server จริงต้องการ Root Access และความยืดหยุ่นในการ Schedule Maintenance Cloud VPS ของ DE ให้สิทธิ์ root เต็มรูปแบบพร้อมความสามารถในการ Snapshot VM ก่อนอัพเดต เหมาะสำหรับฝึก Patch Management Workflow บน Server จริง

หากต้องการโฮสต์เว็บไซต์โดยไม่ต้องกังวลเรื่องการจัดการอัพเดตระบบปฏิบัติการ Cloud Hosting ของ DE มีทีมดูแลด้าน Security Update ให้โดยอัตโนมัติ