Automatska ažuriranja Linuxa: unattended-upgrades i dnf-automatic | INTROSERV
EUR
european

EUR

usa

USD

Croatia Hr
Ex. VAT Ex. VAT 0%

Automatska ažuriranja Linuxa: konfiguracija unattended-upgrades i dnf-automatic za ažuriranje Linux poslužitelja

Razina: Stručnjak
Procijenjeno vrijeme: ~30 minuta
Cilj: Konfigurirati skalabilna automatska ažuriranja Linuxa bez prekida rada pomoću alata unattended-upgrades i dnf-automatic prema načelima Infrastructure as Code.

Uvod

Ručno instaliranje zakrpa na poslužiteljima kritično je usko grlo u upravljanju svakim produkcijskim okruženjem: bez automatizacije bilo bi vrlo teško pouzdano održavati sigurnima i ažurnima stotine čvorova. Ranjiva aplikacija može biti kompromitirana u nekoliko minuta, a većina exploita cilja na dobro poznate, nezakrpane ranjivosti. Moramo pravodobno primjenjivati sigurnosna ažuriranja (kritične zakrpe objavljene radi otklanjanja poznatih ranjivosti u softveru) kako bismo izbjegli sigurnosne incidente. U ovom ćemo vodiču konfigurirati automatska ažuriranja Linuxa na Linux poslužitelju pomoću alata unattended-upgrades i dnf-automatic. Ovaj pristup standardizira ažuriranja Linux poslužitelja.

Što su unattended-upgrades i dnf-automatic?

unattended-upgrades je uslužni program za Debian/Ubuntu koji automatizira instalaciju sigurnosnih i drugih ažuriranja paketa.

dnf-automatic je komponenta koja omogućuje automatizirana ažuriranja za sustave RHEL/CentOS/Fedora.

Ovi alati omogućuju neometano izvođenje automatskih ažuriranja (postupka dohvaćanja i instaliranja ažuriranja bez ljudske intervencije) u pozadini. Obično se pokreću svakodnevno putem systemd timera (systemd jedinice koja upravlja raspoređivanjem zadataka i zamjenjuje tradicionalne cron zadatke).

Preduvjeti

Prije početka provjerite jesu li ispunjeni sljedeći uvjeti:

  • Operacijski sustav: Ubuntu 20.04/22.04/24.04 LTS, Debian 12/13 ili RHEL/AlmaLinux 9/10
  • Pristup: sudo ili root pristup poslužitelju
  • Mrežni zahtjevi: odlazni HTTPS pristup repozitorijima paketa (archive.ubuntu.com, security.debian.org, repo.almalinux.org)
  • Potrebno znanje: stručno razumijevanje administracije sustava, systemda i osnova upravljanja zakrpama (postupka distribucije i primjene ažuriranja softvera) te upravljanja zakrpama u Linuxu.

Korak 1: Konfiguracija automatskih ažuriranja Linuxa pomoću unattended-upgrades

Za sustave koji koriste APT (Advanced Package Tool) (temeljni sustav za upravljanje paketima u distribucijama temeljenima na Debianu) koristimo unattended-upgrades. Ovaj se alat besprijekorno uklapa u vašu strategiju upravljanja zakrpama u Linuxu.

1.1 Instalacija paketa

Najprije provjerite i instalirajte potreban paket iz repozitorija paketa (centraliziranog spremišta iz kojeg se dohvaćaju i instaliraju softverski paketi).

Pokrenite sljedeću naredbu:

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

Trebali biste vidjeti ispis koji potvrđuje instalaciju. Time je sustav spreman za automatska APT ažuriranja.

1.2 Konfiguracija dopuštenih izvora

Glavna konfiguracijska datoteka nalazi se na putanji /etc/apt/apt.conf.d/50unattended-upgrades. Izmijenit ćemo konfiguraciju tako da se instaliraju samo sigurnosna ažuriranja. To smanjuje rizik od promjena koje narušavaju kompatibilnost tijekom automatskih ažuriranja paketa.

Prije izmjena preporučljivo je napraviti sigurnosnu kopiju izvorne konfiguracijske datoteke:

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

Otvorite konfiguracijsku datoteku:

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

U potpunosti zamijenite sadržaj bloka Allowed-Origins, a navedene nazive dodajte u blok Package-Blacklist:

Za Ubuntu:

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

Za Debian:

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

Zatim konfigurirajte crnu listu paketa i ponašanje pri ponovnom pokretanju:

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

Info

Package-Blacklist koristi regularne izraze. Unos poput "nginx" podudara se i s paketima nginx-common, nginx-extras itd. Da biste ciljali samo točno određeni paket, koristite regex sidra poput "^nginx$".

Time se automatska APT ažuriranja ograničavaju samo na sigurnosne zakrpe, a kritični paketi isključuju se iz automatskog ažuriranja, čime se smanjuje rizik od prekida usluga uz zadržavanje automatizacije sigurnosnih zakrpa.

Warning

Ažuriranja jezgre, libc-a i drugih niskorazinskih paketa i dalje mogu zahtijevati ponovno pokretanje. U produkcijskim okruženjima ostavite automatska ponovna pokretanja isključenima, osim ako se prozori za održavanje ne provode putem orkestracije.

1.3 Omogućavanje automatskih ažuriranja

Izradite datoteku auto-upgrades kako biste aktivirali systemd timer za APT.

Otvorite datoteku:

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

Zalijepite sljedeći sadržaj:

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

Ova konfiguracija nalaže sustavu da:

  • Update-Package-Lists "1" - svakodnevno ažurira popise paketa.
  • Unattended-Upgrade "1" - automatski izvršava automatska APT ažuriranja.
  • AutocleanInterval "7" - čisti predmemoriju paketa svakih 7 dana.

Korak 2: Konfiguracija dnf-automatic za ažuriranja Linux poslužitelja

Za sustave koji koriste DNF (Dandified YUM) (upravitelj paketima nove generacije za distribucije temeljene na RHEL-u) dnf-automatic pruža pouzdanu automatizaciju DNF ažuriranja.

2.1 Instalacija paketa

Instalirajte alat za automatizaciju iz repozitorija paketa.

Pokrenite sljedeću naredbu:

sudo dnf install dnf-automatic -y

Trebali biste vidjeti ispis koji potvrđuje uspješnu instalaciju paketa za automatizaciju DNF ažuriranja.

2.2 Konfiguracija pravila ažuriranja

Glavna konfiguracijska datoteka nalazi se na putanji /etc/dnf/automatic.conf. Konfigurirajte alat tako da preuzima i primjenjuje samo sigurnosna ažuriranja.

Prije izmjena napravite sigurnosnu kopiju konfiguracijske datoteke i provjerite jesu li za vašu distribuciju dostupne sigurnosne obavijesti (security advisories):

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

Otvorite konfiguracijsku datoteku:

sudo nano /etc/dnf/automatic.conf

Prilagodite sljedeće parametre:

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

Ova konfiguracija nalaže sustavu da:

  • upgrade_type = security - cilja isključivo sigurnosne zakrpe.
  • random_sleep = 3600 - nasumično odgodi izvršavanje do 1 sat, čime se opterećenje raspoređuje u velikim Infrastructure as Code implementacijama te se sprječavaju skokovi opterećenja repozitorija i istodobni kaskadni kvarovi.
  • download_updates i apply_updates - automatski preuzimaju i instaliraju sigurnosna ažuriranja.

Info

upgrade_type = security ovisi o sigurnosnim metapodacima repozitorija. Ako sigurnosne obavijesti nedostaju (što je tipično za svježu instalaciju AlmaLinuxa 10), dnf-automatic s ovom postavkom možda neće primijeniti ništa. Prije nego što se u produkciji oslonite na ažuriranja samo sa sigurnosnim zakrpama, provjerite podržava li to repozitorij. Alternativno, za produkcijske sustave razmotrite upgrade_type = security-severity:Critical ili default-security.

2.3 Omogućavanje systemd timera

Aktivirajte timer kako biste rasporedili automatizaciju DNF ažuriranja.

Pokrenite sljedeću naredbu:

sudo systemctl enable --now dnf-automatic.timer

Trebali biste vidjeti ispis koji pokazuje da je timer omogućen i pokrenut. Time se u sustavu aktiviraju zakazana automatska ažuriranja paketa.

Korak 3: Provjera konfiguracije

Nakon zapisivanja konfiguracije potrebno ju je provjeriti.

3.1 Provjera na Debianu/Ubuntuu

Izvedite probno pokretanje (dry run) kako biste potvrdili ispravnost konfiguracije. Zastavica -d (ili --dry-run) pokreće unattended-upgrades u načinu za otklanjanje pogrešaka - ništa se zapravo ne mijenja:

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

Info

Zastavica --dry-run ispisuje dijagnostičke informacije, ali ne mijenja nijednu datoteku. Provjerite da u redu čekanja nema paketa s crne liste.

U produkciji su zapisnici (logovi) važniji od probnih pokretanja. Provjerite jesu li timer i servis aktivni:

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

Zatim pregledajte nedavni ispis zapisnika kako biste potvrdili aktivnost ažuriranja. Na svježe konfiguriranom sustavu zapisnik može biti prazan. Za trenutačnu provjeru pokrenite: sudo unattended-upgrade -v.

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

3.2 Provjera timera na RHEL-u/AlmaLinuxu

Provjerite status timera:

systemctl list-timers | grep dnf-automatic

Očekivani ispis:

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

Ako je timer naveden, ažuriranja su ispravno zakazana.

3.3 Provjera je li potrebno ponovno pokretanje

Ažuriranja jezgre i libc-a uključena su u sigurnosni red čekanja (na primjer, na Debianu je linux-image-amd64 dio sigurnosnih ažuriranja). Budući da je postavljeno Automatic-Reboot=false, morate sami provjeriti je li potrebno ručno ponovno pokretanje.

Za Debian/Ubuntu:

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

Za AlmaLinux/RHEL:

sudo dnf needs-restarting -r

3.4 Prisilno pokretanje radi provjere

Rezultat možda nećete vidjeti dok se timer ne aktivira. Za ručno pokretanje postupka ažuriranja radi provjere:

Za Debian/Ubuntu:

sudo unattended-upgrade -v

Za AlmaLinux/RHEL:

sudo dnf-automatic

Korak 4: Napredna konfiguracija (stručna razina)

Kako biste ispunili zahtjeve stručne razine, postavu možete proširiti obavijestima i finijim raspoređivanjem.

4.1 Obavijesti e-poštom

Za primanje izvješća o ažuriranjima:

Za Debian/Ubuntu:

U datoteci /etc/apt/apt.conf.d/50unattended-upgrades uklonite komentar i prilagodite:

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

Za AlmaLinux/RHEL:

U datoteci /etc/dnf/automatic.conf konfigurirajte odjeljak [email] i promijenite emitter:

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

4.2 Napredni dnf-automatic timeri

dnf-automatic nudi više timera koji omogućuju razdvajanje faza preuzimanja i instalacije, što pruža veću kontrolu u produkciji:

  • dnf-automatic.timer: zadani timer (preuzima te, ako je konfigurirano, instalira).
  • dnf-automatic-notifyonly.timer: samo provjerava ažuriranja i šalje obavijest.
  • dnf-automatic-download.timer: preuzima ažuriranja, ali ih ne instalira.
  • dnf-automatic-install.timer: preuzima i automatski instalira ažuriranja (nadjačava postavku apply_updates u konfiguraciji).

Koristite timer koji odgovara pravilima održavanja vašeg klastera.

Povratak promjena (rollback)

Da biste poništili sve učinjeno, jednostavno uklonite alate i konfiguracije.

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

Uklanjanje ovih alata onemogućit će automatska ažuriranja za cijeli sustav, a poslužitelji će ostati ranjivi osim ako se ne zakrpaju ručno.

Zaključak

To je sve. Jedan ispravno konfiguriran sustav s alatom unattended-upgrades ili dnf-automatic, provjeren probnim pokretanjem - i posao je gotov. Zahvaljujući ovoj automatizaciji sigurnosnih zakrpa automatska ažuriranja Linuxa primjenjuju se neometano, opterećenje održavanja ostaje malo, a ažuriranja Linux poslužitelja postaju predvidljiva umjesto reaktivna. U većim okruženjima ovu postavu kombinirajte s Infrastructure as Code i postupnim uvođenjem kako ne biste ažurirali sve čvorove istodobno.

Verzija dokumenta: 1.0
Zadnje ažuriranje: svibanj 2026
Vlasnik: Tim za tehničku dokumentaciju

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