Hướng Dẫn Bật Tự Động Cập Nhật Bảo Mật Trên VPS Ubuntu

Hướng dẫn bật unattended-upgrades trên VPS Ubuntu để tự động cài bản vá bảo mật, kiểm tra log, dry-run, reboot có kiểm soát và tránh lỗi khi dùng repository bên thứ ba.

Một VPS Ubuntu chạy 24/7 rất dễ bị bỏ quên việc cập nhật bảo mật nếu người quản trị chỉ đăng nhập khi có sự cố. Ubuntu cung cấp gói `unattended-upgrades` để tự động tải và cài các bản cập nhật đủ điều kiện, đặc biệt là security updates, theo lịch của APT. Cách này giúp giảm khoảng thời gian hệ thống tồn tại lỗ hổng đã có bản vá, nhưng không có nghĩa bạn nên bật mọi loại update và tự reboot vô điều kiện. Bài viết này hướng dẫn cách kiểm tra `unattended-upgrades`, bật bằng `dpkg-reconfigure`, tạo file cấu hình drop-in riêng, chạy dry-run, xem log, kiểm soát automatic reboot và hiểu giới hạn với PPA hoặc repository bên thứ ba.

Điểm quan trọng Hãy lựa chọn dịch vụ dựa trên nhu cầu sử dụng thực tế và theo dõi tài nguyên thường xuyên để có hiệu quả tốt nhất.

Một VPS Ubuntu chạy website, Docker, API hoặc dịch vụ nội bộ cần được vá bảo mật đều đặn. Nếu chỉ cập nhật thủ công, hệ thống có thể bỏ lỡ bản vá quan trọng trong nhiều ngày hoặc nhiều tuần.

Ubuntu cung cấp công cụ unattended-upgrades để tự động áp dụng các bản cập nhật đủ điều kiện theo cấu hình APT. Tài liệu bảo mật Ubuntu cho biết cơ chế này được cài mặc định trên Ubuntu Server hiện đại và có thể tự động áp dụng security updates theo lịch hệ thống.

Bài viết này hướng dẫn cách cấu hình theo hướng an toàn: ưu tiên security update, dùng file drop-in thay vì sửa trực tiếp file mặc định, kiểm tra bằng dry-run và chỉ bật automatic reboot khi bạn hiểu tác động tới workload production.

1. unattended-upgrades là gì?

unattended-upgrades là chương trình tự động cài các bản cập nhật từ những nguồn APT được phép.

Nó hoạt động cùng APT periodic/systemd service và có thể:

  • tải bản cập nhật;
  • cài security updates;
  • ghi log;
  • xử lý một số thay đổi cấu hình package;
  • tự reboot nếu được cấu hình.

2. Tại sao VPS nên tự động cập nhật security patch?

VPS public Internet có thể chạy liên tục nhiều tháng. Nếu không vá:

  • OpenSSH có thể tồn tại lỗ hổng đã biết;
  • web server/runtime có thể lỗi thời;
  • kernel/library có thể thiếu bản vá;
  • bot Internet có thể khai thác lỗ hổng trước khi bạn nhớ update.

Automation giúp giảm phụ thuộc vào trí nhớ của người quản trị.

3. Tự động update có rủi ro không?

Có.

Một bản cập nhật có thể:

  • restart service;
  • thay đổi dependency;
  • yêu cầu reboot;
  • gây khác biệt với ứng dụng legacy;
  • xung đột package bên thứ ba.

Vì vậy production server vẫn cần:

  • backup/snapshot;
  • maintenance window;
  • monitoring;
  • rollback plan.

4. Kiểm tra gói unattended-upgrades

apt policy unattended-upgrades

Kiểm tra package đã cài:

dpkg -l | grep unattended-upgrades

Nếu chưa có:

sudo apt update
sudo apt install unattended-upgrades -y

5. Bật unattended-upgrades bằng công cụ chuẩn

Ubuntu hỗ trợ:

sudo dpkg-reconfigure unattended-upgrades

Chọn Yes khi được hỏi bật automatic updates.

Đây là cách đơn giản cho người mới.

6. Kiểm tra cấu hình periodic

Xem:

cat /etc/apt/apt.conf.d/20auto-upgrades

Bạn có thể thấy cấu hình tương tự:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Giá trị 1 thường biểu thị chạy theo chu kỳ ngày.

7. File cấu hình mặc định nằm ở đâu?

/etc/apt/apt.conf.d/50unattended-upgrades

Ubuntu khuyến nghị không sửa trực tiếp file mặc định nếu có thể, vì thay đổi package trong tương lai có thể tạo conflict.

Thay vào đó, tạo file drop-in có số lớn hơn.

8. Tạo file cấu hình riêng

Ví dụ:

sudo nano /etc/apt/apt.conf.d/60custom-unattended-upgrades

Bạn có thể thêm các option riêng tại đây.

Cấu hình trong file số lớn hơn sẽ được đọc sau file mặc định.

9. Chỉ cài security updates có được không?

Có thể cấu hình Allowed-Origins/Origins-Pattern để chỉ cho phép các nguồn mong muốn.

Tuy nhiên, cú pháp phụ thuộc phiên bản Ubuntu và nội dung file mặc định.

Cách an toàn là đọc:

less /etc/apt/apt.conf.d/50unattended-upgrades

và tạo override tối thiểu thay vì copy nguyên file cũ từ Internet.

10. Kiểm tra cấu hình hiệu lực

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

Lệnh này mô phỏng quá trình update mà không cài thật.

Bạn nên đọc output để xác nhận:

  • package nào được chọn;
  • origin nào được phép;
  • có lỗi dependency không.

11. Xem log unattended-upgrades

Log chính thường ở:

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

Xem 100 dòng cuối:

sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades.log

Log dpkg:

/var/log/unattended-upgrades/unattended-upgrades-dpkg.log

12. Kiểm tra systemd timer liên quan APT

systemctl list-timers | grep apt

Bạn có thể thấy các timer/service như:

  • apt-daily.timer;
  • apt-daily-upgrade.timer.

Đây là cách Ubuntu hiện đại kích hoạt các tác vụ APT định kỳ.

13. Chạy service thủ công để test

sudo systemctl start apt-daily-upgrade.service

Sau đó kiểm tra:

systemctl status apt-daily-upgrade.service

Và xem log unattended-upgrades.

14. Automatic reboot có nên bật không?

Không nên bật mặc định trên mọi production VPS.

Nếu server chạy:

  • website quan trọng;
  • database;
  • queue worker;
  • game server;
  • ứng dụng realtime;

reboot bất ngờ có thể gây downtime.

Tốt hơn là quyết định dựa trên workload và maintenance policy.

15. Cách bật automatic reboot có kiểm soát

Trong file drop-in:

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:30";

Ví dụ này đặt thời gian reboot vào 03:30 nếu update cần restart.

Đây chỉ là ví dụ. Hãy chọn giờ traffic thấp.

16. Nếu không muốn tự reboot thì làm sao biết máy cần restart?

Kiểm tra:

if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fi

Bạn có thể kết hợp monitoring hoặc cron để gửi cảnh báo thay vì reboot tự động.

17. Kiểm tra package nào yêu cầu reboot

cat /var/run/reboot-required.pkgs 2>/dev/null

Không phải hệ thống nào cũng có file này mọi lúc.

18. Security updates có phased update không?

Ubuntu cho biết security updates không bị phased theo cơ chế rollout thông thường của các update không bảo mật.

Điều này giúp các bản vá bảo mật được phân phối trực tiếp hơn.

19. PPA và repository bên thứ ba có tự update không?

Không mặc định theo cùng cách với archive chính thức.

Ubuntu lưu ý rằng third-party repository/PPA cần cấu hình riêng trong Allowed-Origins nếu bạn muốn unattended-upgrades quản lý chúng.

Không nên tự động update mọi PPA không rõ nguồn.

20. Docker repository có nên cho unattended-upgrades tự update?

Cần cân nhắc.

Nếu Docker Engine production được update tự động, Docker daemon có thể restart và ảnh hưởng container.

Một số đội vận hành thích:

  • auto-update Ubuntu security package;
  • update Docker/runtime trong maintenance window riêng.

Không có một chính sách đúng cho mọi hệ thống.

21. Database package có nên tự update?

Tương tự Docker, database là thành phần nhạy cảm.

Minor/security update có thể an toàn trong nhiều trường hợp, nhưng production database nên có:

  • backup;
  • replication/HA nếu cần;
  • maintenance window;
  • test trước ở staging.

22. Blacklist package khỏi unattended-upgrades

unattended-upgrades hỗ trợ package blacklist.

Ví dụ trong file drop-in:

Unattended-Upgrade::Package-Blacklist {
    "docker-ce";
};

Cú pháp và matching cần kiểm tra theo phiên bản package hiện tại.

Chỉ blacklist khi có lý do vận hành rõ ràng.

23. Xem bản cập nhật nào đang chờ

apt list --upgradable

Hoặc:

sudo apt update
apt list --upgradable

Đây là cách kiểm tra thủ công ngoài unattended-upgrades.

24. unattended-upgrades có thay apt upgrade hoàn toàn không?

Không nhất thiết.

Bạn vẫn nên định kỳ:

sudo apt update
sudo apt upgrade

để xem trạng thái hệ thống và các update không nằm trong policy automatic.

25. Kiểm tra lỗi package manager bị lock

Nếu bạn chạy apt trong lúc unattended-upgrades đang hoạt động, có thể gặp lock.

Kiểm tra process:

ps aux | grep -E 'apt|dpkg|unattended'

Không xóa lock file thủ công khi apt/dpkg đang chạy.

Hãy chờ task hoàn tất hoặc kiểm tra systemd service.

26. Update bị treo thì kiểm tra gì?

systemctl status apt-daily-upgrade.service
sudo journalctl -u apt-daily-upgrade.service -n 100
sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades.log

27. Gửi email sau update được không?

Các phiên bản/config khác nhau có hỗ trợ notification/report theo những cách khác nhau.

Nếu cần alert đáng tin cậy, bạn có thể tích hợp monitoring riêng đọc log hoặc trạng thái reboot-required.

28. Dùng Uptime Kuma để biết VPS có lên lại sau reboot

Nếu bật automatic reboot, bạn nên có monitoring bên ngoài.

Bài Cài Uptime Kuma trên VPS Ubuntu hướng dẫn tạo monitor để theo dõi availability.

29. Backup trước update lớn

Unattended-upgrades thường tập trung vào security updates, nhưng với production, snapshot/backup vẫn quan trọng.

Đặc biệt trước:

  • kernel upgrade lớn;
  • database upgrade;
  • runtime major version;
  • thay đổi repository.

30. Tình huống thực tế: VPS website nhỏ

Một website nhỏ có thể dùng policy:

  • auto security update;
  • không auto reboot;
  • monitor reboot-required;
  • maintenance mỗi tuần;
  • backup trước reboot nếu có thay đổi lớn.

Đây là mô hình cân bằng giữa bảo mật và availability.

31. Tình huống thực tế: VPS không có người quản trị thường xuyên

Nếu VPS ít được đăng nhập:

  • unattended-upgrades rất hữu ích;
  • nên bật monitoring;
  • nên có automatic backup;
  • log cần được kiểm tra định kỳ;
  • automatic reboot chỉ bật khi ứng dụng tự khởi động lại đúng cách.

32. Tắt unattended-upgrades tạm thời

Bạn có thể dùng:

sudo dpkg-reconfigure unattended-upgrades

hoặc chỉnh periodic config phù hợp.

Không nên disable service/timer ngẫu nhiên nếu không hiểu luồng APT.

33. Checklist bật automatic security updates

  • unattended-upgrades đã cài.
  • dpkg-reconfigure unattended-upgrades đã bật.
  • Tạo drop-in riêng thay vì sửa file mặc định.
  • Chạy --dry-run --debug.
  • Kiểm tra log.
  • Xác định policy reboot.
  • Kiểm tra PPA/third-party repo.
  • Có monitoring.
  • Có backup.

34. FAQ về unattended-upgrades trên VPS Ubuntu

Ubuntu Server có tự cập nhật bảo mật không?

Ubuntu Server hiện đại thường có unattended-upgrades để áp dụng security updates tự động theo cấu hình mặc định/hệ thống.

Có nên bật automatic reboot không?

Chỉ khi workload có thể tự phục hồi sau reboot và bạn chấp nhận maintenance window đó.

unattended-upgrades có update mọi PPA không?

Không mặc định. Repository bên thứ ba cần cấu hình riêng nếu muốn được quản lý.

Làm sao test mà không cài thật?

Dùng:

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

Log nằm ở đâu?

Thường ở:

/var/log/unattended-upgrades/

Có cần chạy apt upgrade thủ công nữa không?

Vẫn nên kiểm tra định kỳ để biết trạng thái update tổng thể và các package ngoài policy tự động.

Kết luận

Bật tự động cập nhật bảo mật trên VPS Ubuntu giúp giảm nguy cơ bỏ quên bản vá quan trọng. Quy trình tốt là dùng unattended-upgrades, tạo file drop-in riêng, test bằng dry-run và theo dõi log.

Automatic update không thay thế maintenance. Với VPS production, hãy kiểm soát reboot, third-party repository và các package nhạy cảm như Docker/database thay vì bật mọi thứ một cách máy móc.

Nếu bạn đang vận hành website hoặc ứng dụng trên VPS Ubuntu tại HUONG CLOUD, unattended-upgrades là một lớp vận hành hữu ích khi kết hợp cùng backup, monitoring và lịch bảo trì rõ ràng.

Nguồn tham khảo

Kết luận

Nếu chưa chắc cấu hình hoặc loại dịch vụ nào phù hợp, hãy gửi nhu cầu thực tế để đội ngũ hỗ trợ tư vấn trước khi mua.

Chưa biết nên chọn gói nào?

Xem bảng giá VPS hoặc liên hệ đội ngũ hỗ trợ để chọn cấu hình phù hợp.

Xem bảng giá VPS →