Otomatik güvenlik güncellemeleri
Debian ve Ubuntu'da unattended-upgrades'i ve AlmaLinux'ta dnf-automatic'i nasıl yapılandırırsın ki yamalar gece servisi düşürmeden kendiliğinden kurulsun.
23 Ağustos 2026 tarihinde güncellendi
Çoğu ihlal, aylar önce yamalanmış güvenlik açıklarından geliyor. Manuel güncellemeler ertelenir; otomatik olanlar ertelenmez. Mantıklı bir kurulum yalnızca güvenlik güncellemelerini yükler, gerisine dokunmaz.
Debian ve Ubuntu
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades
/etc/apt/apt.conf.d/50unattended-upgrades dosyası:
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";
Zamanlama /etc/apt/apt.conf.d/20auto-upgrades içinde:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Değişiklik yapmadan deneme çalıştırması:
unattended-upgrade --dry-run --debug
systemctl status unattended-upgrades
cat /var/log/unattended-upgrades/unattended-upgrades.log
AlmaLinux ve CentOS Stream
dnf install -y dnf-automatic
/etc/dnf/automatic.conf içinde:
[commands]
upgrade_type = security
apply_updates = yes
reboot = never
systemctl enable --now dnf-automatic.timer
systemctl list-timers | grep dnf
Neleri hariç tutmalısın
Sürümü beklenmedik şekilde değiştiğinde bozulan her şeyi hariç tutma listesine ekle: veritabanı sunucusu, Docker, uygulamanın motoru. Bunları sakin bir saatte elle güncelle — bkz. sistem ve paket güncellemeleri.
Çekirdek güvenlik güncellemeleri de yüklenir, ancak yalnızca yeniden başlatmadan sonra etkili olur:
test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs
Yeniden başlatma: yalnızca insan kararı
Automatic-Reboot "true" ayarını yapma dürtüsü güçlüdür, ancak geceleri otomatik yeniden başlatma, hizmetin kimse izlemezken yeniden başlaması anlamına gelir. Bir şey ayağa kalkmazsa bunu sabah kullanıcılarından duyarsın.
Mantıklı bir uzlaşma: güncellemeler kendini yükler, sen ise ayda bir kez /hosting/vds/m/<id> panelinde konsolu izleyerek elle yeniden başlatırsın. Bu arada hizmetlerin kendiliğinden başladığını da kontrol et:
systemctl is-enabled nginx postgresql
systemctl list-units --state=failed
Sık yapılan hatalar
| Hata | Sonuç | Çözüm |
|---|---|---|
| Yalnızca güvenlik değil, tüm depolar için güncellemeleri etkinleştirmek | Özellik değişiklikleri gelir | Yalnızca -security kaynağını tut |
| Veritabanı hariç tutma listesinde değil | Ana sürüm veriyi bozar | Package-Blacklist içine ekle |
| Geceleri otomatik yeniden başlatma | Hizmet ayağa kalkmadı ve kimse fark etmedi | Automatic-Reboot "false" |
| Kurup unutmak | Çekirdek güncellenir ama güncelleme uygulanmaz | Ayda bir kez reboot-required kontrol et |
| İndirilen paketler diski doldurdu | Yer kalmaz | Otomatik önbellek temizliğini açık tut |
Otomatik güncellemeler bir sigortadır, ilginin yerini tutmaz. Ayda bir kez makineyi aç, güncelleme kaydına, başarısız hizmetlerin listesine ve yeniden başlatma gerekip gerekmediğine bak. Ayda on beş dakika, ihlal belirtileri makalesindeki senaryoların çoğunu kapsar.