Δείτε πως μπορείτε να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων (2FA) για σύνδεση SSH σε ένα μηχάνημα με linux, χρησιμοποιώντας το Google PAM (Pluggable Authentication Module) και την εφαρμογή Microsoft Authenticator ή τον Επαληθευτή Google για κινητά.
Το 2FA σάς επιτρέπει να προσθέσετε ένα επιπλέον επίπεδο ασφαλείας όταν πραγματοποιείτε έλεγχο ταυτότητας σε έναν κεντρικό υπολογιστή Linux μέσω SSH. Αφού ενεργοποιήσετε το 2FA, θα πρέπει να εισαγάγετε έναν εφάπαξ ψηφιακό κωδικό πρόσβασης (TOTP) από το smartphone σας, εκτός από το όνομα χρήστη και τον κωδικό πρόσβασής σας στο SSH του Linux.
Πάμε να δούμε τα βήματα:
Βήμα 1: Εγκαταστήστε στο κινητό σας τηλέφωνο την εφαρμογή Microsoft Authenticator. Είναι διαθέσιμη τόσο στο Google Store όσο και στο App Store. Αν θέλετε, μπορείτε να χρησιμοποιήσετε τον Επαληθευτή Google. Στο παράδειγμα μας θα χρησιμοποιήσουμε το Microsoft Authenticator, αλλά τα βήματα είναι περίπου ίδια και για το Goolge.
Βήμα 2: Ανοίξτε τον Linux υπολογιστή σας, και τρέξτε ένα παράθυρο SSH. Εγκαταστήστε το Google PAM Authenticator χρησιμοποιώντας τον διαχειριστή πακέτων:
Debian/Ubuntu: sudo apt-get install libpam-google-authenticator
RHEL/CentOS/Fedora:yum install google-authenticator
Βήμα 3: Εκτελέστε την εντολή στο ssh: google-authenticator
Το εργαλείο θα δημιουργήσει και θα εμφανίσει έναν κωδικό QR στην κονσόλα
Βήμα 4: Εκτελέστε την εφαρμογή Microsoft Authenticator στο smartphone σας. Επιλέξτε Add account > Personal account > Scan a QR Code (Προσθήκη λογαριασμού > Προσωπικός λογαριασμός > Σάρωση κωδικού QR). Ή αν έχετε το Επαληθευτή Google πατήστε το + και μετά το Σάρωση κωδικού QR.
Βήμα 5: Σαρώστε τον κωδικό QR με την εφαρμογή. Μια νέα καταχώρηση για το όνομα χρήστη και τον υπολογιστή σας θα εμφανιστεί στην εφαρμογή Authenticator. Θα χρησιμοποιείτε αυτό το στοιχείο για να λαμβάνετε κωδικούς πρόσβασης μίας χρήσης, για να συνδεθείτε στον υπολογιστή σας.
Σημειώστε ότι ένα μυστικό κλειδί και κωδικοί έκτακτης ανάγκης εμφανίζονται στην κονσόλα του linux σας. Θα χρειαστείτε αυτούς τους κωδικούς για να συνδεθείτε με τον κεντρικό υπολογιστή σας εάν χάσετε/σπάσετε το smartphone σας. Φυλάξτε τα σε ασφαλές μέρος!
Βήμα 6: Στη συνέχεια, το google-authenticator στον υπολογιστή linux εμφανίζει μερικές άλλες ερωτήσεις:
- Do you want authentication tokens to be time-based? (Θέλετε τα διακριτικά ελέγχου ταυτότητας να βασίζονται σε χρόνο;) Y -> Enter (αυτή την ερώτηση μπορεί να την συναντήσετε και πριν την εμφάνιση του QR κωδικού)
- Do you want me to update your “/home/sysops/.google_authenticator” file? (Θέλετε να ενημερώσω το αρχείο σας “/home/sysops/.google_authenticator”;) Y -> Enter
- Do you want to disallow multiple uses of the same authentication token? (Θέλετε να απαγορεύσετε πολλές χρήσεις του ίδιου διακριτικού ελέγχου ταυτότητας;) Y -> Enter
- By default, tokens are good for 30 seconds… (Από προεπιλογή, τα διακριτικά είναι μια χαρά για 30 δευτερόλεπτα…) Y -> Enter
Από προεπιλογή, το διακριτικό μιας χρήσης αλλάζει κάθε 30 δευτερόλεπτα. Αυτή είναι η καλύτερη επιλογή για τις περισσότερες περιπτώσεις. Ωστόσο, είναι σημαντικό ο κεντρικός υπολογιστής linux και το smartphone σας να συγχρονίζονται χρονικά. - Do you want to enable rate-limiting? (Θέλετε να ενεργοποιήσετε τον περιορισμό τιμών;) Y -> Enter
Μπορείτε να διαμορφώσετε όλες τις ρυθμίσεις ταυτόχρονα: $ google-authenticator -t -f -d -w 3 -e 5 -r 3 -R 30
-t – ενεργοποιεί τη σύνδεση με χρήση κωδικού μίας χρήσης
-f – αποθηκεύει τη διαμόρφωση σε ~/.google_authenticator
-d – αρνείται τη χρήση προηγούμενων κωδικών
-w 3 – επιτρέπει τη χρήση ενός προηγούμενου και ενός επόμενου διακριτικού (εάν ο χρόνος δεν συγχρονίζεται)
-e 5 – δημιουργεί 5 κωδικούς έκτακτης ανάγκης
-r 3 -R 30 – επιτρέπει τη χρήση όχι περισσότερων από 3 συνδέσεων κάθε 30 δευτερόλεπτα
Βήμα 7: Στη συνέχεια, προσθέστε την ακόλουθη οδηγία στο /etc/pam.d/sshd: auth required pam_google_authenticator.so nullok
Η επιλογή nullok επιτρέπει σε έναν χρήστη που δεν έχει ρυθμίσει τον έλεγχο ταυτότητας δύο παραγόντων να συνδεθεί χρησιμοποιώντας ένα όνομα χρήστη και έναν κωδικό πρόσβασης. Μετά τη διαμόρφωση και τη δοκιμή 2FA, συνιστάται να απενεργοποιήσετε την επιλογή απαίτησης χρήσης ελέγχου ταυτότητας δύο παραγόντων.
Βήμα 8: Στη συνέχεια επεξεργαστείτε το /etc/ssh/sshd_config: sudo mcedit /etc/ssh/sshd_config
(ή με όποιο άλλο editor έχετε)
Αλλάξτε την ChallengeResponseAuthentication τιμή σε Yes
Αποθηκεύστε τις αλλαγές στο sshd_config και επανεκκινήστε το sshd με την εντολή: service ssh restart
Βήμα 9: Στη συνέχεια, προσπαθήστε να συνδεθείτε στον υπολογιστή σας linux μέσω SSH. Θα σας ζητηθεί να εισαγάγετε έναν κωδικό επαλήθευσης πριν εισαγάγετε έναν κωδικό πρόσβασης.
Βήμα 10: Ανοίξτε την εφαρμογή Authenticator στο smartphone σας και βρείτε τον χρήστη του υπολογιστή Linux. Εισαγάγετε στην console τον κωδικό πρόσβασης μίας χρήσης 6 χαρακτήρων που δημιούργησε για εσάς ο Επαληθευτής.
Σημειώστε ότι ο κωδικός πρόσβασης μίας χρήσης ισχύει για περιορισμένο χρονικό διάστημα (30 δευτερόλεπτα από προεπιλογή). Εάν έχετε εισαγάγει τον σωστό κωδικό, θα σας ζητηθεί να εισαγάγετε και τον κωδικό πρόσβασης χρήστη του linux.
Εάν η σύνδεση είναι επιτυχής, εμφανίζεται η ακόλουθη γραμμή στο αρχείο καταγραφής ελέγχου ταυτότητας: cat /var/log/auth.log
Accepted google_authenticator for sysops
Εάν εισαχθεί λανθασμένος κωδικός, το αρχείο καταγραφής εμφανίζει σφάλματα:
Invalid verification code for sysops
Εάν θέλετε να χρησιμοποιήσετε το 2FA μαζί με τον έλεγχο ταυτότητας κλειδιού SSH, προσθέστε τις ακόλουθες οδηγίες στο /etc/ssh/sshd_config:
PasswordAuthentication no
PubkeyAuthentication yes
AuthenticationMethods publickey,keyboard-interactive