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.
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
- Ubuntu Security – Automatic security updates: https://documentation.ubuntu.com/security/security-updates/
- Ubuntu manpage – unattended-upgrade: https://manpages.ubuntu.com/manpages/noble/man8/unattended-upgrades.8.html
- Ubuntu Server – apt upgrade and phased updates: https://documentation.ubuntu.com/server/explanation/software/about-apt-upgrade-and-phased-updates/index.html
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 →