Moodul 4 · 4.2
Automaatsed uuendused
Moodul 4: Tarkvara ja uuendused · Lugemisaeg: 10 minutit
Õpieesmärk: Pärast seda õppetundi oskad automaatsed turvauuendused sisse lülitada ja neid kontrollida. Tead, mis toimub automaatselt ja mis mitte, ning tead, millal on vaja taaskäivitust.
Põhimõisted: unattended-upgrades, 20auto-upgrades, 50unattended-upgrades, Origins-Pattern ja Allowed-Origins, apt-daily taimerid, needrestart, /var/run/reboot-required, Automatic-Reboot, kerneli uuendus, dnf-automatic
Miks automaatselt?
Turvaauke leitakse, parandatakse ja seejärel kasutatakse aktiivselt ära, sageli juba mõne päeva jooksul. Server, mida uuendad kord kuus, on seega keskmiselt nädalaid teadaolevatele aukudele avatud. Hollandi NCSC peab uuenduste õigeaegset paigaldamist digitaalse vastupanuvõime üheks põhiprintsiibiks: „Tarkvara õigeaegne uuendamine ja paikamine aitab haavatavused kiiresti kõrvaldada.“
Samas pole ka „kõik automaatselt“ hea lahendus. Programmi uus versioon võib käituda teisiti kui vana ning server, mis keset päeva ise taaskäivitub, võib häirida su külastajaid. Debianis ja Ubuntus on levinud kesktee järgmine:
- turvauuendused automaatselt, iga päev;
- muud uuendused ja väljalaske uuendused käsitsi, sinu valitud ajal ja eelnevalt tehtud hetktõmmisega;
- taaskäivitused planeeritult, rahulikul ajal ja kontrollitult.
Seda korraldavat programmi nimetatakse unattended-upgrades.
unattended-upgrades sisselülitamine
Ubuntu Serveris on unattended-upgrades vaikimisi paigaldatud ja automaatsed turvauuendused on kohe pärast paigaldust sees. Debianis on see paljudes paigaldustes ja tõmmistes samuti olemas, kuid mitte alati. Kontrolli ja lülita sisse:
anna@web1:~$ sudo apt install unattended-upgrades
anna@web1:~$ sudo dpkg-reconfigure -plow unattended-upgradesTeine käsk küsib „Automatically download and install stable updates?“ (kas laadida stabiilsed uuendused automaatselt alla ja paigaldada). Vali Yes. See kirjutab faili /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";1 tähendab: iga päev. Väärtusega 0 lülitad selle välja. Töö ise käivitavad kaks systemd taimerit (õppetund 6.3), mida näed nii:
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 tõmbab nimekirjad (nagu apt update), apt-daily-upgrade paigaldab uuendused. Ajad on juhuslikult hajutatud, et kõik maailma serverid ei koormaks pakettide allikaid korraga.
Mida paigaldatakse automaatselt?
See on kirjas failis /etc/apt/apt.conf.d/50unattended-upgrades. Debianis on ploki nimi Unattended-Upgrade::Origins-Pattern, Ubuntus Unattended-Upgrade::Allowed-Origins. Vaikimisi on seal sees turvaallikas ja sinu väljalaske stabiilne allikas ning allikas -updates on väljas. Ubuntus näeb see välja nii:
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";
};Read, mille ees on //, on välja lülitatud. Esimese serveri puhul jäta see nii. Ära muuda seda faili otse, sest paketi järgmine versioon võib tahta seda asendada. Debian soovitab panna oma muudatused eraldi faili, näiteks /etc/apt/apt.conf.d/52unattended-upgrades-local; hilisemad failid on eelmiste ees ülimuslikud.
Lisaallikatest pärit pakette (Docker, Caddy, tootja PostgreSQL) vaikimisi automaatselt ei uuendata. See on teadlik valik: neid jälgid ise (õppetund 9.4) või lisad allika käsitsi nimekirja, kui usaldad tootjat ja tead tagajärgi.
Mõned seaded, mida tavaliselt siiski soovid:
// /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 töötab ainult siis, kui server saab e-kirju saata (väike relee, õppetund 8.3). Kui see pole võimalik, jäta see vahele ja kasuta õppetunni 8.3 jälgimist.
Kontrolli, kas see töötab
Automaatika, mis vaikselt seiskub, on ohtlikum kui automaatika puudumine, sest arvad, et oled kaitstud. Seepärast kontrolli kolme asja.
1. Proovikäivitus. See näitab, mis juhtuks, ilma midagi muutmata:
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. Logi. Iga käivitus kirjutab faili /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. Mis on veel ootel. apt list --upgradable (õppetund 4.1) ei tohiks pärast ööd enam näidata pakette allikast -security. Kui need on seal mitu päeva järjest, on midagi viltu: täis ketas, kinni jäänud käsitsi käivitatud apt'i lukk või pakett, mis esitab küsimuse.
Taaskäivitamine: teenused ja kernel
Kettal uuendatud programm pole veel sama mis mälus uuendatud programm. Kui OpenSSH on töötanud juba kolm nädalat, töötab vana kood seni, kuni teenus uuesti käivitub.
- Teenused: programm needrestart kontrollib pärast uuendust, millised teenused kasutavad veel vanu teeke. Ubuntu 24.04 ja uuemates taaskäivitab unattended-upgrades needrestarti kaudu need teenused vaikimisi ise. Debianis on needrestart eraldi pakett (
apt install needrestart), mis küsib sinult interaktiivselt, milliseid teenuseid uuesti käivitada. - Kernel: uus kernel hakkab tööle alles pärast kogu serveri taaskäivitust. Debian ja Ubuntu loovad siis faili
/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-amd64Sul on kaks valikut. Kas taaskäivitad ise, näiteks kord nädalas kindlal ajal pärast seda, kui oled vaadanud, kas fail on olemas. Või lased seda teha unattended-upgrades'il:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:30";Vaikimisi on false. Lülita see sisse ainult siis, kui oled kindel, et pärast taaskäivitust tuleb kõik ise tagasi üles: teenused seadega enable (õppetund 6.1), konteinerid restart: poliitikaga (õppetund 9.3) ning jälgimine, mis hoiatab sind, kui see nii ei ole (õppetund 8.3). Testi seda esmalt üks kord käsitsi: sudo reboot, ja vaata, kas kõik tuleb tagasi.
Ubuntu pakub Ubuntu Pro kaudu ka Livepatchi, mis rakendab mõned kerneli parandused ilma taaskäivituseta. See on täiendus, mitte asendus: ka Livepatchiga taaskäivitad aeg-ajalt.
Mida sa automaatselt ei tee
- Väljalaske uuendused (Debian 12 pealt 13 peale, Ubuntu 24.04 pealt 26.04 peale): alati käsitsi ja plaaniga (õppetund 4.3).
- Sinu enda rakenduste suured versioonid (andmebaasi või CMS-i uus põhiversioon): alati käsitsi, pärast varukoopiat ja väljalaskemärkmete lugemist.
- Konteinerid: neid unattended-upgrades ei uuenda. 2024. aasta tõmmis jääb 2024. aasta tõmmiseks seni, kuni teed
docker compose pull(õppetund 9.4).
AlmaLinuxis ja Rocky Linuxis
Seal on tööriista nimi dnf-automatic. Paigalda see käsuga dnf install dnf-automatic. Failis /etc/dnf/automatic.conf määra upgrade_type = security ja apply_updates = yes ning lülita taimer sisse käsuga systemctl enable --now dnf-automatic.timer. RHEL-laadsetes süsteemides on kerneli taaskäivitus sama vajalik kui Debianis; dnf needs-restarting -r ütleb, kas see on nii.
Praktikas
WebOkés töötab VPS samamoodi nagu mujal: seda, mida serveris uuendatakse, haldad ise. Teenusepakkuja uuendab riistvara ja virtualiseerimisplatvormi, mitte sinu operatsioonisüsteemi. Enne suurt käsitsi uuendust tee oma teenusepakkuja paneelis hetktõmmis; igapäevaste automaatsete turvauuenduste jaoks pole see vajalik.
Kokkuvõte
- Lülita automaatsed turvauuendused sisse unattended-upgrades'iga (Ubuntu: vaikimisi sees; Debian: kontrolli käsuga
dpkg-reconfigure -plow unattended-upgrades). - Vaikimisi uuendatakse automaatselt ainult turvaallikat ja väljalaske stabiilset allikat, lisaallikaid mitte.
- Kontrolli proovikäivitusega, logiga failis
/var/log/unattended-upgrades/ja käsugaapt list --upgradable. - Teenused tuleb pärast uuendust uuesti käivitada (needrestart), kernel nõuab taaskäivitust (
/var/run/reboot-required). - Väljalaske uuendused, rakenduste suured versioonid ja konteinerid uuenda käsitsi.
Test (quiz)
Ülesanne
Ülesanne O4.2: Automaatsete uuenduste sisselülitamine ja kontrollimine. Lülita oma serveris unattended-upgrades sisse (või kontrolli, et see on sees), tee proovikäivitus ning vaata logi ja taimereid. Täida kontrollnimekiri ja vasta: milliseid allikaid sinu serveris automaatselt uuendatakse, millal oli viimane käivitus, kas praegu on taaskäivitus ootel ja kuidas sa taaskäivitad (ise kindlal ajal või automaatselt, ja miks)?
Ülesanne O4.2: Automaatsete uuenduste sisselülitamine ja kontrollimine
Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.
Automaatselt: väljalaske allikas ja turvaallikas. Kui reboot-required on olemas, ootab ees kerneli või teegi uuendus. Automaatne taaskäivitus sobib, kui kõik tuleb pärast seda ise tagasi ja su seire annab teada, kui nii ei juhtu. Lisaallikaid (Docker, Caddy), konteinereid ja rakendusi nagu WordPress uuendad ise.
Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.
Loe edasi
- Oma VPS-i turvamine: esimesed viis minutit
- Debian Wiki, automaatsed uuendused (UnattendedUpgrades): https://wiki.debian.org/PeriodicUpdates
- Hollandi NCSC (hollandikeelne allikas), põhiprintsiip 3: kaitse süsteeme, rakendusi ja seadmeid: https://www.ncsc.nl/basisprincipes/basisprincipe-3-bescherm-systemen-applicaties-en-apparaten
- Ubuntu Serveri dokumentatsioon, Automatic updates: https://ubuntu.com/server/docs/how-to/software/automatic-updates/
