Μετάβαση στο περιεχόμενο

Ρυθμίσεις cookies

Επιλέξτε ανά κατηγορία ποια cookies επιτρέπετε. Μπορείτε να αλλάξετε την επιλογή σας οποιαδήποτε στιγμή μέσω των Ρυθμίσεων cookies στο κάτω μέρος κάθε σελίδας. Δήλωση απορρήτου

Απαραίτητα

Πάντα ενεργά

Χρειάζονται για τη σύνδεση, για να διατηρείται το καλάθι σας και για να θυμόμαστε τις επιλογές σας. Είναι πάντα ενεργά.

Ποια cookies;
  • weboke_sessie, weboke_klant, weboke_remember: η συνεδρία σας και η παραμονή σε σύνδεση
  • weboke_basket: το καλάθι σας
  • wkBtwIncl: εμφάνιση τιμών με ή χωρίς ΦΠΑ
  • wok_cookies: η επιλογή σας για τα cookies, 12 μήνες

Μετρούν ποια διαφήμιση οδηγεί σε επίσκεψη ή παραγγελία, ώστε να μην πληρώνουμε για διαφημίσεις που δεν αποδίδουν.

Ποια cookies;
  • Google Ads μέσω Google Tag Manager (_gcl_au, _gcl_aw), έως 90 ημέρες
  • OpenAI Ads, διαφημίσεις στο ChatGPT
  • wok_aff: μέσω ποιου συνεργάτη ήρθατε σε εμάς (πρόγραμμα συνεργατών), 60 ημέρες

4,6

Χώρα και γλώσσα

Κάθε χώρα έχει τη δική της ιστοσελίδα, με τιμές και ΦΠΑ της χώρας αυτής.

Προβολή

Αυτόματες ενημερώσεις

Ενότητα 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-server

2. Το αρχείο καταγραφής. Κάθε εκτέλεση γράφει στο /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 installed

3. Τι εκκρεμεί ακόμη. Το 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 τα ενημερώνετε χειροκίνητα.

Κουίζ

1. Έχετε ενεργοποιήσει το unattended-upgrades. Μία εβδομάδα αργότερα το apt list --upgradable εξακολουθεί να εμφανίζει μια ενημέρωση από το trixie-security. Τι κάνετε πρώτα;



2. Μετά από μια ενημέρωση του OpenSSL, ο web server και ο SSH server σας εκτελούνται ακόμη με την παλιά βιβλιοθήκη στη μνήμη. Τι το διορθώνει;



3. Γιατί τα πακέτα από μια πρόσθετη πηγή (για παράδειγμα αυτή του Docker) δεν ενημερώνονται αυτόματα από προεπιλογή;



4. Πότε είναι υπεύθυνο να ενεργοποιήσετε το Automatic-Reboot "true";



5. Πού βάζετε τις δικές σας ρυθμίσεις για το unattended-upgrades;



Άσκηση

Άσκηση O4.2: Ενεργοποίηση και έλεγχος αυτόματων ενημερώσεων. Ενεργοποιήστε το unattended-upgrades στον δικό σας server (ή ελέγξτε ότι είναι ενεργό), κάντε μια δοκιμαστική εκτέλεση και εξετάστε το αρχείο καταγραφής και τους timers. Συμπληρώστε τη λίστα ελέγχου και απαντήστε: ποιες πηγές ενημερώνονται αυτόματα στον server σας, πότε έγινε η τελευταία εκτέλεση, εκκρεμεί αυτή τη στιγμή κάποια επανεκκίνηση και πώς θα κάνετε εσείς τις επανεκκινήσεις (μόνοι σας σε σταθερή ώρα ή αυτόματα, και γιατί);

Άσκηση O4.2: Ενεργοποίηση και έλεγχος αυτόματων ενημερώσεων

Αυτή την άσκηση την κάνετε μόνοι σας: κανείς δεν την ελέγχει. Σημειώστε τι έχετε κάνει και επισημάνετε την άσκηση ως ολοκληρωμένη.





Τα τικ και οι σημειώσεις σας παραμένουν μόνο σε αυτό το πρόγραμμα περιήγησης· δεν τα στέλνουμε πουθενά. Αν έχετε εγγραφεί, αποθηκεύουμε στο Τα μαθήματά μου μόνο ότι έχετε ολοκληρώσει την άσκηση.

Για περαιτέρω μελέτη

Μια στιγμή…

Ρυθμίστε τα domains σας

Ρυθμίστε για κάθε domain τους nameservers, τη σύνδεση με το hosting σας και ποιος θα είναι ο κάτοχος.

Φόρτωση των domains σας…