Debian Sistemlerinde unattended-upgrades ile Otomatik Güncellemeler
Linux sistemlerinde güvenlik güncellemelerinin düzenli olarak yapılması oldukça önemlidir. Özellikle sunucular, laboratuvar sistemleri ve sürekli çalışan bilgisayarlarda güncellemelerin unutulması ciddi güvenlik açıklarına yol açabilir.
Bu sorunu çözmek için Debian tabanlı dağıtımlarda (Pardus, Ubuntu, Kali Linux, Linux Mint vb.) kullanılan en önemli araçlardan biri Unattended Upgrades paketidir.
sudo apt install unattended-upgrades
komutu, sistemde güvenlik güncellemelerini otomatik olarak yükleyebilen bir yazılımı kurar.
Unattended-Upgrades Nedir?
Unattended-Upgrades, sistem yöneticisinin müdahalesine gerek kalmadan belirlenen güncellemelerin otomatik olarak kurulmasını sağlayan bir araçtır.
Başlıca görevleri:
Güvenlik güncellemelerini otomatik yüklemek
Belirli paketleri otomatik güncellemek
Güncelleme işlemlerini günlük (log) dosyalarına kaydetmek
İstenirse sistemi otomatik yeniden başlatmak
Güncelleme raporlarını e-posta ile göndermek
Bu paket özellikle:
Sunucular
Sanal makineler
Siber güvenlik laboratuvarları
Sürekli çalışan sistemler
için oldukça faydalıdır.
Komutun Yapısı
sudo apt install unattended-upgrades
Komut üç bölümden oluşur:
| Bölüm | Açıklama |
|---|---|
sudo | Yönetici yetkisi sağlar |
apt install | Paket yükleme işlemi gerçekleştirir |
unattended-upgrades | Yüklenecek paketin adıdır |
Komutun Çalışma Süreci
Komut çalıştırıldığında:
sudo apt install unattended-upgrades
APT depoları kontrol edilir.
Örnek:
Reading package lists... DoneBuilding dependency tree... DoneReading state information... DoneThe following NEW packages will be installed:unattended-upgradesNeed to get 55.0 kB of archives.After this operation, 300 kB of additional disk space will be used.
Kurulum tamamlandıktan sonra:
Setting up unattended-upgrades ...
mesajı görülür.
Paketin Kurulu Olduğunu Kontrol Etme
Kurulumdan sonra aşağıdaki komut kullanılabilir:
dpkg -l | grep unattended
Örnek çıktı:
ii unattended-upgrades 2.9 all automatic installation of security upgrades
Yapılandırma Dosyaları
Kurulum sonrasında en önemli yapılandırma dosyaları şunlardır:
Ana Yapılandırma Dosyası
/etc/apt/apt.conf.d/50unattended-upgrades
Otomatik Güncelleme Ayarları
/etc/apt/apt.conf.d/20auto-upgrades
Otomatik Güncellemeyi Etkinleştirme
Kurulumdan sonra aşağıdaki komut çalıştırılır:
sudo dpkg-reconfigure unattended-upgrades
Sistem şu soruyu sorar:
Automatically download and install stable updates?
Yes seçildiğinde otomatik güncellemeler etkinleşir.
20auto-upgrades Dosyasının İncelenmesi
Dosyayı açalım:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
Örnek içerik:
APT::Periodic::Update-Package-Lists "1";APT::Periodic::Download-Upgradeable-Packages "1";APT::Periodic::AutocleanInterval "7";APT::Periodic::Unattended-Upgrade "1";
Parametrelerin Anlamları
Paket Listelerini Güncelle
APT::Periodic::Update-Package-Lists "1";
Her gün:
apt update
işlemini gerçekleştirir.
Güncelleme Paketlerini İndir
APT::Periodic::Download-Upgradeable-Packages "1";
Yeni güncellemeleri otomatik indirir.
Eski Paketleri Temizle
APT::Periodic::AutocleanInterval "7";
Her 7 günde bir gereksiz paketleri temizler.
Otomatik Güncelleme
APT::Periodic::Unattended-Upgrade "1";
Otomatik kurulum özelliğini aktif eder.
50unattended-upgrades Dosyasının İncelenmesi
Dosyayı açın:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Bu dosya hangi depoların otomatik güncelleneceğini belirler.
Örnek:
Unattended-Upgrade::Allowed-Origins {"${distro_id}:${distro_codename}";"${distro_id}:${distro_codename}-security";};
Ubuntu'da çoğunlukla sadece güvenlik güncellemeleri etkin bırakılır.
Belirli Paketleri Hariç Tutmak
Örneğin çekirdeğin güncellenmesini istemiyorsanız:
Unattended-Upgrade::Package-Blacklist {"linux-image";"linux-headers";};
Bu paketler otomatik güncellenmez.
Otomatik Yeniden Başlatma
Bazı güncellemeler sistem yeniden başlatılmadan uygulanamaz.
Aşağıdaki satırı etkinleştirebilirsiniz:
Unattended-Upgrade::Automatic-Reboot "true";
Belirli bir saatte yeniden başlatma:
Unattended-Upgrade::Automatic-Reboot-Time "03:00";
Sunucu ortamlarında dikkatli kullanılmalıdır.
Güncelleme İşlemini Manuel Test Etme
Kurulumun doğru çalışıp çalışmadığını test etmek için:
sudo unattended-upgrade --dry-run --debug
Parametreler
| Parametre | Görev |
|---|---|
--dry-run | Gerçek kurulum yapmaz |
--debug | Ayrıntılı çıktı verir |
Gerçek Güncelleme Başlatmak
sudo unattended-upgrade
Servis Durumunu Kontrol Etme
Yeni sistemlerde:
systemctl status unattended-upgrades
Örnek:
● unattended-upgrades.service - Unattended Upgrades Shutdown
Günlük Dosyaları (Loglar)
Unattended-Upgrades işlemleri aşağıdaki dizinde tutulur:
/var/log/unattended-upgrades/
İçeriği görüntülemek için:
ls /var/log/unattended-upgrades/
Önemli dosyalar:
unattended-upgrades.logunattended-upgrades-dpkg.log
Logları incelemek:
sudo cat /var/log/unattended-upgrades/unattended-upgrades.log
veya
sudo tail -f /var/log/unattended-upgrades/unattended-upgrades.log
Avantajları
✓ Güvenlik yamaları zamanında uygulanır.
✓ Sistem yöneticisinin iş yükü azalır.
✓ Güvenlik açıkları daha hızlı kapatılır.
✓ Sunucuların güncel kalması sağlanır.
✓ Düzenli bakım gereksinimini azaltır.
Dezavantajları
Beklenmeyen paket değişiklikleri oluşabilir.
Kritik sunucularda hizmet kesintisi yaşanabilir.
Otomatik yeniden başlatmalar sorun oluşturabilir.
Büyük sürüm yükseltmeleri için uygun değildir.
Siber Güvenlik Açısından Önemi
Siber saldırıların önemli bir kısmı, güncellenmemiş sistemlerde bulunan bilinen güvenlik açıklarını hedef alır.
Örneğin:
Uzak kod çalıştırma açıkları (RCE)
Yetki yükseltme açıkları
Kernel zafiyetleri
Eski web sunucusu bileşenleri
unattended-upgrades, güvenlik güncellemelerini otomatik uygulayarak saldırı yüzeyini azaltır.
Sonuç
sudo apt install unattended-upgrades
komutu, Debian tabanlı Linux sistemlerinde otomatik güvenlik güncellemeleri sağlayan güçlü bir araçtır. Özellikle sunucular ve sürekli çalışan sistemlerde düzenli güncelleme yapılmasını sağlayarak sistem güvenliğinin artırılmasına önemli katkı sağlar.
Özet Komutlar
# Kurulumsudo apt install unattended-upgrades# Yapılandırmasudo dpkg-reconfigure unattended-upgrades# Testsudo unattended-upgrade --dry-run --debug# Servis Durumusystemctl status unattended-upgrades# Logları Görüntülesudo tail -f /var/log/unattended-upgrades/unattended-upgrades.log
Sunucu güvenliği ve bakımı söz konusu olduğunda unattended-upgrades (otomatik güncellemeler), Ubuntu ve Debian tabanlı sistemlerde hayat kurtaran, kritik bir araçtır. Özellikle güvenlik yamalarının anında uygulanmasını sağlayarak sisteminizi zafiyetlere karşı korur.
1. unattended-upgrades Nedir ve Neden Kullanmalıyız?
Sistem yöneticileri her gün her sunucuya giriş yapıp manuel olarak güncelleme kontrolü yapamazlar. unattended-upgrades paketi, sisteminizin belirlediğiniz kurallar çerçevesinde paket güncellemelerini (özellikle kritik güvenlik yamalarını) otomatik olarak indirip kurmasını sağlar.
Avantajları:
Sıfırıncı gün (Zero-day) açıklarına karşı hızlı koruma sağlar.
Zaman tasarrufu yaratır.
Yalnızca güvenlik güncellemelerini alacak şekilde ayarlanarak sistem kararlılığını korur.
2. Kurulum Aşaması
Çoğu modern Ubuntu dağıtımında bu paket yüklü gelse de, kurulu olduğundan emin olmak ve gerekli yapılandırmaları başlatmak için aşağıdaki adımları izleyin.
Öncelikle paket listemizi güncelliyoruz:
sudo apt update
Ardından unattended-upgrades ve güncellenen paketlerin ne değiştirdiğini görebilmemiz için faydalı bir araç olan apt-listchanges paketlerini kuruyoruz:
sudo apt install unattended-upgrades apt-listchanges
3. Servisi Etkinleştirme
Paketi kurduktan sonra, otomatik güncellemeleri aktif hale getirmemiz gerekiyor. Bunun için aşağıdaki yapılandırma komutunu çalıştırın:
sudo dpkg-reconfigure --priority=low unattended-upgrades
Karşınıza pembe/mavi bir terminal ekranı çıkacaktır. Size "Otomatik güncellemeleri indirmek ve kurmak istiyor musunuz?" (Would you like to download and install stable updates automatically?) diye soracaktır. Klavyenizdeki yön tuşlarıyla (Yes) seçeneğini seçip Enter'a basın.
Bu işlem, arka planda /etc/apt/apt.conf.d/20auto-upgrades dosyasını oluşturur ve içine şu satırları ekler:
APT::Periodic::Update-Package-Lists "1";APT::Periodic::Unattended-Upgrade "1";
(Buradaki "1" değeri, işlemin her 1 günde bir yapılacağını belirtir.)
4. İleri Düzey Yapılandırma (Özelleştirme)
Sistemin tam olarak neyi güncelleyeceğini, neleri görmezden geleceğini ve ne zaman yeniden başlatılacağını ayarladığımız yer 50unattended-upgrades dosyasıdır.
Dosyayı favori metin düzenleyicinizle (nano veya vim) açın:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Bu dosya oldukça uzundur ve çoğu satır yorum satırı ( // ) şeklindedir. İhtiyacımız olan ayarların başındaki // işaretlerini kaldırarak onları aktif hale getirebiliriz.
A. Hangi Depolar Güncellenecek?
Dosyanın en üstünde Unattended-Upgrade::Allowed-Origins bloğunu göreceksiniz. Genellikle sadece "security" (güvenlik) satırının aktif kalması önerilir. Bu, sunucunuzun sadece kritik güvenlik yamalarını almasını sağlar ve normal paket güncellemelerinin (ki bunlar bazen hatalara yol açabilir) manuel yapılmasını bekler.
Unattended-Upgrade::Allowed-Origins {"${distro_id}:${distro_codename}";"${distro_id}:${distro_codename}-security";// Extended Security Maintenance; doesn't necessarily exist for// every release and this system may not have it installed, but if// available, the policy for updates is such that unattended-upgrades// should also install from here by default."${distro_id}ESMApps:${distro_codename}-apps-security";"${distro_id}ESM:${distro_codename}-infra-security";// "${distro_id}:${distro_codename}-updates";// "${distro_id}:${distro_codename}-proposed";// "${distro_id}:${distro_codename}-backports";};
B. Belirli Paketleri Güncellemeden Hariç Tutma (Blacklist)
Eğer sisteminizde özel bir sürümde kalması gereken, güncellenirse sitenizi/uygulamanızı bozabilecek paketler varsa (örneğin özel bir Nginx
Aşağıdaki bloğu bulun ve içine paket adlarını yazın:
Unattended-Upgrade::Package-Blacklist {"nginx";"postgresql-14";"docker-ce";};
C. Otomatik Yeniden Başlatma (Auto-Reboot)
Özellikle Linux Çekirdeği (Kernel) güncellemeleri uygulandığında sistemin yeniden başlatılması gerekir. Sistemi, gece trafiğin en az olduğu bir saatte otomatik olarak yeniden başlayacak şekilde ayarlayabilirsiniz.
Aşağıdaki satırları bulup // işaretlerini kaldırın ve düzenleyin:
Unattended-Upgrade::Automatic-Reboot "true";Unattended-Upgrade::Automatic-Reboot-Time "03:00";
(Bu ayar, bir çekirdek güncellemesi varsa sistemi gece saat 03:00'te yeniden başlatır.)
D. E-posta Bildirimleri Alma
Sisteminizin arkada neler yaptığını bilmek isterseniz, güncelleme sonuçlarını e-posta olarak alabilirsiniz. (Bunun için sunucunuzda postfix veya mailutils gibi bir mail servisinin kurulu olması gerekir).
Unattended-Upgrade::Mail "admin@sirketiniz.com";Unattended-Upgrade::MailReport "on-change";
( on-change ayarı, sadece bir güncelleme yapıldığında veya bir hata oluştuğunda mail atılmasını sağlar.)
Ayarları bitirdikten sonra dosyayı kaydedip çıkın (nano için: CTRL+O, Enter, CTRL+X).
5. Test Etme ve Logları İnceleme
Yaptığınız ayarların sistemi bozup bozmadığını görmek için bir "kuru çalışma" (dry-run) yapabilirsiniz. Bu komut, gerçekten güncelleme yapmadan güncelleme sürecini simüle eder:
sudo unattended-upgrades --dry-run --debug
Çıktıyı okuyarak sistemin hangi paketleri güncellemeyi planladığını, hangilerini atladığını görebilirsiniz.
Log (Kayıt) Dosyaları:
Gerçek dünyada unattended-upgrades çalıştığında ne yaptığını merak ederseniz, şu log dosyalarını kontrol edebilirsiniz:
Genel çalışma logları:
cat /var/log/unattended-upgrades/unattended-upgrades.logKurulan/kaldırılan paket detayları:
cat /var/log/apt/history.log
Özet
Bu yapılandırma ile artık sunucunuz kritik bir güvenlik zafiyeti çıktığında sizi beklemeden kendi kendini yamayacak ve gerekirse gece yarısı sessizce yeniden başlayarak korumayı aktif hale getirecektir. Bu durum, sürdürülebilir ve güvenli bir sunucu altyapısı için atılması gereken en önemli adımlardan biridir.
Yorumlar