Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
Güvenlik açıklarının büyük bölümü, yama yayımlandığı halde uygulanmadığı için istismar edilir. Bu rehberde VPS'inizde güvenlik güncellemelerini otomatik uygulatmayı kuracaksınız: Debian/Ubuntu'da unattended-upgrades, AlmaLinux/Rocky'de dnf-automatic. Ayrıca yeniden başlatma gereksinimini nasıl yöneteceğinizi ve e-posta bildirimini göreceksiniz.
Rehber, birkaç sunucuyu tek başına yöneten ve her gün güncelleme takibi yapamayan sistem yöneticileri içindir. Kurulum yaklaşık 10-15 dakika sürer. Otomatik güncelleme yalnızca güvenlik yamalarını hedefler; tüm paketleri otomatik yükseltmek istemezsiniz.
Gereksinimler
- Debian, Ubuntu, AlmaLinux veya Rocky Linux çalıştıran bir VPS
- sudo yetkisi
- Güncellemeler sırasında kısa süreli servis yeniden başlatmalarına tolerans; kritik üretim sistemlerinde önce test sunucusunda deneyin
- Bildirim için çalışan bir e-posta gönderimi (isteğe bağlı)
- İşlem öncesi bir anlık görüntü veya yedek
Adım adım otomatik güvenlik güncellemesi
1. Debian/Ubuntu: unattended-upgrades kurun
sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgradesAçılan ekranda Yes seçin. Bu işlem otomatik güncellemeyi etkinleştiren yapılandırmayı oluşturur.
2. Periyodik çalışmayı kontrol edin
Aşağıdaki dosyada günlük güncelleme listesi yenilemesi ve güncelleme çalıştırması ayarlıdır.
cat /etc/apt/apt.conf.d/20auto-upgradesDosya içeriği aşağıdaki gibi olmalıdır; değilse düzenleyin.
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";3. Hangi paketlerin güncelleneceğini ayarlayın
Ana yapılandırma /etc/apt/apt.conf.d/50unattended-upgrades dosyasındadır. Ubuntu'da varsayılan olarak yalnızca güvenlik kaynakları (-security, varsa ESM) etkindir. Debian'da ise varsayılan listede kararlı sürümün nokta güncellemeleri (label=Debian) de etkindir; yalnızca güvenlik yamalarını istiyorsanız Unattended-Upgrade::Origins-Pattern bölümündeki bu satırı // ile yorum yapın ve label=Debian-Security satırlarını bırakın.
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesDosyada, kullanmak istemediğiniz paketleri Unattended-Upgrade::Package-Blacklist bölümüne ekleyebilirsiniz. Veri tabanı gibi kritik paketleri otomatik güncellemeden çıkarıp elle yükseltmek makul bir tercihtir.
4. Yeniden başlatma politikasını belirleyin
Çekirdek ve bazı kütüphane güncellemeleri etkili olmak için yeniden başlatma ister. Otomatik yeniden başlatmayı yalnızca kesintiyi kabul edebiliyorsanız açın. Aşağıdaki satırlar da 50unattended-upgrades dosyasına yazılır.
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";Otomatik yeniden başlatmayı kapalı tutarsanız /var/run/reboot-required dosyasının varlığını düzenli kontrol edin.
5. E-posta bildirimi (isteğe bağlı)
Unattended-Upgrade::Mail "yonetici@ornek.com";
Unattended-Upgrade::MailReport "on-change";Bunun çalışması için sunucuda bir posta aktarıcısı gerekir.
6. AlmaLinux/Rocky: dnf-automatic kurun
sudo dnf install -y dnf-automatic
sudo nano /etc/dnf/automatic.confDosyada şu değerleri ayarlayın: yalnızca güvenlik güncellemeleri için upgrade_type = security, indirip uygulamak için apply_updates = yes.
[commands]
upgrade_type = security
download_updates = yes
apply_updates = yessudo systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic*7. Yeniden başlatma gerekliliğini kontrol edin
# Debian / Ubuntu
ls /var/run/reboot-required 2>/dev/null
# AlmaLinux / Rocky
sudo dnf install -y yum-utils
sudo needs-restarting -rDoğrulama
Debian/Ubuntu'da sistemi gerçekten güncellemeden simülasyon yapın.
sudo unattended-upgrade --dry-run --debug
systemctl list-timers 'apt-daily*'
sudo cat /var/log/unattended-upgrades/unattended-upgrades.logBeklenen sonuç: Komut hata vermeden biter, apt-daily.timer ve apt-daily-upgrade.timer zamanlayıcıları listede bir sonraki çalışma zamanıyla görünür, günlük dosyasında hangi paketlerin uygulanacağı ya da No packages found that can be upgraded unattended mesajı görünür. RHEL tabanlı sistemlerde systemctl list-timers çıktısında dnf-automatic.timer etkin görünür ve sudo journalctl -u dnf-automatic günlüğü çalıştırmaları gösterir.
Sık karşılaşılan sorunlar
- Güncelleme hiç çalışmıyor: Zamanlayıcı etkin değildir.
systemctl list-timersileapt-dailyveyadnf-automaticzamanlayıcılarını kontrol edin. - Bir güncelleme servisi bozdu: Otomatik güncelleme sonrası uygulama çalışmıyorsa günlük dosyasındaki paket listesine bakın ve ilgili paketi kara listeye alıp elle yönetin.
- Çekirdek güncellendi ama eski çekirdek çalışıyor: Yeniden başlatma gerekir; planlı bir zamanda
sudo rebootyapın. - Bildirim e-postası gelmiyor: Sunucuda posta aktarıcısı yok ya da giden SMTP engelli olabilir.
Güvenlik ve bakım notları
- Otomatik güncelleme manuel izlemenin yerini almaz; ayda bir günlükleri gözden geçirin.
- Üretimde önemli değişikliklerden önce anlık görüntü alın veya aynı yapılandırmalı bir test sunucusunda deneyin.
- Yalnızca güvenlik yamalarını otomatik yapın; tam dağıtım yükseltmesini (örneğin sürüm geçişi) elle ve planlı yürütün.
- Çekirdek yeniden başlatma gereksinimini takip edin; aksi halde yama uygulanmış ama etkisiz kalabilir.
- Üçüncü taraf depoları ve elle kurulan yazılımlar bu mekanizmanın dışında kalır; onları ayrıca güncelleyin.
- Uygulama bağımlılıklarınızı (PHP paketleri, Node modülleri vb.) ayrıca güncellemeyi unutmayın.
Sık sorulan sorular
Otomatik güncelleme siteyi bozar mı?
Güvenlik yamaları genellikle küçük ve geriye dönük uyumludur, bu yüzden risk düşüktür; ancak sıfır değildir. Kritik üretim sistemlerinde önce test sunucusunda deneyin ve önemli güncellemelerden önce anlık görüntü alın.
Otomatik yeniden başlatmayı açmalı mıyım?
Kısa kesintiyi kabul edebiliyorsanız evet; çünkü çekirdek yamaları yeniden başlatmadan etkili olmaz. Açmayacaksanız düzenli aralıklarla yeniden başlatma gerekliliğini kontrol edip elle bakım penceresi planlayın.
Tüm paketleri otomatik güncelleyebilir miyim?
Teknik olarak evet ama önerilmez. Sürüm sıçramaları yapılandırma uyumsuzluğuna yol açabilir. Güvenlik yamalarını otomatik, diğer güncellemeleri planlı ve kontrollü yapmak daha sağlıklı bir dengedir.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- rsync ile sunucu taşıma: VPS’ten VPS’e geçişrsync ile VPS’ten VPS’e güvenli geçiş: ilk senkronizasyon, veritabanı dökümü, son eşitleme, DNS geçişi ve doğrulama adımlarını kesintiyi en aza indirerek uygulayın.
- Cron ve systemd timer ile zamanlanmış görevlerLinux sunucuda zamanlanmış görev kurun: cron söz dizimi, kilit ve günlükleme, systemd timer ve service çifti, OnCalendar ve Persistent ile güvenilir zamanlama.
- VPS’e LEMP yığını kurulumu (Nginx, MariaDB, PHP-FPM)Boş bir VPS’e LEMP yığınını kurun: Nginx, MariaDB ve PHP-FPM kurulumu, sunucu bloğu, veritabanı oluşturma, güvenlik duvarı ve test. Debian, Ubuntu, AlmaLinux ve Rocky için.
- SSH anahtarı oluşturma ve yönetimi (ed25519, ssh-agent, authorized_keys)ed25519 SSH anahtarı oluşturun, sunucuya ekleyin, ssh-agent ile parola girişini kolaylaştırın, authorized_keys dosyasını yönetin ve parolayla girişi güvenle kapatın.