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

Ρυθμίσεις 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

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

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

Προβολή

Τελικός έλεγχος: ο server σας υπό εξέταση

Ενότητα 10: Παραμείνετε ασφαλείς · Χρόνος ανάγνωσης: 10 λεπτά

Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να αξιολογήσετε τον δικό σας server με μια λίστα ελέγχου και έναν αυτόματο έλεγχο από έξω, γνωρίζετε ποια σημεία έχουν προτεραιότητα και έχετε έναν σταθερό ρυθμό συντήρησης και έναν σύντομο φάκελο server.

Βασικές έννοιες: λίστα ελέγχου, προτεραιότητα, έλεγχος από έξω, φάκελος server, ρυθμός συντήρησης (εβδομαδιαία, μηνιαία, ανά τρίμηνο, ανά έτος), ημερομηνία λήξης υποστήριξης της έκδοσης, δοκιμή επαναφοράς

Από μεμονωμένα μαθήματα σε ένα ενιαίο σύνολο

Σε αυτή την εκπαίδευση στήσατε έναν server βήμα προς βήμα: ασφαλή σύνδεση, δικαιώματα, ενημερώσεις, firewall, υπηρεσίες, έναν ιστότοπο με https, αντίγραφα ασφαλείας, παρακολούθηση και containers. Σε αυτό το τελευταίο μάθημα τα συγκεντρώνετε όλα σε μία λίστα. Ελέγχετε τον server σας, αφήνετε το πρόγραμμα της εκπαίδευσης να τον εξετάσει από έξω και καταγράφετε πώς θα τον συντηρείτε τα επόμενα χρόνια.

Ένας server δεν είναι ποτέ "έτοιμος". Το λογισμικό παλιώνει, τα πιστοποιητικά λήγουν, οι δίσκοι γεμίζουν, οι εκδόσεις φτάνουν στο end of life. Γι' αυτό ένας σταθερός ρυθμός είναι εξίσου σημαντικός με την αρχική ρύθμιση.

Η λίστα ελέγχου, κατά σειρά σπουδαιότητας

Δεν είναι όλα εξίσου επείγοντα. Διατρέξτε τη λίστα από πάνω προς τα κάτω: τα πρώτα μπλοκ αποτρέπουν τα περισσότερα προβλήματα.

Μπλοκ 1: κανείς δεν μπαίνει έτσι απλά (ενότητα 2, 3, 5)

  • Σύνδεση μόνο με κλειδιά· PasswordAuthentication no και KbdInteractiveAuthentication no, ελεγμένα με sudo sshd -T.
  • Ο root δεν συνδέεται με κωδικό πρόσβασης· εργάζεστε ως κανονικός χρήστης με sudo.
  • Οι βάσεις δεδομένων, οι caches και τα clusters αναζήτησης ακούν στο 127.0.0.1· οι θύρες 3306, 5432, 6379, 9200 και 27017 είναι κλειστές από έξω, τόσο για IPv4 όσο και για IPv6.
  • Ένα firewall με προεπιλογή να είναι όλα κλειστά για τα εισερχόμενα· ανοιχτές μόνο οι θύρες που χρειάζεστε.
  • Το fail2ban εκτελείται για το SSH (fail2ban-client status sshd).

Μπλοκ 2: τα κενά ασφαλείας κλείνουν (ενότητα 4)

  • Οι αυτόματες ενημερώσεις ασφαλείας είναι ενεργές και ελεγμένες (αρχείο καταγραφής, apt list --upgradable).
  • Ένα σχέδιο για επανεκκινήσεις· το /var/run/reboot-required δεν παραμένει εκεί για εβδομάδες.
  • Η έκδοση υποστηρίζεται ακόμη· η ημερομηνία λήξης βρίσκεται στο ημερολόγιό σας.

Μπλοκ 3: μπορείτε να επιστρέψετε (ενότητα 8)

  • Κρυπτογραφημένα αντίγραφα ασφαλείας εκτός του server, αυτόματα, με παρακολούθηση.
  • Έχετε κάνει δοκιμή επαναφοράς και ξέρετε πόσο διαρκεί η επαναφορά.
  • Ξέρετε πώς να δημιουργήσετε ένα snapshot και να ανοίξετε την κονσόλα.

Μπλοκ 4: η εξωτερική πλευρά είναι σωστή (ενότητα 7)

  • Οι εγγραφές A και AAAA δείχνουν στον server σας· το reverse DNS (PTR) δείχνει πίσω στο ίδιο όνομα.
  • https με έγκυρο πιστοποιητικό που ανανεώνεται αυτόματα· το http ανακατευθύνει στο https.
  • HSTS και μερικά headers ασφαλείας· ένα security.txt με διεύθυνση επικοινωνίας που λειτουργεί και ημερομηνία λήξης.

Μπλοκ 5: βλέπετε τι συμβαίνει (ενότητα 6, 8)

  • Το journal είναι μόνιμο (persistent)· μπορείτε να διαβάσετε αρχεία καταγραφής από πριν από μια επανεκκίνηση.
  • Παρακολούθηση από έξω (προσβασιμότητα, πιστοποιητικό) και από μέσα (δίσκος, υπηρεσίες), με ειδοποιήσεις που φτάνουν πραγματικά.
  • Το systemctl --failed είναι κενό.

Μπλοκ 6: τα containers υπό έλεγχο (ενότητα 9, εφόσον χρησιμοποιείτε Docker)

  • Οι θύρες των containers στο 127.0.0.1 ή πίσω από τον reverse proxy· κανένα docker.sock σε containers που δεν το χρειάζονται πραγματικά.
  • Τα volumes περιλαμβάνονται στα αντίγραφα ασφαλείας· τα images ενημερώνονται τακτικά.
  • Τα μυστικά βρίσκονται σε αρχεία .env με αυστηρά δικαιώματα, όχι στο Git.

Ο έλεγχος από έξω

Ένα μέρος αυτής της λίστας μπορεί να το ελέγξει το πρόγραμμα της εκπαίδευσης από έξω, ακριβώς όπως βλέπει τον server σας οποιοσδήποτε στο internet. Η τελική άσκηση (Z10.4) συνδυάζει τους ελέγχους από προηγούμενες ασκήσεις:

ΣτοιχείοΤι κάνει το πρόγραμμαΑπό το μάθημα
SSHΔιαβάζει το banner έκδοσης και ρωτά ποιες μεθόδους σύνδεσης προσφέρει ο server σας για το όνομα χρήστη σας· δεν συνδέεται2.2
Θύρες βάσεων δεδομένωνΔοκιμάζει μόνο μια σύνδεση στις 3306, 5432, 6379, 9200 και 27017· δεν στέλνει τίποτα5.1
httpsΕλέγχει το πιστοποιητικό (έγκυρο, αξιόπιστο, σωστό όνομα)7.3
HeadersΔιαβάζει το HSTS και τα άλλα headers ασφαλείας7.4
security.txtΑνακτά το /.well-known/security.txt και ελέγχει τα Contact και Expires7.4
ContainerΑναζητά το header με τον κωδικό σας, που ορίζει ο reverse proxy σας9.4

Το πρόγραμμα δεν εκτελεί τίποτα στον server σας, δεν δοκιμάζει κωδικούς πρόσβασης και δεν σαρώνει άλλες θύρες. Κάθε διεύθυνση μπορεί να ελεγχθεί μόνο λίγες φορές την ώρα. Ένα πράσινο αποτέλεσμα σημαίνει: από έξω απουσιάζουν τα πιο γνωστά σφάλματα. Δεν λέει τίποτα για όσα συμβαίνουν μέσα στον server σας· αυτό είναι το υπόλοιπο της λίστας ελέγχου, το οποίο ελέγχετε εσείς οι ίδιοι.

Ο φάκελος server

Γράψτε για κάθε server ένα σύντομο έγγραφο, φυλαγμένο εκτός του server (για παράδειγμα στον διαχειριστή κωδικών πρόσβασης ή σε έναν κοινόχρηστο φάκελο):

  • όνομα, διευθύνσεις IP, πάροχος, έκδοση και ημερομηνία λήξης υποστήριξης·
  • τι εκτελείται (υπηρεσίες, containers, ιστότοποι) και για ποιο λόγο·
  • ποιες θύρες είναι ανοιχτές και για ποιο σκοπό·
  • πού βρίσκονται τα αντίγραφα ασφαλείας, πώς γίνεται η επαναφορά, πότε έγινε η τελευταία δοκιμή·
  • ποια μυστικά υπάρχουν στον server (όχι τα ίδια τα μυστικά, αλλά ποια είναι και πού αντικαθίστανται)·
  • τι κάνατε συνειδητά διαφορετικά από την προεπιλογή (για παράδειγμα μια πρόταση του Lynis που παραλείψατε, μάθημα 10.1)·
  • ποιος έχει πρόσβαση (ποια κλειδιά βρίσκονται στο authorized_keys).

Αυτός ο φάκελος είναι πολύτιμος σε ένα περιστατικό (μάθημα 10.3), σε μια αναβάθμιση έκδοσης (μάθημα 4.3) και όταν κάποιος άλλος αναλαμβάνει τη διαχείριση.

Ένας ρυθμός συντήρησης

Χωρίς ρυθμό, η προσοχή χαλαρώνει. Ένα παράδειγμα για έναν μικρό server· προσαρμόστε το στη δική σας κατάσταση.

ΠότεΤι
Κάθε εβδομάδαΈλεγχος της παρακολούθησης και των ειδοποιήσεων· systemctl --failed· επανεκκίνηση αν υπάρχει το /var/run/reboot-required (ή έλεγχος ότι η αυτόματη επανεκκίνηση λειτούργησε)
Κάθε μήναapt list --upgradable (μένει κάτι εκκρεμές;)· docker compose pull και up -d για τα containers σας, μαζί με τις release notes· χώρος στον δίσκο· fail2ban-client status· αρχείο καταγραφής για ασυνήθιστα σφάλματα (journalctl -p err --since "1 month ago")
Κάθε τρίμηνοΔοκιμή επαναφοράς ενός αντιγράφου ασφαλείας· έλεγχος του authorized_keys και των χρηστών (αφαίρεση όσων δεν πρέπει πλέον να έχουν πρόσβαση)· νέα εκτέλεση του Lynis· νέα επανάληψη του τελικού ελέγχου από έξω (άσκηση Z10.4)
Κάθε χρόνοΕνημέρωση του security.txt (Expires)· έλεγχος της ημερομηνίας λήξης υποστήριξης της έκδοσης και προγραμματισμός αναβάθμισης· ενημέρωση του φακέλου server και του σχεδίου έκτακτης ανάγκης σας

Καταχωρίστε αυτές τις στιγμές στο ημερολόγιό σας. Ένα μεγάλο μέρος μπορείτε επίσης να το αυτοματοποιήσετε με την παρακολούθηση από το μάθημα 8.3, αλλά ο έλεγχος από εσάς παραμένει απαραίτητος.

Στην πράξη

Είτε ο server σας βρίσκεται στο WebOké είτε σε άλλον πάροχο: ο πάροχος φροντίζει το υλικό, το δίκτυο και τη δυνατότητα δημιουργίας snapshots και αντιγράφων ασφαλείας, εσείς φροντίζετε για όλα μέσα στον server. Αυτή η εκπαίδευση είναι αυτοβοήθεια: κανείς δεν παρακολουθεί τον server σας. Με αυτή τη λίστα ελέγχου, τον φάκελο και τον ρυθμό έχετε όμως όλα όσα χρειάζεστε για να κάνετε αυτή τη διαχείριση αυτόνομα και σωστά.

Σύνοψη

  • Ελέγξτε τον server σας σε μπλοκ: κανείς δεν μπαίνει έτσι απλά, τα κενά ασφαλείας κλείνουν, μπορείτε να επιστρέψετε, η εξωτερική πλευρά είναι σωστή, βλέπετε τι συμβαίνει, τα containers υπό έλεγχο.
  • Ο έλεγχος από έξω εξετάζει τις μεθόδους σύνδεσης SSH, τις θύρες βάσεων δεδομένων, το https, τα headers, το security.txt και το header του container σας· τα υπόλοιπα τα ελέγχετε εσείς.
  • Τηρήστε έναν φάκελο server, εκτός του server.
  • Εργαστείτε με σταθερό ρυθμό: εβδομαδιαία, μηνιαία, ανά τρίμηνο και ανά έτος.

Κουίζ

1. Έχετε μόνο μία ώρα. Ποιο σημείο της λίστας ελέγχου αντιμετωπίζετε πρώτο;



2. Ο τελικός έλεγχος από έξω είναι εντελώς πράσινος. Τι σημαίνει αυτό;



3. Γιατί φυλάτε τον φάκελο server εκτός του server;



4. Ποια εργασία ανήκει στον ρυθμό ανά τρίμηνο;



5. Το security.txt σας έχει ημερομηνία Expires τον Μάιο του επόμενου έτους. Τι κάνετε;



Άσκηση

Άσκηση Z10.4: Τελική άσκηση: ο server σας από έξω. Αφήστε το πρόγραμμα της εκπαίδευσης να ελέγξει τον server σας από έξω με μία κίνηση: τις μεθόδους σύνδεσης SSH για το όνομα χρήστη σας, τις πέντε θύρες βάσεων δεδομένων, το https και τα headers του ιστοτόπου σας, το security.txt σας και το header X-Weboke-Cursus με τον κωδικό σας στο όνομα όπου εκτελείται το container σας. Επιπλέον, συμπληρώστε τη λίστα ελέγχου των μπλοκ 1 έως και 6 για όσα δεν μπορεί να δει το πρόγραμμα.

Άσκηση Z10.4: Τελική άσκηση: ο server σας από έξω

Δεν συνδεόμαστε και δεν δοκιμάζουμε κανέναν κωδικό πρόσβασης ή κλειδί. Πρώτα αποδεικνύετε ότι ο server είναι δικός σας: κάντε κλικ στο "Εμφάνιση του κωδικού μου" και τοποθετήστε ένα αρχείο /.well-known/weboke-cursus-<code>.txt που περιέχει μόνο αυτόν τον κωδικό στον web server του hostname σας. Το ανακτούμε απευθείας από κάθε διεύθυνση IP που ελέγχουμε (IPv4 και IPv6 χωριστά). Μια εγγραφή TXT δεν μετράει εδώ. Ο έλεγχος γίνεται από το heavy.webawere.nl (185.158.167.16 και 2a07:ae80:100:0:185:158:167:16), όχι από τον web server μας. Μόνο για εγγεγραμμένους εκπαιδευόμενους. Ανά server το πολύ 6 έλεγχοι την ώρα. Ο τελικός έλεγχος εκτελεί διαδοχικά τους ελέγχους των Z2.2, Z5.1, Z7.3, Z7.4 και Z9.4. Τα SSH, θύρες και https πρέπει να είναι πράσινα. Οι κεφαλίδες, το security.txt και η κεφαλίδα X-Weboke-Cursus είναι συστάσεις.








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

Άσκηση O10.4: Ο ρυθμός συντήρησής σας. Δημιουργήστε τον δικό σας φάκελο server και ρυθμό συντήρησης: τι κάνετε εβδομαδιαία, μηνιαία, ανά τρίμηνο και ανά έτος, και καταχωρίστε αυτές τις στιγμές στο ημερολόγιό σας.

Άσκηση O10.4: Ο ρυθμός συντήρησής σας

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




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

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

Μια στιγμή…

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

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

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