Βασικοί τρόποι για να ασφαλίσετε τη διαμόρφωση SSH σας

Ένας περιεκτικός οδηγός για την ασφάλεια των διαμορφώσεων SSH μέσω 8 βασικών πρακτικών, συμπεριλαμβανομένου του ελέγχου ταυτότητας βάσει κλειδιού, της απενεργοποίησης της σύνδεσης root, της κρυπτογράφησης, των ενημερώσεων, του 2FA, της καταγραφής, των στοιχείων ελέγχου πρόσβασης και της διαχείρισης κλειδιών. Ιδανικό για διαχειριστές συστημάτων και επαγγελματίες ασφαλείας που εφαρμόζουν βέλτιστες πρακτικές SSH.

Η διασφάλιση του SSH περιλαμβάνει ένα ευρύ φάσμα πιθανών τεχνικών, αλλά δεν είναι όλες εξίσου πρακτικές για κάθε περιβάλλον. Οι συστάσεις σε αυτό το άρθρο είναι ευρέως αναγνωρισμένες μέθοδοι υψηλής απόδοσης που εξισορροπούν την ευκολία εφαρμογής με την ισχυρή προστασία. Προέρχονται από πρότυπα που έχουν οριστεί από οργανισμούς όπως το NIST, το CERT και το έργο OpenSSH και αντικατοπτρίζουν βασικές αρχές που εφαρμόζει επίσης το SSL.com για την ασφάλεια των ψηφιακών πιστοποιητικών—την προστασία των κλειδιών, τη χρήση ισχυρής κρυπτογράφησης και τον περιορισμό της προνομιακής πρόσβασης.

Αφού ρυθμίσετε αυτές τις θεμελιώδεις βέλτιστες πρακτικές, μπορείτε να εξερευνήσετε πιο προηγμένες τακτικές—όπως το SSH που βασίζεται σε πιστοποιητικό, το port knocking ή το SSH μέσω VPN—όπως απαιτείται.

1. Χρησιμοποιήστε έλεγχο ταυτότητας βάσει κλειδιού αντί για κωδικούς πρόσβασης

Αυτό που είναι:

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

Γιατί είναι πιο ασφαλές:

  • Οι κωδικοί πρόσβασης είναι επιρρεπείς σε επιθέσεις ωμής βίας
  • Ένας εισβολέας πρέπει να αποκτήσει φυσικά το ιδιωτικό σας κλειδί για να εισέλθει, κάτι που είναι πολύ πιο δύσκολο από το να μαντέψει έναν κωδικό πρόσβασης

Τρόπος υλοποίησης:

Δημιουργήστε ένα ζεύγος κλειδιών

Σε Linux ή macOS, ανοίξτε ένα τερματικό και εκτελέστε:

ssh-keygen -t ed25519

Για επιπλέον ασφάλεια (εάν το ed25519 δεν είναι διαθέσιμο στο περιβάλλον σας), μπορείτε να χρησιμοποιήσετε:

ssh-keygen -t RSA -b 4096

Αντιγράψτε το Δημόσιο Κλειδί στον Διακομιστή σας

Μπορείτε να χρησιμοποιήσετε την εντολή ssh-copy-id (σε Linux/macOS) για να μεταφέρετε εύκολα το δημόσιο κλειδί σας:

ssh-copy-id user@server_address

Εάν το ssh-copy-id δεν είναι διαθέσιμο, προσθέστε μη αυτόματα τα περιεχόμενα του αρχείου id_ed25519.pub (ή id_rsa.pub) στο αρχείο ~/.ssh/authorized_keys του διακομιστή.

Απενεργοποιήστε τον έλεγχο ταυτότητας με κωδικό πρόσβασης

Στο /etc/ssh/sshd_config, ορίστε:

Κωδικός πρόσβασης

Επανεκκινήστε την υπηρεσία SSH:

sudo systemctl επανεκκίνηση ssh

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

2. Απενεργοποιήστε το Root Login

Αυτό που είναι:

Αποτρέψτε την απευθείας σύνδεση του χρήστη root μέσω SSH.

Γιατί είναι πιο ασφαλές:

  • Ο λογαριασμός root έχει απεριόριστα προνόμια και είναι ένας ελκυστικός στόχος για τους επιτιθέμενους
  • Η απενεργοποίηση της άμεσης πρόσβασης root αναγκάζει τους εισβολείς να μαντέψουν όχι μόνο ένα κλειδί ή έναν κωδικό πρόσβασης αλλά και ένα έγκυρο όνομα χρήστη

Τρόπος υλοποίησης:

Στο /etc/ssh/sshd_config, βρείτε ή προσθέστε:

PermitRootLogin όχι

Επανεκκινήστε το SSH:

sudo systemctl επανεκκίνηση ssh

Αυτό το βήμα περιορίζει αποτελεσματικά την επιφάνεια επίθεσης αφαιρώντας τον πιο ισχυρό λογαριασμό από εύκολη πρόσβαση.

3. Επιβολή ισχυρής κρυπτογράφησης και αλγόριθμων MAC

Αυτό που είναι:

Το SSH σάς επιτρέπει να καθορίσετε ποιους κρυπτογράφησης και κωδικούς ελέγχου ταυτότητας μηνυμάτων (MAC) θα χρησιμοποιήσετε για την κρυπτογράφηση δεδομένων και την επαλήθευση της ακεραιότητας των δεδομένων.

Γιατί είναι πιο ασφαλές:

  • Παλαιότεροι ή αδύναμοι αλγόριθμοι (π.χ. DES, RC4) μπορεί να είναι ευάλωτοι σε κρυπτογραφικές επιθέσεις
  • Η χρήση σύγχρονων κρυπτογράφησης (όπως AES-256) και ισχυρών MAC (όπως το HMAC-SHA2) βοηθά να διατηρείτε τα δεδομένα της περιόδου λειτουργίας σας εμπιστευτικά και αδιάβροχα

Τρόπος υλοποίησης:

Στο /etc/ssh/sshd_config, προσθέστε ή ενημερώστε τη λίστα κρυπτογράφησης/MAC:

Κρυπτογράφηση aes256-ctr,aes192-ctr,aes128-ctr
MAC hmac-sha2-256,hmac-sha2-512

Επανεκκινήστε το SSH:

sudo systemctl επανεκκίνηση ssh

Η διατήρηση της κρυπτογραφίας ενημερωμένη για το SSH είναι εξίσου σημαντική με τη διασφάλιση της χρήσης ασφαλών πρωτοκόλλων και κρυπτογράφησης σε TLS.

4. Διατηρήστε το SSH (και το σύστημά σας) ενημερωμένο

Αυτό που είναι:

Διασφάλιση ότι το OpenSSH, μαζί με το υπόλοιπο λειτουργικό σας σύστημα, λαμβάνει τακτικές ενημερώσεις κώδικα ασφαλείας.

Γιατί είναι πιο ασφαλές:

  • Το ξεπερασμένο λογισμικό περιέχει συχνά γνωστά τρωτά σημεία
  • Οι εισβολείς συχνά στοχεύουν παλαιότερες εκδόσεις με μη επιδιορθωμένα exploits

Τρόπος υλοποίησης:

Σε συστήματα που βασίζονται στο Debian ή στο Ubuntu:

sudo apt-get ενημέρωση && sudo apt-get upgrade

Σε συστήματα που βασίζονται σε CentOS, Fedora ή RHEL:

sudo yum update

Φροντίστε επίσης να ελέγξετε για ενημερώσεις υλικολογισμικού εάν εκτελείτε SSH σε συσκευές δικτύου ή άλλο υλικό.

5. Εφαρμογή ελέγχου ταυτότητας δύο παραγόντων ή πολλαπλών παραγόντων (2FA/MFA)

Αυτό που είναι:

Προσθέτει ένα επιπλέον επίπεδο ασφάλειας απαιτώντας κάτι εκτός από κωδικό πρόσβασης ή κλειδί (π.χ. έναν κωδικό μιας χρήσης στο τηλέφωνό σας).

Γιατί είναι πιο ασφαλές:

  • Ακόμα κι αν οι εισβολείς αποκτήσουν το κλειδί SSH σας, εξακολουθούν να χρειάζονται τον δεύτερο παράγοντα για να συνδεθούν
  • Βοηθά στην άμυνα κατά της κλοπής διαπιστευτηρίων

Τρόπος υλοποίησης:

Εγκαταστήστε και διαμορφώστε ένα εργαλείο MFA

Για παράδειγμα, Επαληθευτής Google μπορεί να εγκατασταθεί σε διακομιστές Linux και να ρυθμιστεί ως λειτουργική μονάδα PAM (Pluggable Authentication Modules). Ακολουθήστε τις οδηγίες εγκατάστασης ειδικά για τη διανομή σας.

Επεξεργασία /etc/pam.d/sshd και /etc/ssh/sshd_config

  • Ενεργοποιήστε το Google Authenticator ή άλλη λειτουργική μονάδα MFA
  • Ορίστε το ChallengeResponseAuthentication ναι και το AuthenticationMethods δημόσιο κλειδί, πληκτρολόγιο-διαδραστικό (ή όποιον συνδυασμό ταιριάζει στο περιβάλλον σας)

Επανεκκινήστε το SSH:

sudo systemctl επανεκκίνηση ssh

6. Ενεργοποιήστε την καταγραφή και την παρακολούθηση

Αυτό που είναι:

Καταγράψτε συμβάντα σύνδεσης SSH, παρακολουθήστε ύποπτη δραστηριότητα και λάβετε ειδοποιήσεις όταν κάτι δεν πάει καλά.

Γιατί είναι πιο ασφαλές:

  • Οι προσπάθειες εισβολής είναι συχνά ορατές στα αρχεία καταγραφής ως επαναλαμβανόμενες αποτυχημένες συνδέσεις ή μη εξουσιοδοτημένες ενέργειες
  • Η έγκαιρη ανίχνευση σημαίνει ότι μπορείτε να ανταποκριθείτε γρήγορα—μπλοκάροντας τις IP ή αλλάζοντας τις διαμορφώσεις πριν προκληθεί ζημιά

Τρόπος υλοποίησης:

Αύξηση της πολυγλωσσίας των αρχείων καταγραφής

Στο /etc/ssh/sshd_config, ορίστε:

LogLevel VERBOSE

Συνολικά ημερολόγια

Χρησιμοποιήστε εργαλεία πρόληψης εισβολής

fail2ban σαρώνει αρχεία καταγραφής και αποκλείει τις IP που εμφανίζουν κακόβουλες ενδείξεις, όπως πάρα πολλές αποτυχίες κωδικού πρόσβασης.

7. Εφαρμογή ελέγχων και περιορισμών πρόσβασης

Αυτό που είναι:

Περιορίστε ποιος μπορεί να συνδεθεί στο SSH και από πού, αποτρέποντας μη εξουσιοδοτημένα ή υπερβολικά εισερχόμενα αιτήματα.

Τρόποι για να το κάνετε:

Περιορισμοί τείχους προστασίας

Να επιτρέπεται SSH μόνο από γνωστές ή αξιόπιστες διευθύνσεις IP. Για παράδειγμα, σε Linux με ufw:

sudo ufw επιτρέψτε από 192.168.1.0/24 σε οποιαδήποτε θύρα 22

Διαμόρφωση θύρας

Η εκτέλεση SSH σε μια μη τυπική θύρα (π.χ. 2222) μπορεί να μειώσει τις προσπάθειες αυτοματοποιημένης σάρωσης. Δεν υποκαθιστά πραγματικά μέτρα ασφαλείας, αλλά μπορεί να μειώσει τον θόρυβο.

Περιορισμοί χρήστη/ομάδας

Στο /etc/ssh/sshd_config, καθορίστε:

AllowUsers alice bob

or

AllowGroups sshadmins

8. Χρησιμοποιήστε φράσεις πρόσβασης κλειδιών SSH και ασφαλή αποθήκευση κλειδιών

Αυτό που είναι:

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

Γιατί είναι πιο ασφαλές:

  • Ένα κλεμμένο αρχείο κλειδιού χωρίς φράση πρόσβασης μπορεί να παρέχει άμεση πρόσβαση
  • Οι φράσεις πρόσβασης λειτουργούν ως πρόσθετο επίπεδο κρυπτογράφησης στο τοπικό κλειδί σας

Τρόπος υλοποίησης:

Ορίστε μια φράση πρόσβασης κατά τη δημιουργία κλειδιού

ssh-keygen -t ed25519

(Θα σας ζητηθεί να εισαγάγετε μια φράση πρόσβασης.)

Προστατέψτε τα αρχεία κλειδιών σας

Περιορίστε τα δικαιώματα στο φάκελο .ssh και στα αρχεία κλειδιών:

chmod 700 ~ / .ssh
chmod 600 ~/.ssh/id_ed25519

Εξετάστε τις μονάδες ασφαλείας υλικού (HSM) ή τα Tokens

Για μεγαλύτερους οργανισμούς, η χρήση αποκλειστικού υλικού για αποθήκευση κλειδιών μπορεί να μετριάσει τους κινδύνους κλοπής ή κακόβουλου λογισμικού που βασίζεται σε λογισμικό.

Συμπέρασμα

Η ασφάλεια SSH συνοψίζεται σε επίπεδα προστασίας. Με την εφαρμογή ελέγχου ταυτότητας βάσει κλειδιού, την απενεργοποίηση της άμεσης πρόσβασης root, τη χρήση ισχυρής κρυπτογράφησης, την ενημέρωση, την απαίτηση ελέγχου ταυτότητας πολλαπλών παραγόντων, την παρακολούθηση αρχείων καταγραφής, τον περιορισμό της πρόσβασης και την προστασία των κλειδιών σας με φράσεις πρόσβασης, καλύπτετε τους πιο συνηθισμένους (και πιο σοβαρούς) κινδύνους.

Αυτά τα μέτρα ευθυγραμμίζονται με την ίδια ευρύτερη φιλοσοφία ασφάλειας που υποστηρίζει το SSL.com για τα ψηφιακά πιστοποιητικά: προστατεύστε τα κρυπτογραφικά κλειδιά, χρησιμοποιήστε ισχυρή κρυπτογράφηση, περιορίστε την προνομιακή πρόσβαση και παρακολουθήστε τα συστήματά σας. Μόλις καθιερώσετε αυτές τις θεμελιώδεις βέλτιστες πρακτικές, μπορείτε να εξερευνήσετε πιο προηγμένες επιλογές, όπως αρχές πιστοποιητικών SSH, χτύπημα θύρας ή εκτέλεση SSH μέσω VPN για να προσαρμόσετε περαιτέρω τη στάση ασφαλείας σας.

Μείνετε ενημερωμένοι και ασφαλείς

SSL.com είναι παγκόσμιος ηγέτης στον τομέα της κυβερνοασφάλειας, PKI και ψηφιακά πιστοποιητικά. Εγγραφείτε για να λαμβάνετε τα πιο πρόσφατα νέα του κλάδου, συμβουλές και ανακοινώσεις προϊόντων από SSL.com.

Θα θέλαμε τα σχόλιά σας

Συμμετάσχετε στην έρευνά μας και πείτε μας τις σκέψεις σας για την πρόσφατη αγορά σας.