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

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

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

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

Προβολή

Hardening και αρχές του CIS

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

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

Βασικές έννοιες: hardening, επιφάνεια επίθεσης, ελάχιστη εγκατάσταση, ελάχιστα δικαιώματα (least privilege), πολυεπίπεδη άμυνα (defense in depth), CIS Benchmarks, Level 1 και Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, συγχρονισμός ώρας

Τι είναι το hardening;

Μια νέα εγκατάσταση Debian ή Ubuntu είναι αρκετά ασφαλής, αλλά έχει φτιαχτεί για να λειτουργεί σε όσο το δυνατόν περισσότερα περιβάλλοντα. Το hardening (θωράκιση) είναι η προσαρμογή του server σας ακριβώς στη δική σας χρήση: αφαιρείτε ό,τι δεν χρειάζεστε και κάνετε αυστηρότερο ό,τι μπορεί να γίνει αυστηρότερο, χωρίς να χαλάσουν οι δικές σας υπηρεσίες.

Στις προηγούμενες ενότητες το έχετε ήδη κάνει κομμάτι κομμάτι: SSH με κλειδιά (ενότητα 2), ένας κανονικός χρήστης με sudo (ενότητα 3), αυτόματες ενημερώσεις (ενότητα 4), ένα firewall και fail2ban (ενότητα 5), υπηρεσίες με δικούς τους χρήστες (ενότητα 6). Αυτό το μάθημα βάζει αυτά τα μεμονωμένα μέτρα σε ένα πλαίσιο, ώστε να δείτε τι λείπει ακόμη.

Τέσσερις αρχές

1. Μικρή επιφάνεια επίθεσης. Ό,τι δεν υπάρχει, δεν μπορεί να χαλάσει. Κάθε εγκατεστημένη υπηρεσία, κάθε ανοιχτή θύρα, κάθε λογαριασμός είναι μια πιθανή είσοδος (μάθημα 5.1). Εγκαταστήστε τα ελάχιστα και καθαρίστε ό,τι δεν χρησιμοποιείτε πια:

anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -l

Αν εκτελείται μια υπηρεσία που δεν γνωρίζετε, ερευνήστε τι κάνει (μάθημα 6.1). Αν δεν τη χρειάζεστε, αφαιρέστε το πακέτο.

2. Ελάχιστα δικαιώματα. Κάθε χρήστης και κάθε πρόγραμμα παίρνει μόνο τα δικαιώματα που χρειάζεται (μάθημα 3.2). Καμία καθημερινή εργασία ως root, υπηρεσίες με δικούς τους χρήστες, χρήστες βάσης δεδομένων με δικαιώματα μόνο στη δική τους βάση, κανένα chmod 777.

3. Πολυεπίπεδη άμυνα. Υποθέστε ότι ένα μέτρο θα αποτύχει. Μια βάση δεδομένων που ακούει μόνο στο 127.0.0.1 και βρίσκεται πίσω από firewall και έχει ισχυρό κωδικό πρόσβασης παραμένει ασφαλής ακόμη κι αν ένα από τα τρία καταρρεύσει κατά λάθος. Αυτό λέγεται defense in depth.

4. Να γνωρίζετε τι συμβαίνει. Το hardening δεν σημαίνει μόνο κλείσιμο, αλλά και ορατότητα: αρχεία καταγραφής που διατηρούνται (μάθημα 6.2), παρακολούθηση που ειδοποιεί (μάθημα 8.3) και αντίγραφα ασφαλείας με τα οποία μπορείτε να επιστρέψετε (ενότητα 8). Χωρίς αυτά, θα αντιληφθείτε μια εισβολή μόνο όταν θα είναι πολύ αργά.

Τα CIS Benchmarks

Το Center for Internet Security (CIS) είναι ένας αμερικανικός μη κερδοσκοπικός οργανισμός που δημιουργεί τα CIS Benchmarks: εκτενείς λίστες με προτεινόμενες ρυθμίσεις ανά προϊόν, που συντάσσονται από εθελοντές του χώρου της ασφάλειας. Υπάρχουν περισσότερα από εκατό, και για Debian Linux και Ubuntu Linux, ανά έκδοση. Μπορείτε να κατεβάσετε τα pdf δωρεάν για μη εμπορική χρήση, αφού δημιουργήσετε λογαριασμό.

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

  • Level 1: βασικά μέτρα που μπορείτε να εφαρμόσετε σχετικά γρήγορα, με σαφές όφελος ασφάλειας, χωρίς ο server να γίνεται πολύ λιγότερο εύχρηστος. Για τους περισσότερους servers αυτός είναι ο στόχος.
  • Level 2: επιπλέον μέτρα για περιβάλλοντα όπου η ασφάλεια έχει προτεραιότητα (πολυεπίπεδη άμυνα). Μπορεί να κοστίσουν λειτουργίες ή ταχύτητα και, σύμφωνα με το ίδιο το CIS, να προκαλέσουν ζημιά αν τα εφαρμόσετε χωρίς προσοχή.

Για Linux υπάρχουν ξεχωριστά προφίλ για servers και για σταθμούς εργασίας.

Παραδείγματα θεμάτων σε ένα benchmark για Linux: ξεχωριστά partitions για /tmp και /var/log, απενεργοποίηση αχρησιμοποίητων συστημάτων αρχείων και πρωτοκόλλων δικτύου, συγχρονισμός ώρας, καταγραφή ελέγχου (audit logging), ρυθμίσεις του SSH (πολλές από αυτές τις γνωρίζετε από το μάθημα 2.2), πολιτική κωδικών πρόσβασης, δικαιώματα σε σημαντικά αρχεία και το firewall.

Εκτός από τα Benchmarks υπάρχουν τα CIS Controls (σήμερα έκδοση 8.1): όχι ρυθμίσεις ανά προϊόν, αλλά μια λίστα με δεκαοκτώ ομάδες μέτρων για έναν ολόκληρο οργανισμό, όπως "απογραφή λογισμικού", "διαχείριση ευπαθειών" και "ανάκτηση δεδομένων". Για έναν μεμονωμένο server τα Benchmarks είναι πιο χρήσιμα· τα Controls βοηθούν όταν σκέφτεστε για ολόκληρη την επιχείρησή σας.

Χρησιμοποιήστε ένα benchmark με σύνεση

Ένα benchmark δεν είναι κουμπί που απλώς πατάτε. Μερικοί κανόνες:

  • Πρώτα κατανοήστε, μετά εφαρμόστε. Κάθε σύσταση έχει μια εξήγηση. Αν δεν καταλαβαίνετε τον λόγο, μην την εφαρμόσετε ακόμη.
  • Ένα πράγμα τη φορά, με δοκιμή. Μια αυστηρή ρύθμιση για τον kernel ή το δίκτυο μπορεί να χαλάσει την εφαρμογή σας. Δημιουργήστε ένα snapshot, αλλάξτε ένα πράγμα και ελέγξτε ότι όλα λειτουργούν ακόμη.
  • Δεν είναι όλα για εσάς. Μια σύσταση για ξεχωριστό partition /var/log είναι δύσκολη σε ένα υπάρχον VPS και προσφέρει λίγα. Επιλέξτε συνειδητά και σημειώστε γιατί δεν κάνετε κάτι.
  • Προσοχή στα έτοιμα scripts hardening από το internet που εφαρμόζουν "όλο το CIS" με μία κίνηση. Μπορεί να αλλάξουν το SSH, το firewall ή τα αρχεία καταγραφής σας με τρόπο που να κλειδώσετε τον εαυτό σας έξω, και μετά δεν θα ξέρετε τι έχει αλλάξει.

Lynis: ένας έλεγχος από μέσα

Το Lynis είναι ένα δωρεάν πρόγραμμα ανοιχτού κώδικα (GPL) της CISOfy που ελέγχει τον server σας από μέσα και δίνει ανά θέμα προειδοποιήσεις και προτάσεις. Το ίδιο δεν αλλάζει τίποτα· απλώς αναφέρει.

anna@web1:~$ sudo apt install lynis
anna@web1:~$ sudo lynis audit system
...
  -[ Lynis 3.x Results ]-

  Warnings (1):
  ----------------------------
  ! Found one or more vulnerable packages. [PKGS-7392]

  Suggestions (34):
  ----------------------------
  * Consider hardening SSH configuration [SSH-7408]
      - Details  : AllowTcpForwarding (set YES to NO)
  ...
  Lynis security scan details:

  Hardening index : 66 [#############       ]
  Tests performed : 262

Πώς το διαβάζετε:

  • Τα Warnings είναι πράγματα που πρέπει πραγματικά να εξετάσετε, όπως πακέτα με γνωστά κενά ασφαλείας (τότε έχετε εκκρεμείς ενημερώσεις, μάθημα 4.1).
  • Τα Suggestions είναι συμβουλές. Πολλές είναι χρήσιμες, κάποιες δεν ταιριάζουν στον server σας. Μια πρόταση να απενεργοποιήσετε το AllowTcpForwarding, για παράδειγμα, χαλάει τα SSH tunnels σας (μάθημα 2.3). Επιλέξτε συνειδητά.
  • Κάθε μήνυμα έχει έναν κωδικό σε αγκύλες, όπως [SSH-7408]. Με αυτόν αναζητάτε στο αρχείο καταγραφής /var/log/lynis.log τι ακριβώς ελέγχθηκε.
  • Ο hardening index είναι ένας αριθμός έως το 100. Είναι ένδειξη κατεύθυνσης, όχι βαθμός που πρέπει να κυνηγάτε. Μια αύξηση μετά τις αλλαγές σας δείχνει ότι προοδεύετε· το 100 δεν είναι στόχος.

Η έκδοση του Lynis στο αποθετήριο πακέτων της διανομής σας μπορεί να είναι κάπως παλαιότερη. Για έναν πρώτο έλεγχο αυτό δεν αποτελεί πρόβλημα.

Τρία ακόμη θέματα εν συντομία

  • Τα AppArmor και SELinux είναι επιπλέον επίπεδα ασφάλειας στον kernel που ορίζουν ανά πρόγραμμα τι επιτρέπεται να κάνει. Τα Debian και Ubuntu χρησιμοποιούν AppArmor, ενεργό από προεπιλογή· τα AlmaLinux και Rocky χρησιμοποιούν SELinux. Μην τα απενεργοποιείτε "επειδή κάτι δεν λειτουργεί": βρείτε το μήνυμα στο journal και λύστε το στοχευμένα.
  • Το sysctl ορίζει ρυθμίσεις του kernel, για παράδειγμα για το δίκτυο. Οι προεπιλεγμένες τιμές των Debian και Ubuntu είναι λογικές. Αν θέλετε να αλλάξετε κάτι, βάλτε το σε δικό σας αρχείο στο /etc/sysctl.d/ (το Debian 13 δεν διαβάζει πλέον το /etc/sysctl.conf).
  • Ώρα: ένας server με λάθος ώρα κάνει τα αρχεία καταγραφής άχρηστα και μπορεί να θεωρήσει πιστοποιητικά άκυρα. Ελέγξτε με timedatectl ότι εμφανίζεται "System clock synchronized: yes".

Στην πράξη

Στη WebOké, όπως και σε άλλους παρόχους VPS, διαχειρίζεστε μόνοι σας την ασφάλεια μέσα στον server σας: ο πάροχος φροντίζει για το hardware, το δίκτυο και την πλατφόρμα εικονικοποίησης. Αυτή η σειρά μαθημάτων είναι αυτοβοήθεια: κανείς δεν παρακολουθεί τον server σας. Πριν από έναν γύρο hardening δημιουργήστε ένα snapshot στον πίνακα ελέγχου και να ξέρετε πώς ανοίγετε την κονσόλα, σε περίπτωση που παρ' όλα αυτά κλειδώσετε τον εαυτό σας έξω.

Σύνοψη

  • Hardening σημαίνει να προσαρμόζετε τον server σας στη δική σας χρήση: αφαιρείτε ό,τι δεν χρειάζεται, αυστηροποιείτε ό,τι μπορεί.
  • Τέσσερις αρχές: μικρή επιφάνεια επίθεσης, ελάχιστα δικαιώματα, πολυεπίπεδη άμυνα και ορατότητα του τι συμβαίνει.
  • Τα CIS Benchmarks δίνουν ανά προϊόν εκατοντάδες συστάσεις στα προφίλ Level 1 (βασικό) και Level 2 (αυστηρό)· χρησιμοποιήστε τα με κατανόηση, ένα βήμα τη φορά.
  • Το Lynis ελέγχει τον server σας από μέσα και δίνει προειδοποιήσεις, προτάσεις και έναν hardening index· το ίδιο δεν αλλάζει τίποτα.
  • Μην απενεργοποιείτε AppArmor/SELinux· δικές σας ρυθμίσεις kernel στο /etc/sysctl.d/· ελέγξτε τον συγχρονισμό ώρας.

Κουίζ

1. Ποια είναι η ιδέα πίσω από την πολυεπίπεδη άμυνα (defense in depth);



2. Ποια είναι η διαφορά μεταξύ Level 1 και Level 2 στα CIS Benchmarks;



3. Το Lynis προτείνει να απενεργοποιήσετε το AllowTcpForwarding στο SSH. Χρησιμοποιείτε SSH tunnels για να φτάσετε στη βάση δεδομένων σας. Τι κάνετε;



4. Ένας συνάδελφος βρίσκει στο internet ένα script που εφαρμόζει "όλες τις συστάσεις του CIS με μία κίνηση" στον server σας. Ποιος είναι ο μεγαλύτερος κίνδυνος;



5. Η εφαρμογή σας δεν λειτουργεί και στο journal υπάρχει μια άρνηση από το AppArmor. Ποια είναι η σωστή προσέγγιση;



Άσκηση

Άσκηση O10.1: Έλεγχος ασφαλείας με το Lynis. Δημιουργήστε ένα snapshot, εγκαταστήστε το Lynis στον server σας και εκτελέστε sudo lynis audit system. Σημειώστε τον hardening index, όλες τις προειδοποιήσεις και πέντε προτάσεις. Επιλέξτε τρεις προτάσεις που θα εφαρμόσετε και μία που συνειδητά δεν θα εφαρμόσετε, μαζί με τον λόγο. Στη συνέχεια εκτελέστε ξανά τον έλεγχο και σημειώστε τον νέο index.

Άσκηση O10.1: Έλεγχος ασφαλείας με το Lynis

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




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

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

Μια στιγμή…

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

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

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