Cập nhật bảo mật tự động
Cách cấu hình unattended-upgrades trên Debian và Ubuntu và dnf-automatic trên AlmaLinux để các bản vá tự cài đặt mà không làm dịch vụ ngừng hoạt động vào ban đêm.
Cập nhật 23 tháng 8, 2026
Hầu hết các vụ xâm nhập đều đến từ những lỗ hổng đã được vá từ nhiều tháng trước. Cập nhật thủ công thường bị trì hoãn; cập nhật tự động thì không. Một cấu hình hợp lý chỉ cài các bản cập nhật bảo mật và để mọi thứ khác yên.
Debian và Ubuntu
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades
Tệp /etc/apt/apt.conf.d/50unattended-upgrades:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Package-Blacklist {
"postgresql-.*";
"docker-ce";
};
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "you@example.com";
Lịch trình nằm trong /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Chạy thử, không thực hiện thay đổi:
unattended-upgrade --dry-run --debug
systemctl status unattended-upgrades
cat /var/log/unattended-upgrades/unattended-upgrades.log
AlmaLinux và CentOS Stream
dnf install -y dnf-automatic
Trong /etc/dnf/automatic.conf:
[commands]
upgrade_type = security
apply_updates = yes
reboot = never
systemctl enable --now dnf-automatic.timer
systemctl list-timers | grep dnf
Những gì cần loại trừ
Thêm mọi thứ sẽ hỏng khi phiên bản thay đổi bất ngờ vào danh sách loại trừ: máy chủ cơ sở dữ liệu, Docker, chính engine của ứng dụng. Hãy cập nhật chúng thủ công vào một thời điểm ít người dùng — xem cập nhật hệ thống và gói.
Các bản cập nhật bảo mật cho kernel cũng được cài, nhưng chúng chỉ có hiệu lực sau khi khởi động lại:
test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs
Khởi động lại: chỉ do con người quyết định
Rất dễ bị cám dỗ đặt Automatic-Reboot "true", nhưng khởi động lại tự động vào ban đêm nghĩa là dịch vụ khởi động lại mà không có ai theo dõi. Nếu có gì đó không khởi động lại được, bạn sẽ biết chuyện vào buổi sáng từ người dùng của mình.
Một thỏa hiệp hợp lý: các bản cập nhật tự cài, còn bạn khởi động lại thủ công mỗi tháng một lần trong khi theo dõi console trong bảng điều khiển /hosting/vds/m/<id>. Nhân tiện, hãy kiểm tra xem các dịch vụ có tự khởi động không:
systemctl is-enabled nginx postgresql
systemctl list-units --state=failed
Lỗi thường gặp
| Lỗi | Hậu quả | Cách khắc phục |
|---|---|---|
| Bật cập nhật cho tất cả kho, không chỉ kho bảo mật | Các thay đổi tính năng cũng ùa vào | Chỉ giữ nguồn -security |
| Cơ sở dữ liệu không nằm trong danh sách loại trừ | Phiên bản chính làm hỏng dữ liệu | Thêm nó vào Package-Blacklist |
| Khởi động lại tự động vào ban đêm | Dịch vụ không khởi động lại và không ai để ý | Automatic-Reboot "false" |
| Cấu hình xong rồi quên luôn | Kernel được cập nhật nhưng bản cập nhật không được áp dụng | Kiểm tra reboot-required mỗi tháng một lần |
| Các gói đã tải về làm đầy đĩa | Bạn hết dung lượng | Giữ tính năng tự động dọn cache được bật |
Cập nhật tự động là bảo hiểm, không phải thứ thay thế cho sự chú ý. Mỗi tháng một lần, hãy mở máy, xem nhật ký cập nhật, danh sách các dịch vụ bị lỗi và liệu có cần khởi động lại không. Mười lăm phút mỗi tháng bao quát hầu hết các tình huống trong bài viết dấu hiệu bị xâm nhập.