Otomatik Güncelleme Ayarları: unattended-upgrades Rehberi
unattended-upgrades kurulumu ve yapılandırması, yalnızca güvenlik güncellemeleri, e-posta bildirimleri, test etme, riskler ve önlemler rehberi.
İçindekiler
Otomatik Güncelleme Ayarları: unattended-upgrades Rehberi
Sunucu güvenliğinin en temel gereksinimlerinden biri, güvenlik yamalarının zamanında uygulanmasıdır. Manuel güncelleme yapmayı unutmak, sunucunuzu bilinen güvenlik açıklarına karşı savunmasız bırakabilir. unattended-upgrades paketi, Ubuntu ve Debian sistemlerde güvenlik güncellemelerini otomatik olarak uygular. Bu rehberde kurulum, yapılandırma ve en iyi uygulamaları öğreneceksiniz.
unattended-upgrades Nedir?
unattended-upgrades, sisteminizin güvenlik güncellemelerini insan müdahalesi olmadan otomatik olarak indirip yükleyen bir APT eklentisidir. Özellikle şunlar için idealdir:
- Kritik güvenlik yamalarının hızlı uygulanması
- Gece yarısı veya bakım pencerelerinde otomatik güncelleme
- Birden fazla sunucuyu yönetirken güncelleme takibini kolaylaştırma
Otomatik güncellemeler bazı durumlarda servis kesintilerine yol açabilir. Özellikle kernel güncellemeleri yeniden başlatma gerektirir. Üretim ortamlarında dikkatli yapılandırın.
Kurulum
Ubuntu/Debian
# Paketi kur
sudo apt update
sudo apt install unattended-upgrades apt-listchanges -y
# Kurulumu doğrula
dpkg -l unattended-upgrades
# Servisi kontrol et
systemctl status unattended-upgrades
Otomatik Yapılandırma Sihirbazı
# Temel yapılandırmayı otomatik ayarla
sudo dpkg-reconfigure -plow unattended-upgrades
# "Yes" seçeneğini seçin
Temel Yapılandırma
Ana yapılandırma dosyası: /etc/apt/apt.conf.d/50unattended-upgrades
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
// Ubuntu güvenlik güncellemeleri
"${distro_id}:${distro_codename}-security";
// ESM güvenlik güncellemeleri (Ubuntu Pro)
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
// Tüm güncellemeler (önerilmez — sadece güvenlik güncellemeleri tercih edilir)
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
};
// Belirli paketleri güncelleme dışında tut
Unattended-Upgrade::Package-Blacklist {
// "nginx";
// "mysql-server";
// "php*";
};
// Güncelleme sonrası otomatik yeniden başlatma
Unattended-Upgrade::Automatic-Reboot "false";
// Yeniden başlatma zamanı (sadece Automatic-Reboot true ise)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// Kullanılmayan bağımlılıkları kaldır
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// Kullanılmayan kernel'ları kaldır
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// E-posta bildirimi
Unattended-Upgrade::Mail "admin@rexe.tr";
// Sadece hata durumunda e-posta gönder
Unattended-Upgrade::MailReport "on-change";
// Seçenekler: "always", "only-on-error", "on-change"
// Güncelleme logunu tut
Unattended-Upgrade::SyslogEnable "true";
Unattended-Upgrade::SyslogFacility "daemon";
Güncelleme Zamanlaması
Güncelleme sıklığı /etc/apt/apt.conf.d/20auto-upgrades dosyasında ayarlanır:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
// Paket listesini her gün güncelle
APT::Periodic::Update-Package-Lists "1";
// Güncellenebilir paketleri her gün indir
APT::Periodic::Download-Upgradeable-Packages "1";
// unattended-upgrades'i her gün çalıştır
APT::Periodic::Unattended-Upgrade "1";
// Eski paket önbelleğini her 7 günde bir temizle
APT::Periodic::AutocleanInterval "7";
Değerler gün cinsinden belirtilir. "1" = her gün, "7" = her hafta, "0" = devre dışı.
Yalnızca Güvenlik Güncellemeleri
Üretim sunucularında yalnızca güvenlik güncellemelerini otomatik uygulamak en güvenli yaklaşımdır:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
// SADECE güvenlik güncellemeleri
"${distro_id}:${distro_codename}-security";
};
// Diğer tüm güncelleme kaynaklarını yorum satırına al
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-backports";
E-posta Bildirimleri
Güncelleme bildirimleri için mailutils veya postfix gereklidir:
# mailutils kur
sudo apt install mailutils -y
# Basit SMTP yapılandırması için
sudo apt install ssmtp -y
sudo nano /etc/ssmtp/ssmtp.conf
root=admin@rexe.tr
mailhub=smtp.gmail.com:587
AuthUser=your-email@gmail.com
AuthPass=your-app-password
UseTLS=YES
UseSTARTTLS=YES
# E-posta testini yap
echo "Test mesajı" | mail -s "Sunucu Güncelleme Testi" admin@rexe.tr
Yapılandırmayı Test Etme
Kuru Çalıştırma (Dry Run)
# Gerçekten güncelleme yapmadan simüle et
sudo unattended-upgrade --dry-run --debug
# Daha ayrıntılı çıktı
sudo unattended-upgrade -d --dry-run
Manuel Çalıştırma
# unattended-upgrades'i hemen çalıştır
sudo unattended-upgrade -d
# Verbose modda çalıştır
sudo unattended-upgrade --verbose
Log Dosyalarını İnceleme
# Ana log dosyası
cat /var/log/unattended-upgrades/unattended-upgrades.log
# Hata logları
cat /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
# Gerçek zamanlı log takibi
tail -f /var/log/unattended-upgrades/unattended-upgrades.log
# Son güncelleme zamanını kontrol et
ls -la /var/log/unattended-upgrades/
Kernel Güncellemeleri ve Yeniden Başlatma
Kernel güncellemeleri özel dikkat gerektirir:
# Yeniden başlatma gerektiren güncellemeleri kontrol et
cat /var/run/reboot-required
# Hangi paketlerin yeniden başlatma gerektirdiğini gör
cat /var/run/reboot-required.pkgs
# Yeniden başlatma gerekip gerekmediğini kontrol et
if [ -f /var/run/reboot-required ]; then
echo "Yeniden başlatma gerekiyor!"
fi
Otomatik Yeniden Başlatma Yapılandırması
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
// Otomatik yeniden başlatmayı etkinleştir
Unattended-Upgrade::Automatic-Reboot "true";
// Yeniden başlatma zamanı (gece 2:00)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// Kullanıcı oturumu açıksa bile yeniden başlat
Unattended-Upgrade::Automatic-Reboot-WithUsers "false";
Otomatik yeniden başlatmayı etkinleştirmeden önce uygulamanızın yeniden başlatmayı tolere edip edemeyeceğini değerlendirin. Kritik üretim sistemlerinde manuel yeniden başlatma tercih edilir.
Riskler ve Önlemler
Olası Riskler
- Servis kesintisi: Bazı güncellemeler servisleri yeniden başlatır
- Bağımlılık çakışmaları: Nadir durumlarda paket çakışmaları oluşabilir
- Yapılandırma değişiklikleri: Güncellemeler yapılandırma dosyalarını değiştirebilir
- Kernel güncellemeleri: Yeniden başlatma gerektirir
Risk Azaltma Önlemleri
# 1. Kritik paketleri kara listeye al
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Package-Blacklist {
// Kritik veritabanı sunucusu
"mysql-server";
"postgresql";
// Web sunucusu
"nginx";
"apache2";
// Kernel (manuel güncelleme için)
"linux-image*";
"linux-headers*";
};
# 2. Güncelleme öncesi snapshot al (desteklenen sistemlerde)
# 3. Güncelleme loglarını düzenli kontrol et
tail -100 /var/log/unattended-upgrades/unattended-upgrades.log
# 4. Güncelleme sonrası servis durumlarını kontrol et
systemctl --failed
CentOS/AlmaLinux/RHEL için dnf-automatic
RPM tabanlı sistemlerde dnf-automatic kullanılır:
# Kur
sudo dnf install dnf-automatic -y
# Yapılandır
sudo nano /etc/dnf/automatic.conf
[commands]
# Sadece güvenlik güncellemeleri
upgrade_type = security
# Güncellemeleri otomatik uygula
apply_updates = yes
[emitters]
# E-posta bildirimi
emit_via = email
email_to = admin@rexe.tr
[email]
email_from = server@rexe.tr
email_host = localhost
# Servisi etkinleştir
sudo systemctl enable --now dnf-automatic.timer
# Durumu kontrol et
sudo systemctl status dnf-automatic.timer
# Timer'ları listele
sudo systemctl list-timers dnf-automatic*
Hem Ubuntu hem de CentOS sistemlerinde, otomatik güncellemeleri etkinleştirdikten sonra ilk hafta log dosyalarını yakından takip edin. Bu, beklenmedik sorunları erken tespit etmenizi sağlar.
Sonuç
unattended-upgrades, REXE sunucularınızın güvenliğini korumak için güçlü bir araçtır. Yalnızca güvenlik güncellemelerini otomatik uygulayarak, kritik paketleri kara listeye alarak ve e-posta bildirimlerini etkinleştirerek hem güvenli hem de kararlı bir sunucu ortamı oluşturabilirsiniz. Düzenli log kontrolü ve test ortamında doğrulama, otomatik güncelleme sürecini daha güvenilir hale getirir.
İlgili Makaleler
VDS Sunucuya SSH ile Bağlanma Rehberi (PuTTY & Terminal)
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
Windows VDS'e RDP ile Bağlanma ve Güvenlik Rehberi
Windows Server VDS sunucunuza Uzak Masaüstü (RDP) ile bağlanma adımları, NLA güvenlik ayarları, Path Panel firewall kuralı ve sorun giderme rehberi.
VDS Sunucu İşletim Sistemi Değiştirme Rehberi (Reinstall)
REXE panel üzerinden VDS sunucunuzun işletim sistemini değiştirme adımları, yedekleme önerileri, desteklenen Linux ve Windows Server sürümleri.