# Samodejne varnostne posodobitve na strežnikih Linux

> Postavitev unattended-upgrades in dnf-automatic: samodejno nameščanje varnostnih posodobitev, ponovni zagon storitev in ciljna sprostitev tretjih virov.

Vir: https://phpsos.de/sl/blog/automatische-sicherheitsupdates/  
Stanje: 25.10.2026  
Ponudnik: PHP SOS, Nujna pomoč za PHP in varnost strežnikov. Takojšnja pomoč po WhatsAppu: https://wa.me/491736494914?text=Pozdravljeni%2C%20PHP%20SOS%2C%20potrebujemo%20pomo%C4%8D%20z%20na%C5%A1im%20stre%C5%BEnikom%20PHP.%20Podjetje%3A%20%E2%80%A6%20Spletna%20stran%3A%20%E2%80%A6

**Na kratko:** Z `unattended-upgrades` pod Debianom in Ubuntujem ter `dnf-automatic` v družini RHEL strežniki Linux samostojno nameščajo varnostne posodobitve. Da posodobitev tudi deluje, je treba prizadete storitve, kot je PHP-FPM, nato znova zagnati; preverite to z needrestart ali časi zagona procesov. Tretje vire, kot je sury.org, je treba izrecno sprostiti, vsebnikov in menjav glavnih različic samodejnost ne pokriva.

## Od popravka do strežnika: samodejnost prihrani čas

Ko je php.net 21. oktobra 2026 ob 16. uri po nemškem času objavil popravke proti PHP2Shell, se je za skrbnike začela tekma. Po poročilih so distribucije svoje backporte deloma dostavile že isti dan. Strežniki s samodejnimi varnostnimi posodobitvami so lahko nove pakete namestili ob naslednjem načrtovanem teku, ne da bi moral kdo poseči.

To je dobra novica. Manj dobra: nameščeno ne pomeni delujoče. Storitev PHP-FPM, ki teče že tedne, z staro kodo v pomnilniku dela naprej, dokler ni znova zagnana. In paketi iz tretjih virov, vsebniki ali nadzorne plošče gostovanja z lastnim upravljanjem PHP samodejnost pogosto ne zadene.

Ta prispevek pokaže, kako vzpostavite samodejne varnostne posodobitve in jih dopolnite tako, da v resnem primeru res ščitijo.

## unattended-upgrades pod Debianom in Ubuntujem

Pod Ubuntujem je paket `unattended-upgrades` privzeto nameščen in nameščanje varnostnih posodobitev opravlja. Pod Debianom ga po potrebi namestite naknadno. Upravlja se prek dveh datotek pod `/etc/apt/apt.conf.d/`.

```bash
sudo apt install unattended-upgrades apt-listchanges
sudo dpkg-reconfigure -plow unattended-upgrades
```

Datoteka `20auto-upgrades` določa, ali in kako pogosto se posodabljajo sezname paketov in nameščajo posodobitve. Vrednost je število dni, `"1"` pomeni dnevno:

```text
// /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
```

V `50unattended-upgrades` je določeno, iz katerih virov smejo prihajati posodobitve, ali se potem izvede ponovni zagon in kdo prejme sporočilo. Privzeto so sproščeni samo uradni varnostni viri distribucije. Po dokumentaciji Ubuntu ne zadošča vključiti nadaljnjega repozitorija: dodatno mora biti na tem seznamu, sicer ga samodejnost prezre. To zadeva na primer repozitorij tretjega ponudnika sury.org, ki je po poročilih dostavljal gradnje PHP za vse veje od 5.6 do 8.5. Ozadje je v prispevku [Repozitorij sury.org](https://phpsos.de/sl/blog/sury-repository-php/).

Ali vse drži, pokaže poskusni tek, ki ničesar ne spremeni:

```bash
sudo unattended-upgrade -v --dry-run
# Dnevniki pravih tekov
ls -l /var/log/unattended-upgrades/
```

## dnf-automatic na RHEL, AlmaLinux in Rocky Linux

V družini RHEL isto nalogo prevzame `dnf-automatic`. Konfiguracija je v `/etc/dnf/automatic.conf`. Po dokumentaciji `upgrade_type = security` preverja samo posodobitve z varnostnim obvestilom, `apply_updates` pa je privzeto izklopljen.

```ini
# /etc/dnf/automatic.conf (izsek)
[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*'
```

Poleg `dnf-automatic.timer`, ki sledi konfiguracijski datoteki, obstajajo časovniki, ki samo javijo, samo prenesejo ali vedno namestijo. Za začetek je časovnik s konfiguracijsko datoteko najbolj razumljiv.

## Podcenjeni del: ponovni zagon storitev

Upravljalnik paketov zamenja datoteke na disku. Tekoči procesi obdržijo staro kodo v pomnilniku. Pri PHP to pomeni: dokler PHP-FPM ali Apache z mod_php nista znova zagnana, ranljivost ostaja odprta.

| Orodje | Sistem | Kaj počne |
|---|---|---|
| needrestart | Debian, Ubuntu | prepozna storitve z zastarelimi datotekami; pod Ubuntujem od 24.04 jih privzeto samodejno znova zažene |
| `dnf needs-restarting -s` | družina RHEL | našteje storitve, ki bi jih bilo treba znova zagnati |
| `Automatic-Reboot` | unattended-upgrades | strežnik znova zažene, če posodobitev to zahteva; privzeto izklopljeno |
| `reboot` | dnf-automatic | `never`, `when-changed` ali `when-needed` |

Po dokumentaciji Ubuntu storitve, ki jih needrestart izvzame, tečejo s starimi datotekami do ročnega ponovnega zagona. Po vsaki posodobitvi PHP zato preverite čas zagona procesov, kot je opisano v [Ponovni zagon PHP-FPM in vseh delavcev](https://phpsos.de/sl/php2shell/php-fpm-neustart/).

> **Pomembno:**
> Pri backportih prikazana številka različice PHP pogosto ostane ista. Popravek dokazujete prek dnevnika sprememb paketa s številkami CVE, na primer z `apt-get changelog` ali `rpm -q --changelog`. Kako to poteka v podrobnostih, kaže [Debian in Ubuntu: je moj paket PHP popravljen?](https://phpsos.de/sl/blog/debian-ubuntu-paket-gepatcht/).

## Česa samodejnost ne pokriva

Samodejne posodobitve so gradnik, ne popolno upravljanje popravkov. Nekatera področja potrebujejo lastne postopke:

1. **Vsebniki:** PHP v slikah Docker se s posodobitvami gostitelja ne posodobi. Slike zgradite znova, vsebnike ustvarite znova.
2. **Nadzorne plošče gostovanja:** Plesk, cPanel in podobne nadzorne plošče PHP deloma upravljajo prek lastnih paketov in mehanizmov.
3. **Glavne različice:** menjava na primer s PHP 8.2, ki konec podpore doseže 31. 12. 2026, na novejšo različico se ne zgodi samodejno.
4. **Aplikacije:** CMS, vtičniki in odvisnosti Composer imajo lastne poti posodobitev.
5. **Nadzor:** nekdo mora brati dnevnike in sporočila o napakah samodejnosti. Tiho spodletel tek je slabši kot nobeden, ker simulira varnost.

Kako ti deli zrastejo v proces, opisuje [Upravljanje popravkov kot proces namesto gašenja požarov](https://phpsos.de/sl/blog/patch-management-prozess/).

## Sklep: samodejnost da, slepo zaupanje ne

Samodejne varnostne posodobitve sodijo na vsak strežnik Linux, ki je dosegljiv iz interneta. PHP2Shell je pokazal, kako lahko zmanjka časa: po poročilih medijev je bil prvi poskus napada opažen že 17. oktobra, štiri dni pred popravki. Kdor po tem še čaka na ročno okno vzdrževanja, izgublja dragocen čas.

Samodejnost pa vam odvzame samo nameščanje. Ponovni zagon storitev, dokaz stanja popravkov, vsebniki, nadzorne plošče in pravočasna menjava na podprte različice ostajajo naloge, za katere mora biti nekdo odgovoren. To odgovornost določite pisno in naključno preverite, ali se dnevniki samodejnosti res berejo. Šele kombinacija samodejnosti in nadzora naredi posodobitve zanesljive.

## Kako PHP SOS pomaga konkretno?

- **Postavitev:** unattended-upgrades ali dnf-automatic konfiguriramo glede na vaše strežnike, vključno s sproščenimi tretjimi viri.
- **Zavarovanje ponovnih zagonov:** vzpostavimo needrestart ali ustrezna preverjanja in po posodobitvah PHP nadziramo čase zagona procesov.
- **Zapiranje vrzeli:** vsebnike, nadzorne plošče in menjave glavnih različic vključimo v stalen potek vzdrževanja.
- **Nadzor:** v okviru [varnostne vzdrževalne pogodbe](https://phpsos.de/sl/leistungen/security-wartungsvertrag/) preverjamo dnevnike samodejnosti in javljamo nepravilnosti.


## Pogosta vprašanja

**Ali samodejne posodobitve na produkcijskih strežnikih niso preveč tvegane?**  
Omejeno na varnostne posodobitve distribucije je tveganje običajno manjše od tveganja odprte ranljivosti. Te posodobitve ne bi smele prinašati novih funkcij, ampak odpravljati napake. Za kritične sisteme sodijo zraven varnostne kopije, spremljanje in testni sistem.

**Ali unattended-upgrades po posodobitvi znova zažene PHP-FPM?**  
Ne nujno sam. Pod Ubuntujem od različice 24.04 orodje needrestart prizadete storitve privzeto samodejno znova zažene, izvzete storitve pa tečejo naprej s starimi datotekami. Po vsaki posodobitvi PHP preverite čas zagona vseh procesov PHP.

**Ali se paketi iz sury.org ali drugih tretjih virov posodabljajo samodejno?**  
Samo če vir izrecno sprostite. Po dokumentaciji Ubuntu ne zadošča dodati repozitorija; dodatno mora biti na seznamu dovoljenih izvorov unattended-upgrades.

**Ali samodejnost PHP 8.2 dvigne na 8.3?**  
Ne. Samodejne varnostne posodobitve ostanejo znotraj nameščenih različic paketov. Menjava glavne različice PHP, na primer pred koncem podpore za PHP 8.2 31. 12. 2026, ostaja načrtovan projekt s preizkusi.

**Kaj pa vsebniki Docker?**  
Posodobitve na gostitelju različice PHP v vsebnikih ne posodobijo. Slike vsebnikov je treba znova zgraditi ali znova potegniti, vsebnike pa ustvariti znova.

## Viri

- [Ubuntu Server: samodejne posodobitve](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)
