Velik del vdrtih strežnikov je ogrožen prek varnostne napake, za katero je popravek na voljo že tedne ali mesece. Pri lastnem VPS je posodabljanje sistema naloga upravljavca, torej tvoja. Ta članek prikazuje postopek posodabljanja, preverjanje, ali je potreben ponovni zagon, in nastavitev samodejnih posodobitev.
Strežnike našega deljenega gostovanja posodabljamo mi, tam nimaš nič dela.
Pred posodobitvijo
- Pred večjo posodobitvijo (veliko paketov, novo jedro, strežnik podatkovnih baz) naredi posnetek.
- Produkcijski strežnik po možnosti posodabljaj v obdobju z malo prometa, ker se nekatere storitve med posodobitvijo znova zaženejo.
AlmaLinux, Rocky Linux (dnf)
# Seznam razpoložljivih posodobitev
sudo dnf check-update
# Namestitev vseh posodobitev
sudo dnf upgrade
# Namestitev le varnostnih posodobitev
sudo dnf upgrade --security
Več o varnostnih posodobitvah: yum: namestitev samo varnostnih posodobitev.
Vrnitev
dnf beleži vsako operacijo, posodobitev pa je mogoče razveljaviti:
sudo dnf history
sudo dnf history info 42
sudo dnf history undo 42
Razveljavitev deluje le, če je stara različica paketa še na voljo v repozitoriju, zato ne nadomesti posnetka. V preizkusu (AlmaLinux 10.2) je dnf history undo varnostno posodobitev, ki je zajela 19 paketov, brezhibno razveljavil.
Je po posodobitvi z dnf potreben ponovni zagon?
sudo dnf needs-restarting -r
V preizkusu je bil po posodobitvi glibc in jedra izpis: „Core libraries or services have been updated since boot-up: glibc, kernel, kernel-core … Reboot is required to fully utilize these updates.”, izhodna koda je bila 1 (brez potrebe po ponovnem zagonu 0), zato je to mogoče preveriti tudi iz skripta. Če izpis pravi, da je ponovni zagon potreben, strežnik znova zaženi. Storitve, ki še uporabljajo stare programske knjižnice, izpiše stikalo -s; te lahko namesto ponovnega zagona osvežiš tudi z ukazom systemctl restart.
sudo dnf needs-restarting -s
Ubuntu, Debian (apt)
# Osvežitev seznamov paketov
sudo apt update
# Seznam paketov za nadgradnjo
apt list --upgradable
# Posodobitev
sudo apt upgrade
# Nadgradnja tudi, če je treba za to namestiti ali odstraniti pakete
sudo apt full-upgrade
# Odstranitev paketov, ki niso več potrebni (npr. stara jedra)
sudo apt autoremove
O namestitvi določene različice paketa beri v članku Namestitev določene različice z apt-get.
Je po posodobitvi z apt potreben ponovni zagon?
V Ubuntuju po posodobitvi nastane datoteka /var/run/reboot-required, če je ponovni zagon potreben:
cat /var/run/reboot-required
cat /var/run/reboot-required.pkgs
V Debianu paket needrestart ob koncu posodobitve sporoči, katere storitve je treba znova zagnati in ali je potreben ponovni zagon sistema. V Ubuntu 24.04 je privzeto nameščen, na cloud image Debian 12 pa ne:
sudo apt install needrestart
Samodejne posodobitve
Samodejna posodobitev zagotovi, da se varnostni popravki namestijo tudi, če nanje pozabiš. Priporočamo, da samodejno nameščaš le varnostne posodobitve, druge pa redno, ročno.
AlmaLinux, Rocky Linux: dnf-automatic
sudo dnf install dnf-automatic
sudo nano /etc/dnf/automatic.conf
V razdelku [commands] nastavi:
[commands]
upgrade_type = security
apply_updates = yes
Nato vklopi časovnik:
sudo systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer
Tovarniška nastavitev je upgrade_type = default in apply_updates = no, kar pomeni, da bi dnf-automatic brez spremembe le prenašal, ne pa nameščal. Časovnikov je več vrst (dnf-automatic-install.timer, -download, -notifyonly); ti ne glede na konfiguracijsko datoteko nameščajo, prenašajo ali le obveščajo. Z zgornjo nastavitvijo je primeren navadni dnf-automatic.timer. V preizkusu je bil po vklopu naslednji zagon načrtovan za jutranje ure naslednjega dne.
V razdelku [emitters] lahko nastaviš tudi e-poštno obvestilo o nameščenih posodobitvah.
Ubuntu, Debian: unattended-upgrades
Na cloud image Ubuntu 24.04 in Debian 12 je bil v preizkusu unattended-upgrades že nameščen in vklopljen; to pokaže datoteka /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Če ta datoteka manjka ali so vrednosti "0", ga namesti in vklopi:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Na vprašanje odgovori pritrdilno. Privzeto se namestijo le varnostne posodobitve. Nastavitve so v datoteki /etc/apt/apt.conf.d/50unattended-upgrades; tu lahko na primer vklopiš tudi samodejni ponovni zagon ob določeni uri:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Preizkus delovanja (brez sprememb):
sudo unattended-upgrade --dry-run --debug
Dnevnik zagonov je v imeniku /var/log/unattended-upgrades/.
Prehod na novo glavno različico
Zgornji ukazi posodabljajo znotraj trenutne glavne različice distribucije (na primer z AlmaLinux 9.5 na 9.6). O prehodu na novo glavno različico govorita ta članka: