Pembaruan keamanan otomatis
Cara mengonfigurasi unattended-upgrades di Debian dan Ubuntu serta dnf-automatic di AlmaLinux agar patch terpasang sendiri tanpa layanan mati di malam hari.
Diperbarui 23 Agustus 2026
Sebagian besar insiden keamanan terjadi melalui kerentanan yang sudah ditambal berbulan-bulan lalu. Pembaruan manual sering ditunda; pembaruan otomatis tidak. Konfigurasi yang bijak hanya memasang pembaruan keamanan dan membiarkan sisanya.
Debian dan Ubuntu
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades
File /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";
Jadwalnya ada di /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Uji coba tanpa melakukan perubahan:
unattended-upgrade --dry-run --debug
systemctl status unattended-upgrades
cat /var/log/unattended-upgrades/unattended-upgrades.log
AlmaLinux dan CentOS Stream
dnf install -y dnf-automatic
Di /etc/dnf/automatic.conf:
[commands]
upgrade_type = security
apply_updates = yes
reboot = never
systemctl enable --now dnf-automatic.timer
systemctl list-timers | grep dnf
Apa yang harus dikecualikan
Tambahkan semua yang rusak saat versinya berubah secara tak terduga ke daftar pengecualian: server database, Docker, mesin aplikasi itu sendiri. Perbarui semuanya secara manual pada waktu yang sepi — lihat pembaruan sistem dan paket.
Pembaruan keamanan kernel juga dipasang, tetapi baru berlaku setelah reboot:
test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs
Reboot: keputusan manusia saja
Godaan untuk menyetel Automatic-Reboot "true" itu besar, tetapi reboot otomatis setiap malam berarti layanan restart tanpa ada yang mengawasi. Jika ada yang gagal menyala kembali, Anda baru tahu keesokan paginya dari pengguna Anda.
Kompromi yang bijak: pembaruan memasang dirinya sendiri, dan Anda melakukan reboot secara manual sebulan sekali sambil mengawasi konsol di panel /hosting/vds/m/<id>. Sekalian periksa apakah layanan menyala sendiri:
systemctl is-enabled nginx postgresql
systemctl list-units --state=failed
Kesalahan umum
| Kesalahan | Akibat | Perbaikan |
|---|---|---|
| Mengaktifkan pembaruan untuk semua repositori, bukan hanya keamanan | Perubahan fitur ikut masuk | Pertahankan hanya sumber -security |
| Database tidak ada di daftar pengecualian | Versi mayor merusak data | Tambahkan ke Package-Blacklist |
| Reboot otomatis pada malam hari | Layanan tidak menyala dan tidak ada yang menyadarinya | Automatic-Reboot "false" |
| Sudah disetel lalu dilupakan | Kernel diperbarui tetapi pembaruannya tidak diterapkan | Periksa reboot-required sebulan sekali |
| Paket yang diunduh memenuhi disk | Ruang penyimpanan habis | Biarkan pembersihan cache otomatis tetap aktif |
Pembaruan otomatis adalah asuransi, bukan pengganti perhatian. Sebulan sekali, buka mesinnya, lihat log pembaruan, daftar layanan yang gagal, dan apakah perlu reboot. Lima belas menit sebulan mencakup sebagian besar skenario dari artikel tanda-tanda insiden keamanan.