# Automatiske sikkerhedsopdateringer på Linux-servere

> Opsæt unattended-upgrades og dnf-automatic: indspil sikkerhedsopdateringer automatisk, genstart tjenester, og frigiv tredjepartskilder målrettet.

Kilde: https://phpsos.de/da/blog/automatische-sicherheitsupdates/  
Status: 25.10.2026  
Udbyder: PHP SOS, PHP-nødhjælp og serversikkerhed. Akut hjælp på WhatsApp: https://wa.me/491736494914?text=Hej%20PHP%20SOS%2C%20vi%20har%20brug%20for%20hj%C3%A6lp%20med%20vores%20PHP-server.%20Firma%3A%20%E2%80%A6%20Website%3A%20%E2%80%A6

**Kort sagt:** Med `unattended-upgrades` under Debian og Ubuntu samt `dnf-automatic` i RHEL-familien indspiller Linux-servere sikkerhedsopdateringer selvstændigt. For at en opdatering også virker, skal berørte tjenester som PHP-FPM genstartes bagefter; kontrollér det med needrestart eller processernes starttidspunkter. Tredjepartskilder som sury.org skal udtrykkeligt frigives, containere og hovedversionsskift dækker automatikken ikke.

## Fra patch til server: Automatik sparer tid

Da php.net den 21. oktober 2026 kl. 16 tysk tid offentliggjorde patcherne mod PHP2Shell, begyndte et kapløb for administratorer. Ifølge rapporter leverede distributioner til dels deres backports allerede samme dag. Servere med automatiske sikkerhedsopdateringer kunne installere de nye pakker ved næste planmæssige kørsel, uden at nogen behøvede at gribe ind.

Det er den gode nyhed. Den mindre gode: Installeret betyder ikke virksomt. En PHP-FPM-tjeneste, der har kørt i uger, arbejder videre med den gamle kode i hukommelsen, indtil den genstartes. Og pakker fra tredjepartskilder, containere eller hostingpaneler med egen PHP-administration forbliver ofte upåvirket af automatikken.

Dette indlæg viser, hvordan I opsætter automatiske sikkerhedsopdateringer og supplerer dem, så de i alvorlige tilfælde virkelig beskytter.

## unattended-upgrades under Debian og Ubuntu

Under Ubuntu er pakken `unattended-upgrades` som standard installeret og indspiller sikkerhedsopdateringer. Under Debian installerer I den efter behov. Den styres via to filer under `/etc/apt/apt.conf.d/`.

```bash
sudo apt install unattended-upgrades apt-listchanges
sudo dpkg-reconfigure -plow unattended-upgrades
```

Filen `20auto-upgrades` fastlægger, om og hvor ofte pakkelister opdateres, og opdateringer indspilles. Værdien er antallet af dage, `"1"` betyder dagligt:

```text
// /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
```

I `50unattended-upgrades` står det, fra hvilke kilder opdateringer må komme, om der genstartes bagefter, og hvem der får en meddelelse. Som standard er kun distributionens officielle sikkerhedskilder frigivet. Ifølge Ubuntu-dokumentationen er det ikke nok at indbinde et yderligere repository: Det skal desuden stå på denne liste, ellers ignoreres det af automatikken. Det berører for eksempel tredjeparts-repositoryet sury.org, som ifølge rapporter har stillet PHP-builds til rådighed for alle grene fra 5.6 til 8.5. Baggrund står i indlægget [sury.org-repositoryet](https://phpsos.de/da/blog/sury-repository-php/).

Om alt stemmer, viser en prøvekørsel, der intet ændrer:

```bash
sudo unattended-upgrade -v --dry-run
# Protokoller fra de rigtige kørsler
ls -l /var/log/unattended-upgrades/
```

## dnf-automatic på RHEL, AlmaLinux og Rocky Linux

I RHEL-familien overtager `dnf-automatic` den samme opgave. Konfigurationen ligger i `/etc/dnf/automatic.conf`. Ifølge dokumentationen kontrollerer `upgrade_type = security` kun opdateringer med sikkerhedsmeddelelse, og `apply_updates` er som standard slået fra.

```ini
# /etc/dnf/automatic.conf (uddrag)
[commands]
upgrade_type = security
download_updates = yes
apply_updates = yes
reboot = never
```

```bash
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic.timer
systemctl list-timers 'dnf-automatic*'
```

Ud over `dnf-automatic.timer`, der følger konfigurationsfilen, findes der timere, der kun melder, kun downloader eller altid installerer. Til at begynde med er timeren med konfigurationsfil den mest forståelige.

## Den undervurderede del: Genstart tjenester

Pakkehåndteringen erstatter filer på disken. Kørende processer beholder den gamle kode i hukommelsen. Ved PHP betyder det: Så længe PHP-FPM eller Apache med mod_php ikke er genstartet, forbliver sårbarheden åben.

| Værktøj | System | Hvad det gør |
|---|---|---|
| needrestart | Debian, Ubuntu | genkender tjenester med forældede filer; genstarter dem under Ubuntu fra 24.04 som standard automatisk |
| `dnf needs-restarting -s` | RHEL-familien | opregner tjenester, der bør genstartes |
| `Automatic-Reboot` | unattended-upgrades | genstarter serveren, hvis en opdatering kræver det; som standard fra |
| `reboot` | dnf-automatic | `never`, `when-changed` eller `when-needed` |

Ifølge Ubuntu-dokumentationen kører tjenester, der er undtaget fra needrestart, med gamle filer indtil den manuelle genstart. Kontrollér derfor efter hver PHP-opdatering processernes starttidspunkt, som beskrevet under [Genstart PHP-FPM og alle workers](https://phpsos.de/da/php2shell/php-fpm-neustart/).

> **Vigtigt:**
> Ved backports forbliver det viste PHP-versionsnummer ofte det samme. Patchen dokumenterer I via pakkens changelog med CVE-numrene, f.eks. med `apt-get changelog` eller `rpm -q --changelog`. Hvordan det foregår i detaljer, viser [Debian og Ubuntu: Er min PHP-pakke patchet?](https://phpsos.de/da/blog/debian-ubuntu-paket-gepatcht/).

## Hvad automatikken ikke dækker

Automatiske opdateringer er en byggesten, ikke et fuldstændigt patch-management. Nogle områder kræver egne forløb:

1. **Containere:** PHP i Docker-images opdateres ikke af værtsopdateringer. Byg images påny, opret containere påny.
2. **Hostingpaneler:** Plesk, cPanel og lignende paneler administrerer til dels PHP via egne pakker og mekanismer.
3. **Hovedversioner:** Skiftet f.eks. fra PHP 8.2, der den 31.12.2026 når udløbet af understøttelsen, til en nyere version sker ikke automatisk.
4. **Applikationer:** CMS, plugins og Composer-afhængigheder har egne opdateringsveje.
5. **Kontrol:** Nogen skal læse automatikkens protokoller og fejlmeddelelser. En kørsel, der stille mislykkes, er værre end ingen, fordi den foregiver sikkerhed.

Hvordan disse dele vokser sammen til en proces, beskriver [Patch-management som proces i stedet for brandslukning](https://phpsos.de/da/blog/patch-management-prozess/).

## Konklusion: Automatik ja, blind tillid nej

Automatiske sikkerhedsopdateringer hører hjemme på hver Linux-server, der kan nås fra internettet. PHP2Shell har vist, hvor knap tiden kan blive: Ifølge mediernes rapporter blev et første angrebsforsøg allerede observeret den 17. oktober, fire dage før patcherne. Den, der derefter stadig venter på et manuelt vedligeholdelsesvindue, mister værdifuld tid.

Automatikken tager dog kun indspilningen fra jer. Genstart af tjenester, dokumentation af patch-status, containere, paneler og det rettidige skifte til understøttede versioner forbliver opgaver, som nogen skal være ansvarlig for. Fastlæg dette ansvar skriftligt, og kontrollér stikprøvevis, om automatikkens protokoller faktisk bliver læst. Først kombinationen af automatik og kontrol gør opdateringer pålidelige.

## Hvordan hjælper PHP SOS konkret?

- **Opsætning:** Vi konfigurerer unattended-upgrades eller dnf-automatic passende til jeres servere, inklusive frigivne tredjepartskilder.
- **Sikr genstarter:** Vi opsætter needrestart eller tilsvarende kontroller og kontrollerer procesernes starttidspunkter efter PHP-opdateringer.
- **Luk huller:** Containere, paneler og hovedversionsskift optager vi i et fast vedligeholdelsesforløb.
- **Kontroller:** I [sikkerhedsvedligeholdelsesaftalen](https://phpsos.de/da/leistungen/security-wartungsvertrag/) kontrollerer vi automatikkens protokoller og melder påfaldende forhold.


## Ofte stillede spørgsmål

**Er automatiske opdateringer ikke for risikable på produktionsservere?**  
Begrænset til distributionens sikkerhedsopdateringer er risikoen som regel mindre end ved en åben sårbarhed. Disse opdateringer skal ikke bringe nye funktioner, men rette fejl. Til kritiske systemer hører sikkerhedskopier, overvågning og et testsystem med.

**Genstarter unattended-upgrades PHP-FPM efter en opdatering?**  
Ikke nødvendigvis selv. Under Ubuntu genstarter værktøjet needrestart fra version 24.04 som standard berørte tjenester automatisk, men undtagne tjenester kører videre med gamle filer. Kontrollér efter hver PHP-opdatering starttidspunktet for alle PHP-processer.

**Opdateres pakker fra sury.org eller andre tredjepartskilder automatisk?**  
Kun hvis I udtrykkeligt frigiver kilden. Ifølge Ubuntu-dokumentationen er det ikke nok at tilføje et repository; det skal desuden stå på listen over tilladte oprindelser i unattended-upgrades.

**Løfter automatikken også PHP 8.2 til 8.3?**  
Nej. Automatiske sikkerhedsopdateringer forbliver inden for de installerede pakkeversioner. Et skifte af PHP-hovedversion, f.eks. før udløbet af understøttelsen af PHP 8.2 den 31.12.2026, forbliver et planlagt projekt med tests.

**Hvad med Docker-containere?**  
Opdateringer på værten opdaterer ikke PHP-versionen i containere. Container-images skal bygges påny eller hentes påny, og containerne oprettes påny.

## Kilder

- [Ubuntu Server: Automatiske opdateringer](https://ubuntu.com/server/docs/how-to/software/automatic-updates/)
- [DNF Automatic](https://dnf.readthedocs.io/en/latest/automatic.html)
- [Debian Security Tracker](https://security-tracker.debian.org/)
- [Ubuntu Security Notices](https://ubuntu.com/security/notices)
