Modulul 4 · 4.2
Actualizări automate
Modulul 4: Software și actualizări · Timp de citire: 10 minute
Obiectivul lecției: După această lecție puteți activa și verifica actualizările automate de securitate, știți ce se întâmplă automat și ce nu și știți când este necesară o repornire.
Noțiuni cheie: unattended-upgrades, 20auto-upgrades, 50unattended-upgrades, Origins-Pattern și Allowed-Origins, timerele apt-daily, needrestart, /var/run/reboot-required, Automatic-Reboot, actualizarea kernelului, dnf-automatic
De ce automat?
Vulnerabilitățile de securitate sunt descoperite, reparate și apoi exploatate activ, adesea în câteva zile. Un server pe care îl actualizați o dată pe lună rămâne deci expus, în medie, săptămâni întregi la vulnerabilități cunoscute. NCSC-ul olandez consideră instalarea la timp a actualizărilor unul dintre principiile de bază ale rezilienței digitale: "Actualizarea și aplicarea la timp a patch-urilor software ajută la remedierea rapidă a vulnerabilităților."
Totuși, nici "totul automat" nu este o idee bună. O versiune nouă a unui program se poate comporta altfel decât cea veche, iar un server care repornește singur în mijlocul zilei vă poate afecta vizitatorii. Calea de mijloc obișnuită pe Debian și Ubuntu este:
- actualizările de securitate automat, în fiecare zi;
- celelalte actualizări și upgrade-urile de versiune manual, într-un moment ales de dumneavoastră, cu un snapshot făcut în prealabil;
- repornirile planificate, într-un moment liniștit, și verificate.
Programul care se ocupă de acest lucru se numește unattended-upgrades.
Activarea unattended-upgrades
Pe Ubuntu Server, unattended-upgrades este instalat implicit, iar actualizările automate de securitate sunt active imediat după instalare. Pe Debian este prezent și el pe multe instalări și imagini, dar nu întotdeauna. Verificați și activați:
anna@web1:~$ sudo apt install unattended-upgrades
anna@web1:~$ sudo dpkg-reconfigure -plow unattended-upgradesA doua comandă vă întreabă "Automatically download and install stable updates?" (descărcați și instalați automat actualizările stabile?). Alegeți Yes. Aceasta scrie fișierul /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";Valoarea 1 înseamnă: în fiecare zi. Cu 0 dezactivați funcția. Lucrul propriu-zis este pornit de două timere systemd (lecția 6.3), pe care le puteți vedea astfel:
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 descarcă listele (ca apt update), iar apt-daily-upgrade instalează actualizările. Orele au o abatere aleatorie, astfel încât nu toate serverele din lume să încarce depozitele de pachete în același timp.
Ce se instalează automat?
Acest lucru este definit în /etc/apt/apt.conf.d/50unattended-upgrades. Pe Debian blocul se numește Unattended-Upgrade::Origins-Pattern, pe Ubuntu Unattended-Upgrade::Allowed-Origins. Implicit sunt activate sursa de securitate și sursa stabilă a versiunii dumneavoastră, iar sursa -updates este dezactivată. Pe Ubuntu arată astfel:
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";
};Rândurile precedate de // sunt dezactivate. Pentru un prim server, lăsați totul așa. Nu modificați fișierul direct, deoarece o versiune ulterioară a pachetului ar putea dori să îl înlocuiască. Debian recomandă să vă puneți modificările într-un fișier propriu, de exemplu /etc/apt/apt.conf.d/52unattended-upgrades-local; fișierele ulterioare au prioritate față de cele anterioare.
Pachetele din surse suplimentare (Docker, Caddy, PostgreSQL de la producător) nu sunt actualizate automat în mod implicit. Este o alegere deliberată: pe acestea le urmăriți singur (lecția 9.4) sau adăugați manual sursa în listă dacă aveți încredere în producător și cunoașteți consecințele.
Câteva setări pe care le doriți adesea:
// /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 funcționează doar dacă serverul poate trimite e-mail (un mic relay, lecția 8.3). Dacă nu poate, săriți peste această setare și folosiți monitorizarea din lecția 8.3.
Verificați dacă funcționează
Un mecanism automat care se oprește fără să anunțe este mai periculos decât lipsa lui, pentru că credeți că sunteți în siguranță. Verificați de aceea trei lucruri.
1. O rulare de probă. Aceasta arată ce s-ar întâmpla, fără să modifice nimic:
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. Jurnalul. Fiecare rulare scrie în /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. Ce a rămas în așteptare. apt list --upgradable (lecția 4.1) nu ar trebui să mai afișeze după o noapte pachete din -security. Dacă ele apar zile la rând, ceva nu funcționează: un disc plin, o blocare cauzată de o comandă apt manuală care s-a blocat sau un pachet care pune o întrebare.
Repornirea: serviciile și kernelul
Un program actualizat pe disc nu este încă același lucru cu un program actualizat în memorie. Dacă OpenSSH rulează deja de trei săptămâni, rulează codul vechi până când serviciul repornește.
- Serviciile: programul needrestart verifică după o actualizare ce servicii mai folosesc biblioteci vechi. Pe Ubuntu 24.04 și versiunile ulterioare, unattended-upgrades repornește implicit și automat aceste servicii prin needrestart. Pe Debian, needrestart este un pachet separat (
apt install needrestart) care vă întreabă interactiv ce servicii trebuie repornite. - Kernelul: un kernel nou intră în funcțiune abia după repornirea întregului server. În acest caz, Debian și Ubuntu creează fișierul
/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-amd64Aveți două opțiuni. Fie reporniți singur, de exemplu în fiecare săptămână la o oră fixă, după ce ați verificat dacă fișierul există. Fie lăsați unattended-upgrades să o facă:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:30";Valoarea implicită este false. Activați opțiunea doar dacă sunteți sigur că totul pornește din nou singur după o repornire: serviciile cu enable (lecția 6.1), containerele cu o politică restart: (lecția 9.3) și o monitorizare care vă avertizează dacă nu se întâmplă așa (lecția 8.3). Testați mai întâi o dată manual: sudo reboot, și verificați dacă totul revine.
Prin Ubuntu Pro, Ubuntu oferă și Livepatch, care aplică unele remedieri ale kernelului fără repornire. Este o completare, nu un înlocuitor: și cu Livepatch reporniți din când în când.
Ce nu faceți automat
- Upgrade-urile de versiune (de la Debian 12 la 13, de la Ubuntu 24.04 la 26.04): întotdeauna manual, cu un plan (lecția 4.3).
- Versiunile majore ale propriilor aplicații (o nouă versiune principală a unei baze de date, a unui CMS): întotdeauna manual, după un backup și după citirea notelor de lansare.
- Containerele: unattended-upgrades nu le actualizează. O imagine din 2024 rămâne imaginea din 2024 până când rulați
docker compose pull(lecția 9.4).
Pe AlmaLinux și Rocky Linux
Acolo instrumentul se numește dnf-automatic. Îl instalați cu dnf install dnf-automatic. În /etc/dnf/automatic.conf setați upgrade_type = security și apply_updates = yes, iar timerul îl activați cu systemctl enable --now dnf-automatic.timer. Pe distribuțiile de tip RHEL, repornirea pentru kernel este la fel de necesară ca pe Debian; dnf needs-restarting -r vă spune dacă este cazul.
În practică
La WebOké, un VPS funcționează la fel ca în altă parte: ce se actualizează în interiorul serverului administrați dumneavoastră. Furnizorul actualizează hardware-ul și platforma de virtualizare, nu sistemul dumneavoastră de operare. Înainte de o actualizare majoră manuală, faceți un snapshot în panoul furnizorului; pentru actualizările automate zilnice de securitate nu este necesar.
Rezumat
- Activați actualizările automate de securitate cu unattended-upgrades (Ubuntu: active implicit; Debian: verificați cu
dpkg-reconfigure -plow unattended-upgrades). - Implicit sunt actualizate automat doar sursa de securitate și sursa stabilă a versiunii; sursele suplimentare nu.
- Verificați cu o rulare de probă, cu jurnalul din
/var/log/unattended-upgrades/și cuapt list --upgradable. - Serviciile trebuie repornite după o actualizare (needrestart), kernelul necesită repornirea serverului (
/var/run/reboot-required). - Upgrade-urile de versiune, versiunile majore ale aplicațiilor și containerele le actualizați manual.
Test (quiz)
Exercițiu
Exercițiul O4.2: Activarea și verificarea actualizărilor automate. Activați unattended-upgrades pe propriul server (sau verificați că este activ), efectuați o rulare de probă și examinați jurnalul și timerele. Completați lista de verificare și răspundeți: ce surse sunt actualizate automat la dumneavoastră, când a avut loc ultima rulare, există acum o repornire în așteptare și cum veți reporni (singur, la o oră fixă, sau automat, și de ce)?
Exercițiul O4.2: Activarea și verificarea actualizărilor automate
Acest exercițiu îl faceți singur; nimeni nu îl verifică. Bifați ce ați făcut și marcați exercițiul ca finalizat.
Automat: sursa de versiuni și sursa de securitate. Dacă există reboot-required, așteaptă o actualizare de kernel sau de bibliotecă. Repornirea automată este o opțiune dacă totul revine singur după aceea și monitorizarea vă anunță când nu se întâmplă acest lucru. Sursele suplimentare (Docker, Caddy), containerele și aplicațiile precum WordPress le actualizați singur.
Bifele și notițele dumneavoastră rămân doar în acest browser; nu le trimitem nicăieri. Dacă sunteți autentificat, păstrăm în Cursurile mele doar faptul că ați finalizat exercițiul.
Lecturi suplimentare
- Securizarea VPS-ului dumneavoastră: primele cinci minute
- Debian Wiki, actualizări automate (UnattendedUpgrades): https://wiki.debian.org/PeriodicUpdates
- NCSC-ul olandez (sursă în limba neerlandeză), Principiul de bază 3: Protejați sistemele, aplicațiile și dispozitivele: https://www.ncsc.nl/basisprincipes/basisprincipe-3-bescherm-systemen-applicaties-en-apparaten
- Documentația Ubuntu Server, Automatic updates: https://ubuntu.com/server/docs/how-to/software/automatic-updates/
- VPS: de la prima autentificare la un server securizat 3.3: Actualizări și actualizări automate
