Module 4 · 4.2
Automatische updates
Module 4: Software en updates · Leestijd: 10 minuten
Leerdoel: Na deze les kun je automatische beveiligingsupdates aanzetten en controleren, weet je wat er wel en niet automatisch gebeurt, en weet je wanneer een herstart nodig is.
Kernbegrippen: unattended-upgrades, 20auto-upgrades, 50unattended-upgrades, Origins-Pattern en Allowed-Origins, apt-daily-timers, needrestart, /var/run/reboot-required, Automatic-Reboot, kernelupdate, dnf-automatic
Waarom automatisch?
Beveiligingslekken worden gevonden, gerepareerd en daarna actief misbruikt, vaak binnen dagen. Een server die je één keer per maand bijwerkt, ligt dus gemiddeld weken open voor bekende lekken. Het NCSC rekent het tijdig installeren van updates tot de basisprincipes van digitale weerbaarheid: "Het tijdig updaten en patchen van software helpt om kwetsbaarheden snel te verhelpen."
Toch is "alles automatisch" ook niet goed. Een nieuwe versie van een programma kan zich anders gedragen dan de oude, en een server die midden op de dag zelf herstart, kan je bezoekers raken. De gangbare middenweg op Debian en Ubuntu is:
- beveiligingsupdates automatisch, elke dag;
- andere updates en release-upgrades met de hand, op een moment dat jij kiest, met een snapshot vooraf;
- herstarten gepland, op een rustig moment, en gecontroleerd.
Het programma dat dit regelt, heet unattended-upgrades.
unattended-upgrades aanzetten
Op Ubuntu Server is unattended-upgrades standaard geïnstalleerd en staan automatische beveiligingsupdates meteen na de installatie aan. Op Debian staat het op veel installaties en images ook al, maar niet altijd. Controleer en zet aan:
anna@web1:~$ sudo apt install unattended-upgrades
anna@web1:~$ sudo dpkg-reconfigure -plow unattended-upgradesHet tweede commando vraagt "Automatically download and install stable updates?". Kies Yes. Dat schrijft het bestand /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";De 1 betekent: elke dag. Met 0 zet je het uit. Het werk zelf wordt gestart door twee systemd-timers (les 6.3), die je zo bekijkt:
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 haalt de lijsten op (zoals apt update), apt-daily-upgrade installeert de updates. De tijden hebben een willekeurige spreiding, zodat niet alle servers ter wereld tegelijk de pakketbronnen belasten.
Wat wordt er automatisch geïnstalleerd?
Dat staat in /etc/apt/apt.conf.d/50unattended-upgrades. Op Debian heet het blok Unattended-Upgrade::Origins-Pattern, op Ubuntu Unattended-Upgrade::Allowed-Origins. Standaard staan daar de beveiligingsbron en de vaste bron van je release aan, en de bron -updates uit. Op Ubuntu ziet het er zo uit:
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";
};Regels met // ervoor staan uit. Laat dit voor een eerste server zo staan. Pas het bestand niet direct aan, want een volgende versie van het pakket kan het willen vervangen. Debian raadt aan je eigen wijzigingen in een eigen bestand te zetten, bijvoorbeeld /etc/apt/apt.conf.d/52unattended-upgrades-local; latere bestanden gaan voor eerdere.
Pakketten uit extra bronnen (Docker, Caddy, PostgreSQL van de maker) worden standaard niet automatisch bijgewerkt. Dat is een bewuste keuze: die volg je zelf (les 9.4), of je voegt de bron met de hand toe aan de lijst als je de maker vertrouwt en de gevolgen kent.
Een paar instellingen die je wel vaak wilt:
// /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 werkt alleen als de server mail kan versturen (een kleine relay, les 8.3). Kan dat niet, sla het dan over en gebruik de bewaking uit les 8.3.
Controleren of het werkt
Een automatisme dat stil stopt, is gevaarlijker dan geen automatisme, want je denkt dat je veilig bent. Controleer daarom drie dingen.
1. Een proefdraai. Dit laat zien wat er zou gebeuren, zonder iets te veranderen:
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. Het logboek. Elke run schrijft naar /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. Wat er nog openstaat. apt list --upgradable (les 4.1) hoort na een nacht geen pakketten uit -security meer te tonen. Staan ze er dagen achter elkaar, dan hapert er iets: een volle schijf, een vergrendeling door een handmatige apt die vastzit, of een pakket dat een vraag stelt.
Herstarten: diensten en de kernel
Een bijgewerkt programma op schijf is nog niet hetzelfde als een bijgewerkt programma in het geheugen. Draait OpenSSH al drie weken, dan draait de oude code tot de dienst opnieuw start.
- Diensten: het programma needrestart kijkt na een update welke diensten nog oude bibliotheken gebruiken. Op Ubuntu 24.04 en later herstart unattended-upgrades die diensten via needrestart standaard vanzelf. Op Debian is needrestart een los pakket (
apt install needrestart) dat je interactief vraagt welke diensten opnieuw moeten starten. - De kernel: een nieuwe kernel werkt pas na een herstart van de hele server. Debian en Ubuntu zetten dan het bestand
/var/run/reboot-requiredneer:
anna@web1:~$ cat /var/run/reboot-required
*** System restart required ***
anna@web1:~$ cat /var/run/reboot-required.pkgs
linux-image-6.12.57+deb13-amd64Je hebt twee keuzes. Of je herstart zelf, bijvoorbeeld elke week op een vast moment nadat je hebt gekeken of het bestand er staat. Of je laat unattended-upgrades het doen:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:30";De standaard is false. Zet hem alleen aan als je zeker weet dat alles na een herstart vanzelf weer opkomt: diensten met enable (les 6.1), containers met een restart:-beleid (les 9.3), en een bewaking die je waarschuwt als dat niet zo is (les 8.3). Test het eerst één keer met de hand: sudo reboot, en kijk of alles terugkomt.
Ubuntu biedt via Ubuntu Pro ook Livepatch, dat sommige kernelfixes zonder herstart toepast. Dat is een aanvulling, geen vervanging: ook met Livepatch herstart je af en toe.
Wat je niet automatisch doet
- Release-upgrades (van Debian 12 naar 13, van Ubuntu 24.04 naar 26.04): altijd met de hand, met een plan (les 4.3).
- Grote versies van je eigen applicaties (een nieuwe hoofdversie van een database, een CMS): altijd met de hand, na een back-up en het lezen van de release notes.
- Containers: die werkt unattended-upgrades niet bij. Een image uit 2024 blijft het image uit 2024 tot jij
docker compose pulldoet (les 9.4).
Op AlmaLinux en Rocky Linux
Daar heet het gereedschap dnf-automatic. Installeren met dnf install dnf-automatic. In /etc/dnf/automatic.conf zet je upgrade_type = security en apply_updates = yes, en je zet de timer aan met systemctl enable --now dnf-automatic.timer. Op RHEL-achtigen is een kernelherstart even nodig als op Debian; dnf needs-restarting -r zegt of dat zo is.
In de praktijk
Bij WebOké werkt een VPS op dezelfde manier als elders: wat er binnen de server bijgewerkt wordt, beheer je zelf. De aanbieder werkt de hardware en het virtualisatieplatform bij, niet je besturingssysteem. Maak vóór een handmatige grote update een snapshot in het paneel van je aanbieder; voor de dagelijkse automatische beveiligingsupdates is dat niet nodig.
Samenvatting
- Zet automatische beveiligingsupdates aan met unattended-upgrades (Ubuntu: standaard aan; Debian: controleren met
dpkg-reconfigure -plow unattended-upgrades). - Standaard worden alleen de beveiligingsbron en de vaste releasebron automatisch bijgewerkt; extra bronnen niet.
- Controleer met een proefdraai, het logboek in
/var/log/unattended-upgrades/enapt list --upgradable. - Diensten moeten na een update opnieuw starten (needrestart), de kernel vraagt een herstart (
/var/run/reboot-required). - Release-upgrades, grote applicatieversies en containers werk je met de hand bij.
Quiz
Opdracht
Opdracht O4.2: Automatische updates aanzetten en controleren. Zet op je eigen server unattended-upgrades aan (of controleer dat het aanstaat), draai een proefdraai en bekijk het logboek en de timers. Vul de checklist in en beantwoord: welke bronnen worden bij jou automatisch bijgewerkt, wanneer liep de laatste run, staat er nu een herstart open, en hoe ga jij herstarten (zelf op een vast moment of automatisch, en waarom)?
Opdracht O4.2: Automatische updates aanzetten en controleren
Deze opdracht doe je zelf; niemand kijkt hem na. Vink af wat je gedaan hebt en markeer de opdracht als gedaan.
Automatisch: de releasebron en de beveiligingsbron. Bestaat reboot-required, dan wacht er een kernel- of bibliotheekupdate. Automatisch herstarten kan als alles daarna vanzelf terugkomt en je bewaking meldt als dat niet zo is. Extra bronnen (Docker, Caddy), containers en applicaties als WordPress werk je zelf bij.
Je vinkjes en aantekeningen blijven alleen in deze browser; we sturen ze nergens heen. Ben je aangemeld, dan bewaren we in Mijn cursussen alleen dat je de opdracht gedaan hebt.
Verder lezen
- Je VPS beveiligen: de eerste vijf minuten
- Debian Wiki, automatische updates (UnattendedUpgrades): https://wiki.debian.org/PeriodicUpdates
- NCSC, Basisprincipe 3: Bescherm systemen, applicaties en apparaten: https://www.ncsc.nl/basisprincipes/basisprincipe-3-bescherm-systemen-applicaties-en-apparaten
- Ubuntu Server-documentatie, Automatic updates: https://ubuntu.com/server/docs/how-to/software/automatic-updates/
