Modul 4 · 4.2
Samodejne posodobitve
Modul 4: Programska oprema in posodobitve · Čas branja: 10 minut
Učni cilj: Po tej lekciji boste znali vklopiti in preveriti samodejne varnostne posodobitve, vedeli boste, kaj se zgodi samodejno in kaj ne, ter kdaj je potreben ponovni zagon.
Ključni pojmi: unattended-upgrades, 20auto-upgrades, 50unattended-upgrades, Origins-Pattern in Allowed-Origins, časovniki apt-daily, needrestart, /var/run/reboot-required, Automatic-Reboot, posodobitev jedra, dnf-automatic
Zakaj samodejno?
Varnostne ranljivosti odkrijejo, popravijo in jih nato aktivno zlorabljajo, pogosto v nekaj dneh. Strežnik, ki ga posodobite enkrat na mesec, je zato v povprečju več tednov izpostavljen znanim ranljivostim. Nizozemski NCSC pravočasno nameščanje posodobitev uvršča med osnovna načela digitalne odpornosti: "Pravočasno posodabljanje in popravljanje programske opreme pomaga hitro odpraviti ranljivosti."
Vendar tudi "vse samodejno" ni dobro. Nova različica programa se lahko obnaša drugače kot stara, strežnik, ki se sredi dneva sam znova zažene, pa lahko prizadene Vaše obiskovalce. Običajna srednja pot na Debianu in Ubuntuju je:
- varnostne posodobitve samodejno, vsak dan;
- druge posodobitve in nadgradnje izdaje ročno, ob trenutku, ki ga izberete sami, s posnetkom stanja vnaprej;
- ponovni zagoni načrtovani, ob mirnem času, in nadzorovani.
Program, ki to ureja, se imenuje unattended-upgrades.
Vklop unattended-upgrades
Na Ubuntu Server je unattended-upgrades nameščen privzeto, samodejne varnostne posodobitve pa so vklopljene takoj po namestitvi. Na Debianu je na številnih namestitvah in slikah prav tako že prisoten, a ne vedno. Preverite in vklopite:
anna@web1:~$ sudo apt install unattended-upgrades
anna@web1:~$ sudo dpkg-reconfigure -plow unattended-upgradesDrugi ukaz vpraša "Automatically download and install stable updates?". Izberite Yes. S tem se zapiše datoteka /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";1 pomeni: vsak dan. Z 0 to izklopite. Samo delo zaženeta dva časovnika systemd (lekcija 6.3), ki si ju ogledate takole:
anna@web1:~$ systemctl list-timers 'apt*'
NEXT LEFT LAST PASSED UNIT ACTIVATES
Tue 2026-11-10 06:24:11 CET 9h left Mon 2026-11-09 06:41:03 CET 14h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Tue 2026-11-10 08:02:47 CET 11h left Mon 2026-11-09 19:12:30 CET 1h ago apt-daily.timer apt-daily.serviceapt-daily prenese sezname (kot apt update), apt-daily-upgrade namesti posodobitve. Časi imajo naključni razpon, da vsi strežniki na svetu ne obremenjujejo virov paketov hkrati.
Kaj se namesti samodejno?
To je zapisano v /etc/apt/apt.conf.d/50unattended-upgrades. Na Debianu se blok imenuje Unattended-Upgrade::Origins-Pattern, na Ubuntuju Unattended-Upgrade::Allowed-Origins. Privzeto sta tam vklopljena varnostni vir in stalni vir Vaše izdaje, vir -updates pa je izklopljen. Na Ubuntuju je videti takole:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${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";
};Vrstice, pred katerimi je //, so izklopljene. Pri prvem strežniku pustite to tako, kot je. Datoteke ne spreminjajte neposredno, saj jo bo naslednja različica paketa morda želela zamenjati. Debian priporoča, da lastne spremembe zapišete v lastno datoteko, na primer /etc/apt/apt.conf.d/52unattended-upgrades-local; poznejše datoteke imajo prednost pred prejšnjimi.
Paketi iz dodatnih virov (Docker, Caddy, PostgreSQL neposredno od izdelovalca) se privzeto ne posodabljajo samodejno. To je namerna odločitev: te spremljate sami (lekcija 9.4) ali pa vir ročno dodate na seznam, če izdelovalcu zaupate in poznate posledice.
Nekaj nastavitev, ki jih boste pogosto želeli:
// /etc/apt/apt.conf.d/52unattended-upgrades-local
Unattended-Upgrade::Mail "root";
Unattended-Upgrade::MailReport "only-on-error";
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Automatic-Reboot "false";Mail deluje le, če strežnik lahko pošilja pošto (majhen posrednik, lekcija 8.3). Če to ni mogoče, to preskočite in uporabite nadzor iz lekcije 8.3.
Preverjanje, ali deluje
Avtomatizem, ki se tiho ustavi, je nevarnejši od nobenega avtomatizma, saj mislite, da ste varni. Zato preverite tri stvari.
1. Poskusni zagon. Ta pokaže, kaj bi se zgodilo, ne da bi kar koli spremenil:
anna@web1:~$ sudo unattended-upgrade --dry-run --debug
...
Allowed origins are: origin=Debian,codename=trixie,label=Debian, origin=Debian,codename=trixie-security,label=Debian-Security, ...
Packages that will be upgraded: libssl3t64 openssh-server2. Dnevnik. Vsak zagon piše v /var/log/unattended-upgrades/unattended-upgrades.log:
anna@web1:~$ sudo tail -n 5 /var/log/unattended-upgrades/unattended-upgrades.log
2026-11-09 06:41:15,201 INFO Packages that will be upgraded: openssh-server
2026-11-09 06:41:15,202 INFO Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
2026-11-09 06:41:29,874 INFO All upgrades installed3. Kaj je še odprto. apt list --upgradable (lekcija 4.1) po eni noči ne bi smel več prikazovati paketov iz -security. Če so tam več dni zapored, nekaj ne deluje: poln disk, zaklep zaradi ročno zagnanega apt, ki se je zataknil, ali paket, ki postavlja vprašanje.
Ponovni zagon: storitve in jedro
Posodobljen program na disku še ni isto kot posodobljen program v pomnilniku. Če OpenSSH teče že tri tedne, teče stara koda, dokler se storitev ne zažene znova.
- Storitve: program needrestart po posodobitvi preveri, katere storitve še uporabljajo stare knjižnice. Na Ubuntu 24.04 in novejših unattended-upgrades te storitve prek needrestart privzeto samodejno znova zažene. Na Debianu je needrestart ločen paket (
apt install needrestart), ki Vas interaktivno vpraša, katere storitve je treba znova zagnati. - Jedro: novo jedro začne delovati šele po ponovnem zagonu celotnega strežnika. Debian in Ubuntu takrat ustvarita datoteko
/var/run/reboot-required:
anna@web1:~$ cat /var/run/reboot-required
*** System restart required ***
anna@web1:~$ cat /var/run/reboot-required.pkgs
linux-image-6.12.57+deb13-amd64Imate dve možnosti. Ali strežnik znova zaženete sami, na primer vsak teden ob stalnem času, potem ko ste preverili, ali datoteka obstaja. Ali pa to prepustite unattended-upgrades:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:30";Privzeta vrednost je false. Vklopite jo le, če ste prepričani, da se po ponovnem zagonu vse samo znova zažene: storitve z enable (lekcija 6.1), vsebniki s pravilnikom restart: (lekcija 9.3) in nadzor, ki Vas opozori, če temu ni tako (lekcija 8.3). Najprej enkrat ročno preizkusite: sudo reboot, in preverite, ali se vse vrne.
Ubuntu prek Ubuntu Pro ponuja tudi Livepatch, ki nekatere popravke jedra uveljavi brez ponovnega zagona. To je dopolnilo, ne nadomestilo: tudi z Livepatch strežnik občasno znova zaženete.
Česa ne počnete samodejno
- Nadgradenj izdaje (z Debian 12 na 13, z Ubuntu 24.04 na 26.04): vedno ročno, z načrtom (lekcija 4.3).
- Večjih različic Vaših lastnih aplikacij (nova glavna različica podatkovne baze, sistema CMS): vedno ročno, po varnostni kopiji in branju opomb ob izdaji.
- Vsebnikov: teh unattended-upgrades ne posodablja. Slika iz leta 2024 ostane slika iz leta 2024, dokler sami ne izvedete
docker compose pull(lekcija 9.4).
Na AlmaLinux in Rocky Linux
Tam se orodje imenuje dnf-automatic. Namestite ga z dnf install dnf-automatic. V /etc/dnf/automatic.conf nastavite upgrade_type = security in apply_updates = yes, časovnik pa vklopite z systemctl enable --now dnf-automatic.timer. Na sistemih, podobnih RHEL, je ponovni zagon zaradi jedra prav tako potreben kot na Debianu; dnf needs-restarting -r pove, ali je tako.
V praksi
Pri WebOké VPS deluje enako kot drugje: kaj se posodablja znotraj strežnika, upravljate sami. Ponudnik posodablja strojno opremo in platformo za virtualizacijo, ne pa Vašega operacijskega sistema. Pred ročno večjo posodobitvijo ustvarite posnetek stanja v nadzorni plošči svojega ponudnika; za vsakodnevne samodejne varnostne posodobitve to ni potrebno.
Povzetek
- Samodejne varnostne posodobitve vklopite z unattended-upgrades (Ubuntu: privzeto vklopljeno; Debian: preverite z
dpkg-reconfigure -plow unattended-upgrades). - Privzeto se samodejno posodabljata le varnostni vir in stalni vir izdaje; dodatni viri ne.
- Preverite s poskusnim zagonom, dnevnikom v
/var/log/unattended-upgrades/inapt list --upgradable. - Storitve je treba po posodobitvi znova zagnati (needrestart), jedro zahteva ponovni zagon strežnika (
/var/run/reboot-required). - Nadgradnje izdaje, večje različice aplikacij in vsebnike posodabljate ročno.
Kviz
Naloga
Naloga O4.2: Vklop in preverjanje samodejnih posodobitev. Na svojem strežniku vklopite unattended-upgrades (ali preverite, da je vklopljen), izvedite poskusni zagon ter preglejte dnevnik in časovnike. Izpolnite kontrolni seznam in odgovorite: kateri viri se pri Vas samodejno posodabljajo, kdaj je bil zadnji zagon, ali je trenutno potreben ponovni zagon in kako boste strežnik znova zaganjali (sami ob stalnem času ali samodejno, in zakaj)?
Naloga O4.2: Vklop in preverjanje samodejnih posodobitev
To nalogo opravite sami; nihče je ne pregleda. Odkljukajte, kar ste naredili, in nalogo označite kot opravljeno.
Samodejno: vir izdaje in varnostni vir. Če obstaja reboot-required, čaka posodobitev jedra ali knjižnice. Samodejni ponovni zagon je mogoč, če se vse potem samo vrne in Vas nadzor obvesti, če se ne. Dodatne vire (Docker, Caddy), vsebnike in aplikacije, kot je WordPress, posodabljate sami.
Vaše kljukice in zapiski ostanejo samo v tem brskalniku, nikamor jih ne pošiljamo. Če ste prijavljeni, v Moji tečaji shranimo samo podatek, da ste nalogo opravili.
Za nadaljnje branje
- Zavarovanje Vašega VPS: prvih pet minut
- Debian Wiki, samodejne posodobitve (UnattendedUpgrades): https://wiki.debian.org/PeriodicUpdates
- Nizozemski NCSC (nizozemski vir), osnovno načelo 3: Zaščitite sisteme, aplikacije in naprave: https://www.ncsc.nl/basisprincipes/basisprincipe-3-bescherm-systemen-applicaties-en-apparaten
- Dokumentacija Ubuntu Server, Automatic updates: https://ubuntu.com/server/docs/how-to/software/automatic-updates/
- VPS: od prve prijave do varnega strežnika 3.3: Posodobitve in samodejne posodobitve
