Ενότητα 4 · 4.2
Αυτόματες ενημερώσεις
Ενότητα 4: Λογισμικό και ενημερώσεις · Χρόνος ανάγνωσης: 10 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να ενεργοποιείτε και να ελέγχετε τις αυτόματες ενημερώσεις ασφαλείας. Γνωρίζετε επίσης τι γίνεται αυτόματα και τι όχι, καθώς και πότε χρειάζεται επανεκκίνηση.
Βασικές έννοιες: unattended-upgrades, 20auto-upgrades, 50unattended-upgrades, Origins-Pattern και Allowed-Origins, apt-daily-timers, needrestart, /var/run/reboot-required, Automatic-Reboot, ενημέρωση kernel, dnf-automatic
Γιατί αυτόματα;
Τα κενά ασφαλείας εντοπίζονται, διορθώνονται και στη συνέχεια γίνονται αντικείμενο ενεργής εκμετάλλευσης, συχνά μέσα σε λίγες ημέρες. Ένας server που ενημερώνετε μία φορά τον μήνα μένει επομένως κατά μέσο όρο εκτεθειμένος για εβδομάδες σε γνωστά κενά. Το ολλανδικό NCSC κατατάσσει την έγκαιρη εγκατάσταση ενημερώσεων στις βασικές αρχές της ψηφιακής ανθεκτικότητας: "Η έγκαιρη ενημέρωση και επιδιόρθωση (patching) του λογισμικού βοηθά στη γρήγορη αντιμετώπιση των ευπαθειών."
Ωστόσο, το "όλα αυτόματα" δεν είναι επίσης σωστό. Μια νέα έκδοση ενός προγράμματος μπορεί να συμπεριφέρεται διαφορετικά από την παλιά, και ένας server που κάνει μόνος του επανεκκίνηση στη μέση της ημέρας μπορεί να επηρεάσει τους επισκέπτες σας. Η συνηθισμένη μέση λύση στο Debian και στο Ubuntu είναι:
- ενημερώσεις ασφαλείας αυτόματα, κάθε ημέρα·
- άλλες ενημερώσεις και αναβαθμίσεις έκδοσης χειροκίνητα, τη στιγμή που επιλέγετε εσείς, με ένα snapshot εκ των προτέρων·
- επανεκκίνηση προγραμματισμένη, σε μια ήσυχη στιγμή, και ελεγχόμενη.
Το πρόγραμμα που το ρυθμίζει αυτό λέγεται unattended-upgrades.
Ενεργοποίηση του unattended-upgrades
Στο Ubuntu Server το unattended-upgrades είναι εγκατεστημένο από προεπιλογή και οι αυτόματες ενημερώσεις ασφαλείας είναι ενεργές αμέσως μετά την εγκατάσταση. Στο Debian υπάρχει επίσης σε πολλές εγκαταστάσεις και images, αλλά όχι πάντα. Ελέγξτε και ενεργοποιήστε:
anna@web1:~$ sudo apt install unattended-upgrades
anna@web1:~$ sudo dpkg-reconfigure -plow unattended-upgradesΗ δεύτερη εντολή ρωτά "Automatically download and install stable updates?". Επιλέξτε Yes. Αυτό γράφει το αρχείο /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";Το 1 σημαίνει: κάθε ημέρα. Με το 0 το απενεργοποιείτε. Την ίδια την εργασία την ξεκινούν δύο systemd timers (μάθημα 6.3), τους οποίους βλέπετε ως εξής:
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.serviceΤο apt-daily κατεβάζει τις λίστες (όπως το apt update), το apt-daily-upgrade εγκαθιστά τις ενημερώσεις. Οι ώρες έχουν τυχαία διασπορά, ώστε να μην επιβαρύνουν όλοι οι servers του κόσμου ταυτόχρονα τις πηγές πακέτων.
Τι εγκαθίσταται αυτόματα;
Αυτό ορίζεται στο /etc/apt/apt.conf.d/50unattended-upgrades. Στο Debian το μπλοκ λέγεται Unattended-Upgrade::Origins-Pattern, στο Ubuntu Unattended-Upgrade::Allowed-Origins. Από προεπιλογή είναι ενεργές η πηγή ασφαλείας και η σταθερή πηγή της έκδοσής σας, ενώ η πηγή -updates είναι ανενεργή. Στο Ubuntu μοιάζει κάπως έτσι:
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";
};Οι γραμμές με // μπροστά είναι ανενεργές. Για έναν πρώτο server αφήστε το όπως είναι. Μην αλλάζετε το αρχείο απευθείας, γιατί μια επόμενη έκδοση του πακέτου μπορεί να θέλει να το αντικαταστήσει. Το Debian συνιστά να βάζετε τις δικές σας αλλαγές σε δικό σας αρχείο, για παράδειγμα /etc/apt/apt.conf.d/52unattended-upgrades-local· τα μεταγενέστερα αρχεία υπερισχύουν των προηγούμενων.
Πακέτα από πρόσθετες πηγές (Docker, Caddy, PostgreSQL από τον κατασκευαστή) από προεπιλογή δεν ενημερώνονται αυτόματα. Αυτή είναι συνειδητή επιλογή: αυτά τα παρακολουθείτε εσείς (μάθημα 9.4) ή προσθέτετε χειροκίνητα την πηγή στη λίστα, εφόσον εμπιστεύεστε τον κατασκευαστή και γνωρίζετε τις συνέπειες.
Μερικές ρυθμίσεις που συχνά θα θέλετε:
// /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 λειτουργεί μόνο αν ο server μπορεί να στέλνει email (ένα μικρό relay, μάθημα 8.3). Αν αυτό δεν είναι δυνατό, παραλείψτε το και χρησιμοποιήστε την παρακολούθηση από το μάθημα 8.3.
Έλεγχος λειτουργίας
Ένας αυτοματισμός που σταματά σιωπηλά είναι πιο επικίνδυνος από την απουσία αυτοματισμού, γιατί νομίζετε ότι είστε ασφαλείς. Γι' αυτό ελέγξτε τρία πράγματα.
1. Μια δοκιμαστική εκτέλεση. Δείχνει τι θα συνέβαινε, χωρίς να αλλάξει τίποτα:
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. Το αρχείο καταγραφής. Κάθε εκτέλεση γράφει στο /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. Τι εκκρεμεί ακόμη. Το apt list --upgradable (μάθημα 4.1) δεν θα πρέπει μετά από μία νύχτα να εμφανίζει πλέον πακέτα από το -security. Αν εμφανίζονται για αρκετές ημέρες συνεχόμενα, κάτι δεν πάει καλά: γεμάτος δίσκος, ένα κλείδωμα από ένα χειροκίνητο apt που έχει κολλήσει ή ένα πακέτο που κάνει μια ερώτηση.
Επανεκκίνηση: υπηρεσίες και kernel
Ένα ενημερωμένο πρόγραμμα στον δίσκο δεν είναι ακόμη το ίδιο με ένα ενημερωμένο πρόγραμμα στη μνήμη. Αν το OpenSSH εκτελείται ήδη τρεις εβδομάδες, εκτελείται ο παλιός κώδικας μέχρι να ξεκινήσει ξανά η υπηρεσία.
- Υπηρεσίες: το πρόγραμμα needrestart ελέγχει μετά από μια ενημέρωση ποιες υπηρεσίες χρησιμοποιούν ακόμη παλιές βιβλιοθήκες. Στο Ubuntu 24.04 και νεότερα, το unattended-upgrades επανεκκινεί από προεπιλογή αυτές τις υπηρεσίες αυτόματα μέσω του needrestart. Στο Debian το needrestart είναι ξεχωριστό πακέτο (
apt install needrestart), το οποίο σας ρωτά διαδραστικά ποιες υπηρεσίες πρέπει να επανεκκινηθούν. - Ο kernel: ένας νέος kernel τίθεται σε λειτουργία μόνο μετά από επανεκκίνηση ολόκληρου του server. Το Debian και το Ubuntu δημιουργούν τότε το αρχείο
/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-amd64Έχετε δύο επιλογές. Είτε κάνετε εσείς την επανεκκίνηση, για παράδειγμα κάθε εβδομάδα σε σταθερή ώρα, αφού ελέγξετε αν υπάρχει το αρχείο. Είτε αφήνετε το unattended-upgrades να το κάνει:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:30";Η προεπιλογή είναι false. Ενεργοποιήστε το μόνο αν είστε βέβαιοι ότι όλα επανέρχονται αυτόματα μετά από επανεκκίνηση: υπηρεσίες με enable (μάθημα 6.1), containers με πολιτική restart: (μάθημα 9.3) και μια παρακολούθηση που σας ειδοποιεί αν αυτό δεν συμβεί (μάθημα 8.3). Δοκιμάστε το πρώτα μία φορά χειροκίνητα: sudo reboot, και ελέγξτε αν όλα επανέρχονται.
Το Ubuntu προσφέρει επίσης μέσω του Ubuntu Pro το Livepatch, το οποίο εφαρμόζει ορισμένες διορθώσεις του kernel χωρίς επανεκκίνηση. Πρόκειται για συμπλήρωμα, όχι για υποκατάστατο: και με το Livepatch κάνετε επανεκκίνηση πού και πού.
Τι δεν κάνετε αυτόματα
- Αναβαθμίσεις έκδοσης (από Debian 12 σε 13, από Ubuntu 24.04 σε 26.04): πάντα χειροκίνητα, με σχέδιο (μάθημα 4.3).
- Μεγάλες εκδόσεις των δικών σας εφαρμογών (μια νέα κύρια έκδοση μιας βάσης δεδομένων, ενός CMS): πάντα χειροκίνητα, μετά από αντίγραφο ασφαλείας και αφού διαβάσετε τις release notes.
- Containers: αυτά δεν τα ενημερώνει το unattended-upgrades. Ένα image του 2024 παραμένει το image του 2024 μέχρι να εκτελέσετε εσείς
docker compose pull(μάθημα 9.4).
Στο AlmaLinux και στο Rocky Linux
Εκεί το εργαλείο λέγεται dnf-automatic. Εγκαθίσταται με dnf install dnf-automatic. Στο /etc/dnf/automatic.conf ορίζετε upgrade_type = security και apply_updates = yes, και ενεργοποιείτε τον timer με systemctl enable --now dnf-automatic.timer. Στα συστήματα τύπου RHEL η επανεκκίνηση για τον kernel είναι εξίσου απαραίτητη όσο και στο Debian· το dnf needs-restarting -r σας λέει αν χρειάζεται.
Στην πράξη
Στη WebOké ένα VPS λειτουργεί με τον ίδιο τρόπο όπως αλλού: ό,τι ενημερώνεται μέσα στον server το διαχειρίζεστε εσείς. Ο πάροχος ενημερώνει το υλικό και την πλατφόρμα εικονικοποίησης, όχι το λειτουργικό σας σύστημα. Πριν από μια χειροκίνητη μεγάλη ενημέρωση, δημιουργήστε ένα snapshot στον πίνακα ελέγχου του παρόχου σας· για τις καθημερινές αυτόματες ενημερώσεις ασφαλείας αυτό δεν είναι απαραίτητο.
Σύνοψη
- Ενεργοποιήστε τις αυτόματες ενημερώσεις ασφαλείας με το unattended-upgrades (Ubuntu: ενεργό από προεπιλογή· Debian: ελέγξτε με
dpkg-reconfigure -plow unattended-upgrades). - Από προεπιλογή ενημερώνονται αυτόματα μόνο η πηγή ασφαλείας και η σταθερή πηγή της έκδοσης· οι πρόσθετες πηγές όχι.
- Ελέγξτε με μια δοκιμαστική εκτέλεση, το αρχείο καταγραφής στο
/var/log/unattended-upgrades/και τοapt list --upgradable. - Οι υπηρεσίες πρέπει να επανεκκινούνται μετά από μια ενημέρωση (needrestart), ο kernel απαιτεί επανεκκίνηση του server (
/var/run/reboot-required). - Τις αναβαθμίσεις έκδοσης, τις μεγάλες εκδόσεις εφαρμογών και τα containers τα ενημερώνετε χειροκίνητα.
Κουίζ
Άσκηση
Άσκηση O4.2: Ενεργοποίηση και έλεγχος αυτόματων ενημερώσεων. Ενεργοποιήστε το unattended-upgrades στον δικό σας server (ή ελέγξτε ότι είναι ενεργό), κάντε μια δοκιμαστική εκτέλεση και εξετάστε το αρχείο καταγραφής και τους timers. Συμπληρώστε τη λίστα ελέγχου και απαντήστε: ποιες πηγές ενημερώνονται αυτόματα στον server σας, πότε έγινε η τελευταία εκτέλεση, εκκρεμεί αυτή τη στιγμή κάποια επανεκκίνηση και πώς θα κάνετε εσείς τις επανεκκινήσεις (μόνοι σας σε σταθερή ώρα ή αυτόματα, και γιατί);
Άσκηση O4.2: Ενεργοποίηση και έλεγχος αυτόματων ενημερώσεων
Αυτή την άσκηση την κάνετε μόνοι σας: κανείς δεν την ελέγχει. Σημειώστε τι έχετε κάνει και επισημάνετε την άσκηση ως ολοκληρωμένη.
Αυτόματα: η πηγή της έκδοσης και η πηγή ασφαλείας. Αν υπάρχει το reboot-required, εκκρεμεί μια ενημέρωση πυρήνα ή βιβλιοθήκης. Η αυτόματη επανεκκίνηση είναι δυνατή αν όλα επανέρχονται μόνα τους μετά και η παρακολούθησή σας ειδοποιεί όταν δεν συμβαίνει αυτό. Τις επιπλέον πηγές (Docker, Caddy), τα containers και εφαρμογές όπως το WordPress τα ενημερώνετε μόνοι σας.
Τα τικ και οι σημειώσεις σας παραμένουν μόνο σε αυτό το πρόγραμμα περιήγησης· δεν τα στέλνουμε πουθενά. Αν έχετε εγγραφεί, αποθηκεύουμε στο Τα μαθήματά μου μόνο ότι έχετε ολοκληρώσει την άσκηση.
Για περαιτέρω μελέτη
- Ασφάλεια του VPS σας: τα πρώτα πέντε λεπτά
- Debian Wiki, αυτόματες ενημερώσεις (UnattendedUpgrades): https://wiki.debian.org/PeriodicUpdates
- Ολλανδικό NCSC (ολλανδική πηγή), Βασική αρχή 3: Προστατέψτε συστήματα, εφαρμογές και συσκευές: https://www.ncsc.nl/basisprincipes/basisprincipe-3-bescherm-systemen-applicaties-en-apparaten
- Τεκμηρίωση Ubuntu Server, Automatic updates: https://ubuntu.com/server/docs/how-to/software/automatic-updates/
