SSD Nodes Learn
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-07-24

Ubuntu 24.04 เปิด unattended-upgrades หรือไม่

ตรวจสอบการตั้งค่า unattended-upgrades ใน Ubuntu 24.04 ซึ่งมาพร้อมกับระบบ auto-upgrades แต่ค่า Automatic-Reboot จะถูกตั้งเป็น false ไว้เป็นค่าเริ่มต้นเสมอ

ทำไมการตั้งค่าอัปเดตความปลอดภัยอัตโนมัติจึงมีความสำคัญ

เซิร์ฟเวอร์ที่ไม่มีการติดตั้ง patch คือเป้าหมายที่ง่ายที่สุดบนอินเทอร์เน็ต การบุกรุกเซิร์ฟเวอร์ขนาดเล็กส่วนใหญ่ไม่ได้เกิดจากเทคนิคที่ซับซ้อน แต่เกิดจากช่องโหว่ที่รู้จักกันดีในแพ็กเกจเก่าที่เจ้าของไม่ได้อัปเดต Ubuntu มีเครื่องมือที่ช่วยปิดช่องโหว่นี้โดยอัตโนมัติ: unattended-upgrades จะติดตั้ง security updates ให้โดยอัตโนมัติ ตามกำหนดเวลา โดยที่คุณไม่ต้องล็อกอินเข้าเครื่อง นี่คือวิธีเพิ่มความปลอดภัยที่คุ้มค่าที่สุดสำหรับ VPS และบน Ubuntu ใช้เวลาตั้งค่าเพียงไม่กี่นาที

เครื่องมือนี้ถูกออกแบบมาให้เน้นความปลอดภัยเป็นหลัก (conservative) โดยค่าเริ่มต้นจะติดตั้งเฉพาะ security updates เท่านั้น ไม่ใช่การอัปเกรดทุกแพ็กเกจ เนื่องจาก security patch มีความเสี่ยงต่ำและควรติดตั้งโดยไม่ต้องตรวจสอบ ในขณะที่การอัปเกรดฟีเจอร์อาจเปลี่ยนพฤติกรรมการทำงานของระบบที่ใช้งานอยู่ ค่าเริ่มต้นนี้เหมาะสมที่สุดสำหรับเซิร์ฟเวอร์ส่วนใหญ่ และคู่มือนี้จะคงค่าเดิมไว้โดยจะแสดงเฉพาะการตั้งค่าบางส่วนที่ควรเปลี่ยน

Step 1: ติดตั้งและเปิดใช้งาน

บน Ubuntu 24.04 แพ็กเกจนี้มักจะมีอยู่ในระบบอยู่แล้วแต่ไม่ได้ถูกเปิดใช้งานเสมอไป ให้ติดตั้งและเปิดใช้งานดังนี้:

sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

หน้าจอ prompt ของ dpkg-reconfigure จะถามคำถาม yes-or-no เพียงข้อเดียวว่าต้องการดาวน์โหลดและติดตั้ง stable updates โดยอัตโนมัติหรือไม่ ให้ตอบ yes ซึ่งจะทำให้เกิดไฟล์ที่เปิดใช้งาน daily job ดังนี้:

cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

บรรทัดแรกคือการรีเฟรชรายการแพ็กเกจทุกวัน บรรทัดที่สองคือการรัน unattended upgrade ทุกวัน เมื่อตั้งค่าเป็น 1 เครื่องจะตรวจสอบและติดตั้ง security updates ทุกวันผ่าน systemd timer โดยที่คุณไม่ต้องดำเนินการใดๆ เพิ่มเติม

Step 2: ตัดสินใจว่าต้องการให้อัปเดตอะไรโดยอัตโนมัติ

นโยบายการอัปเดตถูกกำหนดไว้ใน /etc/apt/apt.conf.d/50unattended-upgrades ให้เปิดไฟล์นี้และดูที่บล็อก Allowed-Origins บริเวณด้านบน:

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}";
    "${distro_id}:${distro_codename}-security";
    "${distro_id}ESMApps:${distro_codename}-apps-security";
    "${distro_id}ESM:${distro_codename}-infra-security";
};

บรรทัด -security คือส่วนที่สำคัญและถูกเปิดใช้งานไว้โดยค่าเริ่มต้น นี่คือนโยบายแบบเน้นความปลอดภัย: ติดตั้ง security updates ให้โดยอัตโนมัติ แต่ปล่อยให้การอัปเดตฟีเจอร์ทั่วไปเป็นการจัดการด้วยมือเมื่อคุณต้องการ คุณสามารถเพิ่มบรรทัด origin "${distro_id}:${distro_codename}-updates" เพื่อให้อัปเดตทุกอย่างโดยอัตโนมัติได้ แต่สำหรับเซิร์ฟเวอร์ที่รันบริการสำคัญ การติดตั้งเฉพาะ security patches โดยอัตโนมัติเป็นค่าเริ่มต้นที่ปลอดภัยกว่า ให้คงค่าเดิมไว้ตามที่ติดตั้งมา เว้นแต่คุณจะมีเหตุผลเฉพาะเจาะจงที่ต้องการเปลี่ยน

Step 3: การจัดการการรีบูตเครื่อง

การอัปเดตบางอย่าง เช่น kernel หรือ core library จะมีผลสมบูรณ์ก็ต่อเมื่อมีการรีบูตเครื่องเท่านั้น unattended-upgrades จะไม่รีบูตเซิร์ฟเวอร์ของคุณเว้นแต่คุณจะสั่ง ซึ่งหมายความว่า kernel ที่ถูก patch แล้วอาจจะยังไม่ถูกใช้งานจนกว่าคุณจะรีบูตเครื่อง ให้ตัดสินใจวิธีจัดการเรื่องนี้และตั้งค่าใน 50unattended-upgrades อย่างชัดเจน:

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

การตั้งค่านี้จะรีบูตเซิร์ฟเวอร์ตอนตีสี่ เฉพาะเมื่อมีการอัปเดตที่จำเป็นต้องรีบูตเท่านั้น สำหรับ VPS เดี่ยวที่ไม่มี cluster สำหรับทำ failover การรีบูตสั้นๆ ในช่วงเช้ามืดมักเป็นทางเลือกที่เหมาะสมเพื่อให้ได้ kernel fixes ล่าสุด หากเซิร์ฟเวอร์ของคุณรันบริการที่ห้ามรีบูตโดยไม่คาดคิด ให้ปิดการรีบูตอัตโนมัติและควรทำรายการรีบูตด้วยตัวเองหลังจากตรวจสอบ /var/run/reboot-required แล้ว

Step 4: ตรวจสอบการทำงาน

ไม่ต้องรอให้ครบวันเพื่อดูว่า job ทำงานหรือไม่ ให้ลองรัน dry run เพื่อดูรายการที่จะถูกติดตั้งโดยไม่มีการเปลี่ยนแปลงใดๆ:

sudo unattended-upgrade --dry-run --debug

ผลลัพธ์จะแสดงรายการแพ็กเกจที่ระบบพิจารณาและแหล่งที่มา (origins) ของแพ็กเกจเหล่านั้น เพื่อให้คุณเห็นการทำงานของนโยบาย หลังจากที่ระบบรันงานจริงไปแล้วอย่างน้อยหนึ่งครั้ง สามารถดูบันทึกได้ที่นี่:

cat /var/log/unattended-upgrades/unattended-upgrades.log

Log นี้คือคำตอบของคำถามที่ว่า "เซิร์ฟเวอร์ของฉันกำลังติดตั้ง patch ให้ตัวเองจริงหรือไม่" หากแสดงรายการ security packages ที่ถูกติดตั้งตามกำหนดเวลา แสดงว่าระบบทำงานปกติ

ความเกี่ยวข้องในภาพรวม

การอัปเดตอัตโนมัติเป็นเพียงหนึ่งในชั้นของการทำ hardening เซิร์ฟเวอร์ ไม่ใช่ทั้งหมด มันช่วยป้องกันไม่ให้ช่องโหว่ที่รู้จักกันดีค้างอยู่ในระบบ แต่ไม่ได้ช่วยควบคุมว่าใครสามารถล็อกอินเข้าเครื่องได้หรือบริการใดถูกเปิดเผยสู่ภายนอก ควรใช้งานร่วมกับ SSH hardening แบบใช้เฉพาะ key เพื่อป้องกันการ brute-force, ใช้ UFW firewall แบบ default-deny เพื่อให้เข้าถึงได้เฉพาะบริการที่เลือก และใช้ unprivileged service users เพื่อป้องกันไม่ให้แอปพลิเคชันที่ถูกเจาะสามารถควบคุมเครื่องได้ทั้งหมด การติดตั้ง patch ช่วยปิดช่องโหว่ที่คุณทราบ แต่ชั้นการป้องกันอื่นๆ จะช่วยจำกัดความเสียหายจากช่องโหว่ที่คุณไม่ทราบ

FAQ

unattended-upgrades ติดตั้งทุกการอัปเดตหรือเฉพาะ security updates เท่านั้น?

โดยค่าเริ่มต้นคือเฉพาะ security updates เท่านั้น บล็อก Allowed-Origins ใน /etc/apt/apt.conf.d/50unattended-upgrades จะเปิดใช้งาน origins -security และปล่อยให้การอัปเดตฟีเจอร์ทั่วไปเป็นการจัดการด้วยมือ นี่คือความตั้งใจในการออกแบบ เนื่องจาก security patches มีความเสี่ยงต่ำและควรติดตั้งอัตโนมัติ ในขณะที่การอัปเกรดฟีเจอร์อาจเปลี่ยนพฤติกรรมของระบบ ดังนั้นเซิร์ฟเวอร์ส่วนใหญ่ควรใช้ค่าเริ่มต้นแบบเน้นความปลอดภัยนี้

การอัปเดตอัตโนมัติจะรีบูตเซิร์ฟเวอร์ของฉันหรือไม่?

จะรีบูตก็ต่อเมื่อคุณสั่งเท่านั้น ให้ตั้งค่า Unattended-Upgrade::Automatic-Reboot "true" และ Automatic-Reboot-Time ในไฟล์คอนฟิก แล้วเซิร์ฟเวอร์จะรีบูตตามเวลาที่กำหนดเมื่อมีการอัปเดตที่จำเป็น เช่น หลังการ patch kernel หากไม่ได้ตั้งค่าไว้ kernel ที่ถูก patch แล้วจะรอจนกว่าคุณจะรีบูตเครื่องเอง ให้ตรวจสอบ /var/run/reboot-required เพื่อดูว่ามีการรีบูตค้างอยู่หรือไม่

ฉันจะตรวจสอบได้อย่างไรว่าการอัปเดตอัตโนมัติกำลังทำงานอยู่จริง?

รัน sudo unattended-upgrade --dry-run --debug เพื่อดูรายการที่จะถูกติดตั้งในขณะนี้โดยไม่มีการเปลี่ยนแปลงใดๆ และอ่าน /var/log/unattended-upgrades/unattended-upgrades.log เพื่อดูบันทึกการทำงานที่ผ่านมา นอกจากนี้การติดตั้งอัตโนมัติทุกครั้งจะถูกบันทึกไว้ใน /var/log/apt/history.log ด้วย หาก log แสดงรายการ security packages ที่ติดตั้งตามกำหนดเวลา แสดงว่า timer ทำงานปกติ หาก dry run แสดงผลเป็น No packages found that can be upgraded unattended แสดงว่าทุกอย่างเป็นเวอร์ชันล่าสุดแล้ว หรือแหล่งที่มา (origins) ที่อนุญาตไว้แคบเกินกว่าจะตรงกับ security repository

unattended-upgrades เพียงพอที่จะทำให้เซิร์ฟเวอร์ปลอดภัยหรือไม่?

ไม่เพียงพอ แต่เป็นชั้นการป้องกันที่จำเป็น มันช่วยป้องกันไม่ให้ช่อง vulnerabilities ที่รู้จักกันดีค้างอยู่ในระบบ ซึ่งช่วยหยุดการบุกรุกที่พบบ่อยที่สุด แต่ไม่ได้ควบคุมการเข้าถึงหรือการเปิดเผยบริการ ควรใช้งานร่วมกับการทำ SSH hardening, การตั้งค่า firewall แบบ default-deny และการใช้ service users แบบ least-privilege เพื่อให้เซิร์ฟเวอร์ของคุณปลอดภัยจากการถูกเจาะอย่างแท้จริง

#unattended-upgrades#ubuntu-24-04#security#updates#hardening