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... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
unattended-upgrades
Need 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.log
unattended-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

# Kurulum
sudo apt install unattended-upgrades
# Yapılandırma
sudo dpkg-reconfigure unattended-upgrades
# Test
sudo unattended-upgrade --dry-run --debug
# Servis Durumu
systemctl status unattended-upgrades
# Logları Görüntüle
sudo 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:

Bash
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:

Bash
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:

Bash
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:

Plaintext
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:

Bash
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.

Plaintext
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 veya PostgreSQL yapılandırması), bunları kara listeye alabilirsiniz.

Aşağıdaki bloğu bulun ve içine paket adlarını yazın:

Plaintext
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:

Plaintext
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).

Plaintext
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:

Bash
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.log

  • Kurulan/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

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu