Moduuli 4 · 4.2
Automaattiset päivitykset
Moduuli 4: Ohjelmistot ja päivitykset · Lukuaika: 10 minuuttia
Tavoite: Tämän oppitunnin jälkeen osaat ottaa automaattiset tietoturvapäivitykset käyttöön ja tarkistaa niiden toiminnan, tiedät mitä tapahtuu automaattisesti ja mitä ei, ja tiedät, milloin uudelleenkäynnistys tarvitaan.
Keskeiset käsitteet: unattended-upgrades, 20auto-upgrades, 50unattended-upgrades, Origins-Pattern ja Allowed-Origins, apt-daily-ajastimet, needrestart, /var/run/reboot-required, Automatic-Reboot, ytimen päivitys, dnf-automatic
Miksi automaattisesti?
Tietoturva-aukkoja löydetään, korjataan ja sen jälkeen hyödynnetään aktiivisesti, usein muutamassa päivässä. Palvelin, jonka päivität kerran kuukaudessa, on siis keskimäärin viikkoja auki tunnetuille aukoille. Alankomaiden NCSC (kyberturvallisuuskeskus) laskee päivitysten ajoissa asentamisen digitaalisen kestävyyden perusperiaatteisiin: "Ohjelmistojen ajoissa tehtävä päivittäminen ja paikkaaminen auttaa korjaamaan haavoittuvuudet nopeasti."
Silti "kaikki automaattisesti" ei ole hyvä ratkaisu. Ohjelman uusi versio voi toimia eri tavalla kuin vanha, ja palvelin, joka käynnistyy itsestään uudelleen keskellä päivää, voi haitata kävijöitäsi. Debianilla ja Ubuntulla tavallinen keskitie on:
- tietoturvapäivitykset automaattisesti, joka päivä;
- muut päivitykset ja julkaisupäivitykset käsin, itse valitsemanasi hetkenä ja tilannevedoksen (snapshot) kanssa;
- uudelleenkäynnistykset suunnitellusti, rauhallisena hetkenä ja valvotusti.
Tätä hoitava ohjelma on nimeltään unattended-upgrades.
unattended-upgradesin käyttöönotto
Ubuntu Serverillä unattended-upgrades on asennettu valmiiksi, ja automaattiset tietoturvapäivitykset ovat päällä heti asennuksen jälkeen. Debianilla se on valmiina monessa asennuksessa ja levykuvassa, mutta ei aina. Tarkista ja ota käyttöön:
anna@web1:~$ sudo apt install unattended-upgrades
anna@web1:~$ sudo dpkg-reconfigure -plow unattended-upgradesToinen komento kysyy "Automatically download and install stable updates?". Valitse Yes. Se kirjoittaa tiedoston /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";1 tarkoittaa: joka päivä. Arvolla 0 poistat sen käytöstä. Itse työn käynnistää kaksi systemd-ajastinta (oppitunti 6.3), jotka näet näin:
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 hakee pakettiluettelot (kuten apt update), apt-daily-upgrade asentaa päivitykset. Ajoissa on satunnaista hajontaa, jotta kaikki maailman palvelimet eivät kuormita pakettilähteitä samaan aikaan.
Mitä asennetaan automaattisesti?
Se määritellään tiedostossa /etc/apt/apt.conf.d/50unattended-upgrades. Debianilla lohkon nimi on Unattended-Upgrade::Origins-Pattern, Ubuntulla Unattended-Upgrade::Allowed-Origins. Oletuksena siinä ovat käytössä tietoturvalähde ja julkaisusi vakaa lähde, ja lähde -updates on pois päältä. Ubuntulla se näyttää tältä:
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";
};Rivit, joiden edessä on //, ovat pois päältä. Jätä tämä ensimmäisellä palvelimella ennalleen. Älä muokkaa tiedostoa suoraan, koska paketin seuraava versio saattaa haluta korvata sen. Debian suosittelee laittamaan omat muutoksesi omaan tiedostoonsa, esimerkiksi /etc/apt/apt.conf.d/52unattended-upgrades-local; myöhemmät tiedostot ohittavat aiemmat.
Lisälähteiden paketteja (Docker, Caddy, PostgreSQL suoraan tekijältä) ei oletuksena päivitetä automaattisesti. Tämä on tietoinen valinta: niitä seuraat itse (oppitunti 9.4), tai lisäät lähteen luetteloon käsin, jos luotat tekijään ja tunnet seuraukset.
Muutama asetus, jonka haluat usein käyttöön:
// /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 toimii vain, jos palvelin pystyy lähettämään sähköpostia (pieni välityspalvelin, oppitunti 8.3). Jos se ei onnistu, ohita tämä ja käytä oppitunnin 8.3 valvontaa.
Toiminnan tarkistaminen
Hiljaa pysähtyvä automaatio on vaarallisempi kuin ei automaatiota lainkaan, koska luulet olevasi turvassa. Tarkista siksi kolme asiaa.
1. Koeajo. Tämä näyttää, mitä tapahtuisi, muuttamatta mitään:
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. Loki. Jokainen ajo kirjoittaa tiedostoon /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. Mitä on vielä asentamatta. apt list --upgradable (oppitunti 4.1) ei yön jälkeen saisi enää näyttää paketteja lähteestä -security. Jos ne näkyvät siellä päivästä toiseen, jokin takkuaa: täysi levy, jumiin jääneen käsin ajetun apt:n lukitus tai paketti, joka esittää kysymyksen.
Uudelleenkäynnistys: palvelut ja ydin
Levyllä päivitetty ohjelma ei ole sama asia kuin muistissa päivitetty ohjelma. Jos OpenSSH on ollut käynnissä jo kolme viikkoa, vanha koodi on käytössä, kunnes palvelu käynnistetään uudelleen.
- Palvelut: ohjelma needrestart tarkistaa päivityksen jälkeen, mitkä palvelut käyttävät vielä vanhoja kirjastoja. Ubuntu 24.04:ssä ja uudemmissa unattended-upgrades käynnistää nämä palvelut oletuksena itse uudelleen needrestartin kautta. Debianilla needrestart on erillinen paketti (
apt install needrestart), joka kysyy vuorovaikutteisesti, mitkä palvelut käynnistetään uudelleen. - Ydin: uusi ydin otetaan käyttöön vasta, kun koko palvelin käynnistetään uudelleen. Debian ja Ubuntu luovat silloin tiedoston
/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-amd64Sinulla on kaksi vaihtoehtoa. Joko käynnistät palvelimen itse uudelleen, esimerkiksi kerran viikossa sovittuna aikana sen jälkeen, kun olet tarkistanut, onko tiedosto olemassa. Tai annat unattended-upgradesin hoitaa sen:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:30";Oletus on false. Ota se käyttöön vain, jos tiedät varmasti, että kaikki käynnistyy itsestään uudelleenkäynnistyksen jälkeen: palvelut, joilla on enable (oppitunti 6.1), kontit, joilla on restart:-käytäntö (oppitunti 9.3), ja valvonta, joka varoittaa, jos näin ei käy (oppitunti 8.3). Testaa ensin kerran käsin: sudo reboot, ja katso, palaako kaikki takaisin.
Ubuntu tarjoaa Ubuntu Pron kautta myös Livepatchin, joka ottaa osan ytimen korjauksista käyttöön ilman uudelleenkäynnistystä. Se on täydennys, ei korvike: Livepatchinkin kanssa käynnistät palvelimen silloin tällöin uudelleen.
Mitä et tee automaattisesti
- Julkaisupäivitykset (Debian 12:sta 13:een, Ubuntu 24.04:stä 26.04:ään): aina käsin ja suunnitelman kanssa (oppitunti 4.3).
- Omien sovellustesi suuret versiot (tietokannan tai julkaisujärjestelmän uusi pääversio): aina käsin, varmuuskopion ja julkaisutiedotteiden lukemisen jälkeen.
- Kontit: niitä unattended-upgrades ei päivitä. Vuoden 2024 levykuva pysyy vuoden 2024 levykuvana, kunnes ajat
docker compose pull(oppitunti 9.4).
AlmaLinuxilla ja Rocky Linuxilla
Niissä työkalun nimi on dnf-automatic. Asenna se komennolla dnf install dnf-automatic. Tiedostoon /etc/dnf/automatic.conf asetat upgrade_type = security ja apply_updates = yes, ja otat ajastimen käyttöön komennolla systemctl enable --now dnf-automatic.timer. RHEL-tyyppisissä järjestelmissä ytimen päivitys vaatii uudelleenkäynnistyksen samoin kuin Debianilla; dnf needs-restarting -r kertoo, tarvitaanko sitä.
Käytännössä
WebOkén VPS toimii samalla tavalla kuin muuallakin: palvelimen sisällä tehtävistä päivityksistä huolehdit itse. Palveluntarjoaja päivittää laitteiston ja virtualisointialustan, ei käyttöjärjestelmääsi. Ota ennen käsin tehtävää suurta päivitystä tilannevedos palveluntarjoajasi hallintapaneelissa; päivittäisiä automaattisia tietoturvapäivityksiä varten sitä ei tarvita.
Yhteenveto
- Ota automaattiset tietoturvapäivitykset käyttöön unattended-upgradesilla (Ubuntu: oletuksena päällä; Debian: tarkista komennolla
dpkg-reconfigure -plow unattended-upgrades). - Oletuksena vain tietoturvalähde ja julkaisun vakaa lähde päivitetään automaattisesti, lisälähteitä ei.
- Tarkista toiminta koeajolla, lokilla tiedostossa
/var/log/unattended-upgrades/ja komennollaapt list --upgradable. - Palvelut on käynnistettävä päivityksen jälkeen uudelleen (needrestart), ydin vaatii uudelleenkäynnistyksen (
/var/run/reboot-required). - Julkaisupäivitykset, sovellusten suuret versiot ja kontit päivität käsin.
Tietovisa (quiz)
Tehtävä
Tehtävä O4.2: Automaattisten päivitysten käyttöönotto ja tarkistus. Ota unattended-upgrades käyttöön omalla palvelimellasi (tai tarkista, että se on päällä), tee koeajo ja tutki loki ja ajastimet. Täytä tarkistuslista ja vastaa: mitkä lähteet päivitetään palvelimellasi automaattisesti, milloin viimeisin ajo tehtiin, odottaako uudelleenkäynnistys nyt, ja miten aiot käynnistää palvelimen uudelleen (itse sovittuna aikana vai automaattisesti, ja miksi)?
Tehtävä O4.2: Automaattisten päivitysten käyttöönotto ja tarkistus
Tämän tehtävän teet itse, kukaan ei tarkista sitä. Merkitse tekemäsi kohdat ja merkitse tehtävä tehdyksi.
Automaattisesti: julkaisulähde ja tietoturvalähde. Jos reboot-required on olemassa, ytimen tai kirjaston päivitys odottaa. Automaattinen uudelleenkäynnistys sopii, jos kaikki palaa sen jälkeen itsestään ja valvontasi ilmoittaa, jos niin ei käy. Lisälähteet (Docker, Caddy), kontit ja sovellukset kuten WordPress päivität itse.
Merkintäsi ja muistiinpanosi pysyvät vain tässä selaimessa, emme lähetä niitä minnekään. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että olet tehnyt tehtävän.
Lue lisää
- VPS:n suojaaminen: ensimmäiset viisi minuuttia
- Debian Wiki, automaattiset päivitykset (UnattendedUpgrades): https://wiki.debian.org/PeriodicUpdates
- Alankomaiden NCSC (kyberturvallisuuskeskus), perusperiaate 3: suojaa järjestelmät, sovellukset ja laitteet (hollanninkielinen lähde): https://www.ncsc.nl/basisprincipes/basisprincipe-3-bescherm-systemen-applicaties-en-apparaten
- Ubuntu Serverin dokumentaatio, Automatic updates: https://ubuntu.com/server/docs/how-to/software/automatic-updates/
