Otomatik Linux Güncellemeleri: unattended-upgrades ve dnf-automatic | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

Otomatik Linux güncellemeleri: Linux sunucu güncellemeleri için unattended-upgrades ve dnf-automatic yapılandırma

Seviye: Uzman
Tahmini süre: ~30 dakika
Hedef: Infrastructure as Code ilkelerine uygun olarak, unattended-upgrades ve dnf-automatic ile kesintisiz ve ölçeklenebilir otomatik Linux güncellemelerini yapılandırmak.

Giriş

Sunucuların elle yamalanması, her üretim ortamının yönetiminde kritik bir darboğazdır: otomasyon olmadan yüzlerce düğümü güvenli ve güncel tutmak güvenilir biçimde çok zor olurdu. Savunmasız bir uygulama dakikalar içinde ele geçirilebilir ve istismarların çoğu iyi bilinen, yamalanmamış açıkları hedefler. Güvenlik ihlallerini önlemek için güvenlik güncellemelerini (yazılımdaki bilinen açıkları gidermek üzere yayımlanan kritik yamalar) zamanında uygulamamız gerekir. Bu eğitimde, unattended-upgrades ve dnf-automatic kullanarak bir Linux sunucusunda otomatik Linux güncellemelerini yapılandıracağız. Bu yaklaşım, Linux sunucu güncellemelerini standart hale getirir.

unattended-upgrades ve dnf-automatic nedir?

unattended-upgrades, güvenlik ve diğer paket güncellemelerinin kurulumunu otomatikleştiren bir Debian/Ubuntu aracıdır.

dnf-automatic, RHEL/CentOS/Fedora sistemleri için otomatik güncelleme sağlayan bir bileşendir.

Bu araçlar, otomatik güncellemelerin (güncellemelerin insan müdahalesi olmadan alınıp kurulması süreci) arka planda sorunsuzca çalışmasını sağlar. Genellikle bir systemd zamanlayıcısı (görev zamanlamasını yöneten ve geleneksel cron işlerinin yerini alan bir systemd birimi) aracılığıyla günlük olarak çalıştırılırlar.

Ön koşullar

Başlamadan önce aşağıdaki koşulların karşılandığından emin olun:

  • İşletim sistemi: Ubuntu 20.04/22.04/24.04 LTS, Debian 12/13 veya RHEL/AlmaLinux 9/10
  • Erişim: Sunucuya sudo veya root erişimi
  • Ağ gereksinimleri: Paket depolarına (archive.ubuntu.com, security.debian.org, repo.almalinux.org) giden HTTPS erişimi
  • Gerekli bilgi: Sistem yönetimi, systemd ve temel yama yönetimi (yazılım güncellemelerinin dağıtılması ve uygulanması süreci) konularında ileri düzey bilgi ile Linux yama yönetimi bilgisi.

Adım 1: unattended-upgrades ile otomatik Linux güncellemelerini yapılandırma

APT (Advanced Package Tool) (Debian tabanlı dağıtımların temel paket yönetim sistemi) kullanan sistemlerde unattended-upgrades kullanırız. Bu araç, Linux yama yönetimi stratejinize sorunsuzca entegre olur.

1.1 Paketi kurma

Önce gerekli paketi paket deposundan (yazılım paketlerinin alınıp kurulduğu merkezi depolama konumu) kontrol edip kurun.

Aşağıdaki komutu çalıştırın:

sudo apt update && sudo apt install unattended-upgrades -y

Kurulumu doğrulayan bir çıktı görmelisiniz. Bu, sistemi otomatik APT güncellemelerine hazırlar.

1.2 İzin verilen kaynakları yapılandırma

Ana yapılandırma dosyası /etc/apt/apt.conf.d/50unattended-upgrades konumundadır. Yapılandırmayı yalnızca güvenlik güncellemelerini kuracak şekilde değiştireceğiz. Bu, otomatik paket güncellemeleri sırasında uyumluluğu bozan değişiklik riskini en aza indirir.

Değişiklik yapmadan önce, özgün yapılandırma dosyasının yedeğini almak en iyi uygulamadır:

sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak

Yapılandırma dosyasını açın:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Allowed-Origins bloğunun içeriğini tamamen değiştirin ve listelenen adları Package-Blacklist bloğuna ekleyin:

Ubuntu için:

Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; };

Debian için:

Unattended-Upgrade::Origins-Pattern { "origin=Debian,codename=${distro_codename},label=Debian-Security"; "origin=Debian,codename=${distro_codename}-security,label=Debian-Security"; };

Ardından paket kara listesini ve yeniden başlatma davranışını yapılandırın:

Unattended-Upgrade::Package-Blacklist { "^nginx$"; "^mysql-server$"; "^mariadb-server$"; "postgresql*"; "docker*"; }; Unattended-Upgrade::Automatic-Reboot "false";

Info

Package-Blacklist düzenli ifadeler (regex) kullanır. "nginx" gibi bir girdi; nginx-common, nginx-extras vb. paketlerle de eşleşir. Yalnızca belirli paketi hedeflemek için "^nginx$" gibi regex çapaları kullanın.

Bu ayar, otomatik APT güncellemelerini yalnızca güvenlik yamalarıyla sınırlar ve kritik paketleri otomatik güncellemenin dışında tutar; böylece güvenlik yaması otomasyonunu korurken hizmet kesintisi riskini azaltır.

Warning

Çekirdek, libc ve diğer düşük seviyeli paket güncellemeleri yine de yeniden başlatma gerektirebilir. Üretim ortamlarında, bakım pencereleri orkestrasyon ile zorunlu kılınmıyorsa otomatik yeniden başlatmayı kapalı tutun.

1.3 Otomatik güncellemeleri etkinleştirme

APT için systemd zamanlayıcısını etkinleştirmek üzere auto-upgrades dosyasını oluşturun.

Dosyayı açın:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Aşağıdakini içine yapıştırın:

APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; APT::Periodic::AutocleanInterval "7";

Bu yapılandırma sisteme şunları yaptırır:

  • Update-Package-Lists "1" - paket listelerini günlük olarak güncellemek.
  • Unattended-Upgrade "1" - otomatik APT güncellemelerini kendiliğinden çalıştırmak.
  • AutocleanInterval "7" - paket önbelleğini her 7 günde bir temizlemek.

Adım 2: Linux sunucu güncellemeleri için dnf-automatic yapılandırma

DNF (Dandified YUM) (RHEL tabanlı dağıtımlar için yeni nesil paket yöneticisi) kullanan sistemlerde dnf-automatic, sağlam bir DNF güncelleme otomasyonu sunar.

2.1 Paketi kurma

Otomasyon aracını paket deposundan kurun.

Aşağıdaki komutu çalıştırın:

sudo dnf install dnf-automatic -y

DNF güncelleme otomasyonu paketinin başarıyla kurulduğunu doğrulayan bir çıktı görmelisiniz.

2.2 Güncelleme ilkelerini yapılandırma

Ana yapılandırma dosyası /etc/dnf/automatic.conf konumundadır. Aracı yalnızca güvenlik güncellemelerini indirecek ve uygulayacak şekilde yapılandırın.

Değişiklik yapmadan önce yapılandırma dosyasını yedekleyin ve dağıtımınız için güvenlik bültenlerinin (security advisories) mevcut olup olmadığını kontrol edin:

sudo cp /etc/dnf/automatic.conf /etc/dnf/automatic.conf.bak sudo dnf updateinfo summary sudo dnf updateinfo list security

Yapılandırma dosyasını açın:

sudo nano /etc/dnf/automatic.conf

Aşağıdaki parametreleri ayarlayın:

[commands] upgrade_type = security random_sleep = 3600 download_updates = yes apply_updates = yes [emitters] emit_via = stdio

Bu yapılandırma sisteme şunları yaptırır:

  • upgrade_type = security - yalnızca güvenlik yamalarını hedeflemek.
  • random_sleep = 3600 - çalıştırmayı en fazla 1 saat rastgele geciktirmek; büyük ölçekli Infrastructure as Code dağıtımlarında yükü yayarak depolardaki ani yük artışlarını ve eşzamanlı zincirleme arızaları önler.
  • download_updates ve apply_updates - güvenlik güncellemelerini otomatik olarak indirmek ve kurmak.

Info

upgrade_type = security, deponun güvenlik meta verilerine bağlıdır. Güvenlik bültenleri eksikse (yeni bir AlmaLinux 10 kurulumunda bu tipiktir), bu ayarla dnf-automatic hiçbir şey uygulamayabilir. Üretimde yalnızca güvenlik güncellemelerine güvenmeden önce deponun desteğini doğrulayın. Alternatif olarak, üretim sistemleri için upgrade_type = security-severity:Critical veya default-security kullanmayı düşünebilirsiniz.

2.3 systemd zamanlayıcısını etkinleştirme

DNF güncelleme otomasyonunu zamanlamak için zamanlayıcıyı etkinleştirin.

Aşağıdaki komutu çalıştırın:

sudo systemctl enable --now dnf-automatic.timer

Zamanlayıcının etkinleştirildiğini ve başlatıldığını gösteren bir çıktı görmelisiniz. Bu, sistem için zamanlanmış otomatik paket güncellemelerini etkinleştirir.

Adım 3: Yapılandırmayı doğrulama

Yapılandırma yazıldıktan sonra doğrulanmalıdır.

3.1 Debian/Ubuntu'da doğrulama

Yapılandırmayı doğrulamak için bir deneme çalıştırması (dry run) yapın. -d (veya --dry-run) bayrağı unattended-upgrades aracını hata ayıklama kipinde çalıştırır - gerçekte hiçbir şey değiştirilmez:

sudo unattended-upgrades --dry-run --debug

Info

--dry-run bayrağı tanılama bilgisi üretir ancak hiçbir dosyayı değiştirmez. Kara listedeki hiçbir paketin kuyruğa alınmadığından emin olun.

Üretimde günlükler (loglar) deneme çalıştırmalarından daha önemlidir. Zamanlayıcının ve hizmetin etkin olduğunu doğrulayın:

systemctl list-timers | grep apt systemctl status apt-daily-upgrade.service --no-pager

Ardından güncelleme etkinliğini doğrulamak için son günlük çıktısını kontrol edin. Yeni yapılandırılmış bir sistemde günlük boş olabilir. Anında kontrol için şunu çalıştırın: sudo unattended-upgrade -v.

sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades.log

3.2 RHEL/AlmaLinux'ta zamanlayıcıyı doğrulama

Zamanlayıcının durumunu kontrol edin:

systemctl list-timers | grep dnf-automatic

Beklenen çıktı:

Wed 2026-05-27 06:23:13 EEST 16h left - - dnf-automatic.timer dnf-automatic.service

Zamanlayıcı listede görünüyorsa güncellemeleriniz doğru şekilde zamanlanmıştır.

3.3 Yeniden başlatma gerekip gerekmediğini kontrol etme

Çekirdek ve libc güncellemeleri güvenlik kuyruğuna dahildir (örneğin Debian'da linux-image-amd64 güvenlik güncellemelerinin parçasıdır). Automatic-Reboot=false ayarlandığı için, elle yeniden başlatma gerekip gerekmediğini kendiniz kontrol etmelisiniz.

Debian/Ubuntu için:

test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs

AlmaLinux/RHEL için:

sudo dnf needs-restarting -r

3.4 Doğrulama için zorla çalıştırma

Zamanlayıcı tetiklenene kadar sonucu göremeyebilirsiniz. Doğrulama amacıyla güncelleme sürecini elle çalıştırmak için:

Debian/Ubuntu için:

sudo unattended-upgrade -v

AlmaLinux/RHEL için:

sudo dnf-automatic

Adım 4: Gelişmiş yapılandırma (uzman seviyesi)

Uzman seviyesindeki gereksinimleri karşılamak için kurulumu bildirimler ve ayrıntılı zamanlama ile genişletebilirsiniz.

4.1 E-posta bildirimleri

Güncellemelerle ilgili raporlar almak için:

Debian/Ubuntu için:

/etc/apt/apt.conf.d/50unattended-upgrades dosyasında yorum işaretini kaldırın ve düzenleyin:

Unattended-Upgrade::Mail "<YOUR_EMAIL>"; Unattended-Upgrade::MailReport "on-change";

AlmaLinux/RHEL için:

/etc/dnf/automatic.conf dosyasında [email] bölümünü yapılandırın ve emitter'ı değiştirin:

[emitters] emit_via = email [email] email_from = [email protected] email_to = <YOUR_EMAIL> email_host = localhost

4.2 Gelişmiş dnf-automatic zamanlayıcıları

dnf-automatic, indirme ve kurulum aşamalarını ayırmaya olanak tanıyan birden fazla zamanlayıcı sunar; bu da üretimde daha fazla kontrol sağlar:

  • dnf-automatic.timer: Varsayılan zamanlayıcı (indirir ve yapılandırılmışsa isteğe bağlı olarak kurar).
  • dnf-automatic-notifyonly.timer: Yalnızca güncellemeleri denetler ve bildirim gönderir.
  • dnf-automatic-download.timer: Güncellemeleri indirir ancak kurmaz.
  • dnf-automatic-install.timer: Güncellemeleri indirir ve otomatik olarak kurar (yapılandırmadaki apply_updates ayarını geçersiz kılar).

Kümenizin (cluster) bakım ilkesine uyan zamanlayıcıyı kullanın.

Geri alma (rollback)

Yapılan her şeyi geri almak için araçları ve yapılandırmaları kaldırmanız yeterlidir.

Debian/Ubuntu:

sudo apt purge unattended-upgrades -y sudo rm -rf /etc/apt/apt.conf.d/20auto-upgrades /var/log/unattended-upgrades/ /var/run/reboot-required* sudo mv /etc/apt/apt.conf.d/50unattended-upgrades.bak /etc/apt/apt.conf.d/50unattended-upgrades

RHEL/AlmaLinux:

sudo systemctl disable --now dnf-automatic.timer sudo mv /etc/dnf/automatic.conf.bak /etc/dnf/automatic.conf sudo dnf remove dnf-automatic -y

Warning

Bu araçların kaldırılması tüm sistem için otomatik güncellemeleri devre dışı bırakır; elle yamalanmadıkça sunucularınız savunmasız kalır.

Sonuç

Hepsi bu kadar. unattended-upgrades veya dnf-automatic ile doğru yapılandırılmış tek bir sistem, bir deneme çalıştırmasıyla doğrulandı - ve iş tamam. Bu güvenlik yaması otomasyonu sayesinde otomatik Linux güncellemeleri sorunsuz uygulanır, bakım yükü düşük kalır ve Linux sunucu güncellemeleri reaktif olmaktan çıkıp öngörülebilir hale gelir. Daha büyük ortamlarda, tüm düğümleri aynı anda güncellememek için bu kurulumu Infrastructure as Code ve kademeli dağıtımlarla birleştirin.

Belge sürümü: 1.0
Son güncelleme: Mayıs 2026
Sahibi: Teknik Dokümantasyon Ekibi

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA