Σύνδεση σε επιφάνεια εργασίας και πιστοποίηση χρηστών Linux#

(Nitrokey FIDO2 - Linux)

Εισαγωγή#

Αυτός ο οδηγός θα σας καθοδηγήσει στη διαμόρφωση του Linux για τη χρήση του FIDO Universal 2nd Factor, δηλαδή του FIDO U2F με libpam-u2f και Nitrokey FIDO2.

Αν θέλετε να συνδεθείτε στον υπολογιστή σας χρησιμοποιώντας Nitrokey Pro 2, Nitrokey Storage 2 και Nitrokey Start μπορείτε να επισκεφθείτε τις οδηγίες που είναι διαθέσιμες εδώ.

Απαιτήσεις#

  • Ubuntu 20.04 με Gnome Display Manager.

  • Διαμόρφωση του Nitrokey FIDO2 σύμφωνα με τις οδηγίες αυτές.

Οδηγίες#

Μέθοδος GUI#

  1. Στην κάτω αριστερή γωνία κάντε κλικ στο Show Applications και πληκτρολογήστε ρυθμίσεις στη γραμμή αναζήτησης ως εξής:

img1
  1. Μετακινηθείτε προς τα κάτω στη δεξιά μπάρα για να δείτε Users

img2
  1. Στην αριστερή γωνία κάντε κλικ στο Unlock και θα σας ζητηθεί ο κωδικός πρόσβασης

img3
  1. Επιλέξτε Administrator και πληκτρολογήστε το όνομα χρήστη και τον κωδικό πρόσβασης της επιλογής σας

img4
  1. Μόλις ολοκληρώσετε το βήμα 4 θα πρέπει να έχετε τελειώσει

img5

Μέθοδος CLI#

  1. Δημιουργήστε έναν εφεδρικό χρήστη και δώστε του root pivileges

Μπορείτε να το κάνετε χρησιμοποιώντας αυτές τις εντολές:

$ sudo adduser <backup_user>
$ sudo usermod -aG sudo <backup_user>

Σε περίπτωση που προτιμάτε να ρυθμίσετε το U2F για έναν μεμονωμένο χρήστη και έχετε κλειδωθεί από τη σύνοδο χρήστη, θα μπορείτε να συνδεθείτε με το <backup_user> και να προχωρήσετε με τη συντήρηση.

Προειδοποίηση

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

Ενδέχεται να χάσετε την πρόσβαση στα δεδομένα σας μετά τη διαμόρφωση των μονάδων PAM.

  1. Ρυθμίστε το rules για να αναγνωρίζει το Nitrokey FIDO2

Under /etc/udev/rules.d download 41-nitrokey.rules

$ cd /etc/udev/rules.d/
$ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules

Και επανεκκινήστε την υπηρεσία udev.

$ sudo systemctl restart udev
  1. Εγκατάσταση libpam-u2f

Στο Ubuntu 20.04 είναι δυνατό να κατεβάσετε απευθείας libpam-u2f από τα επίσημα αποθετήρια

$ sudo apt install libpam-u2f

Σημείωση

Κάντε κλικ για περισσότερες επιλογές

  • Εναλλακτικά, μπορείτε να δημιουργήσετε το libpam-u2f από το Git.

  • Για να επαληθεύσετε ότι η βιβλιοθήκη έχει εγκατασταθεί σωστά, εισαγάγετε την ακόλουθη εντολή:

$ file /lib/x86_64-linux-gnu/security/pam_u2f.so

Η έξοδος θα πρέπει να είναι κάτι σαν το ακόλουθο:

/lib/x86_64-linux-gnu/security/pam_u2f.so: \ ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),\ dynamically linked, BuildID[sha1]=1d55e1b11a97be2038c6a139579f6c0d91caedb1, stripped
  1. Προετοιμάστε τον κατάλογο

Δημιουργήστε .config/Nitrokey/ κάτω από τον κεντρικό σας κατάλογο

$ mkdir ~/.config/Nitrokey

Και συνδέστε το Nitrokey FIDO2.

Μόλις τελειώσουμε με την προετοιμασία, μπορούμε να αρχίσουμε να ρυθμίζουμε τον υπολογιστή ώστε να χρησιμοποιεί το Nitrokey FIDO2 για τον έλεγχο ταυτότητας 2ου παράγοντα κατά την είσοδο και sudo.

  1. Δημιουργία του αρχείου ρυθμίσεων U2F

Για τη δημιουργία του αρχείου ρυθμίσεων θα χρησιμοποιήσουμε το βοηθητικό πρόγραμμα pamu2fcfg που συνοδεύει το libpam-u2f. Για λόγους ευκολίας, θα γράψουμε απευθείας την έξοδο του βοηθητικού προγράμματος στο αρχείο u2f_keys κάτω από το .config/Nitrokey. Πρώτα συνδέστε το Nitrokey FIDO2 (αν δεν το έχετε ήδη κάνει) και πληκτρολογήστε την ακόλουθη εντολή:

$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys

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

<username>:Zx...mw,04...0a

Σημειώστε ότι η έξοδος θα είναι πολύ μεγαλύτερη, αλλά τα ευαίσθητα σημεία έχουν αφαιρεθεί εδώ. Για καλύτερη ασφάλεια, και αφού δημιουργηθεί το αρχείο config, θα μετακινήσουμε τον κατάλογο .config/Nitrokey κάτω από τον κατάλογο etc/ με αυτή την εντολή:

$ sudo mv ~/.config/Nitrokey /etc

Πρακτική συμβουλή

  • Το αρχείο κάτω από το .config/Nitrokey πρέπει να ονομάζεται u2f_keys

  • Συνιστάται να δοκιμάσετε πρώτα τις οδηγίες με έναν μόνο χρήστη. Για το σκοπό αυτό η προηγούμενη εντολή λαμβάνει την επιλογή -u, για να καθορίσετε έναν χρήστη, όπως στο παρακάτω παράδειγμα:

$ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
  • Για τη διαμόρφωση μεμονωμένων χρηστών θα πρέπει να δείξετε τον κατάλογο home στο επόμενο βήμα ή να μην συμπεριλάβετε την επιλογή authfile στη διαμόρφωση PAM.

  1. Backup

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

Για να ρυθμίσετε ένα εφεδρικό κλειδί, επαναλάβετε την παραπάνω διαδικασία και χρησιμοποιήστε pamu2fcfg -n. Αυτό θα παραλείψει το πεδίο <username>, και η έξοδος μπορεί να προσαρτηθεί στη γραμμή με το <username> ως εξής:

<username>:Zx...mw,04...0a:xB...fw,04...3f
  1. Τροποποίηση της Pluggable Authentication Module PAM

Το τελευταίο βήμα είναι η ρύθμιση των αρχείων της ενότητας PAM στο πλαίσιο /etc/pam.d/. Σε αυτόν τον οδηγό θα τροποποιήσουμε το αρχείο common-auth καθώς διαχειρίζεται τις ρυθμίσεις αυθεντικοποίησης που είναι κοινές για όλες τις υπηρεσίες, αλλά είναι δυνατές και άλλες επιλογές. Μπορείτε να τροποποιήσετε το αρχείο με την ακόλουθη εντολή:

$ cd /etc/pam.d
$ sudo $editor common-auth

Και προσθέστε τις ακόλουθες γραμμές:

#Nitrokey FIDO2 config
auth    sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue prompt nouserok

Πρακτική συμβουλή

  • Εφόσον χρησιμοποιούμε την Κεντρική αντιστοίχιση ελέγχου ταυτότητας, πρέπει να δηλώσουμε στο pam_u2f τη θέση του αρχείου που θα χρησιμοποιηθεί με την επιλογή authfile.

  • Εάν ξεχνάτε συχνά να τοποθετήσετε το κλειδί, prompt η επιλογή κάνει pam_u2f εκτύπωση Insert your U2F device, then press ENTER. και σας δίνει την ευκαιρία να εισάγετε το κλειδί Nitrokey.

  • Εάν θέλετε να σας ζητηθεί να αγγίξετε το κλειδί Nitrokey, cue η επιλογή θα κάνει pam_u2f την εκτύπωση Please touch the device. μηνύματος.

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

Μόλις τροποποιήσουμε το common-auth, μπορούμε να αποθηκεύσουμε και να βγούμε από το αρχείο.

Μπορείτε να δοκιμάσετε τη διαμόρφωση πληκτρολογώντας sudo ls στο τερματικό. Θα πρέπει να σας ζητηθεί το μήνυμα Please touch the device. και να έχετε μια παρόμοια έξοδο στο τερματικό:

nitrouser@nitrouser:~$ sudo ls
[sudo] password for nitrouser:  Please touch the device.

Μπορείτε επίσης να δοκιμάσετε τη διαμόρφωσή σας αποσυνδεόμενοι από τη σύνοδο χρήστη και επανερχόμενοι. Μια παρόμοια οθόνη θα εμφανιστεί μόλις αποσυνδέσετε/ανασυνδέσετε το Nitrokey FIDO2 και πληκτρολογήσετε τον κωδικό πρόσβασής σας:

img6

Χρήση#

Μετά την τροποποίηση της μονάδας PAM, θα μπορείτε να δοκιμάσετε τη διαμόρφωσή σας αμέσως, αλλά συνιστάται να επανεκκινήσετε τον υπολογιστή σας και να αποσυνδέσετε/ανασυνδέσετε το Nitrokey FIDO2.

Αφού ελέγξετε σωστά τις οδηγίες αυτού του οδηγού (και δημιουργήσετε ένα αντίγραφο ασφαλείας), συνιστάται η χρήση είτε της σημαίας ελέγχου required είτε της σημαίας ελέγχου requisite αντί της σημαίας ελέγχου sufficient.

Οι σημαίες required και requisite παρέχουν αυστηρότερο έλεγχο πρόσβασης και καθιστούν το Nitrokey FIDO2 απαραίτητο για τη σύνδεση ή/και τη χρήση της διαμορφωμένης υπηρεσίας.

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

Ενότητες PAM#

Υπάρχουν διάφορα αρχεία ενοτήτων PAM που μπορούν να τροποποιηθούν ανάλογα με τις ανάγκες σας:

  • Τροποποιώντας το αρχείο /etc/pam.d/common-auth, θα μπορείτε να χρησιμοποιήσετε το Nitrokey FIDO για τον έλεγχο ταυτότητας 2ου παράγοντα για τη γραφική σύνδεση και sudo. Σημείωση: Το common-auth θα πρέπει να τροποποιηθεί με την προσθήκη της πρόσθετης γραμμής διαμόρφωσης στο τέλος του αρχείου.

  • Αν θέλετε να χρησιμοποιήσετε τον έλεγχο ταυτότητας FIDO U2F αποκλειστικά για τη γραφική σύνδεση του Gnome, ίσως προτιμήσετε να τροποποιήσετε το/etc/pam.d/gdm-password

  • Εναλλακτικά, μπορείτε απλώς να τροποποιήσετε το αρχείο /etc/pam.d/sudo εάν επιθυμείτε να χρησιμοποιήσετε το FIDO U2F όταν χρησιμοποιείτε την εντολή sudo.

Σημαίες ελέγχου#

Στο βήμα 7 χρησιμοποιήσαμε τη σημαία ελέγχου sufficient για να καθορίσουμε τη συμπεριφορά της μονάδας PAM όταν το Nitrokey είναι συνδεδεμένο ή όχι. Ωστόσο, είναι δυνατό να αλλάξετε αυτή τη συμπεριφορά χρησιμοποιώντας τις ακόλουθες σημαίες ελέγχου:

  • required: Αυτή είναι η πιο κρίσιμη σημαία. Το αποτέλεσμα της ενότητας πρέπει να είναι επιτυχές για να συνεχιστεί ο έλεγχος ταυτότητας. Αυτή η σημαία μπορεί να σας αποκλείσει από τον υπολογιστή σας, εάν δεν έχετε πρόσβαση στο Nitrokey.

  • requisite: Παρόμοια με το required, ωστόσο, στην περίπτωση που μια συγκεκριμένη ενότητα επιστρέφει αποτυχία, ο έλεγχος επιστρέφεται απευθείας στην εφαρμογή ή στην ανώτερη στοίβα PAM. Αυτή η σημαία μπορεί επίσης να σας αποκλείσει από τον υπολογιστή σας, εάν δεν έχετε πρόσβαση στο κλειδί Nitrokey.

  • sufficient: Το αποτέλεσμα της ενότητας αγνοείται εάν αποτύχει. Η σημαία sufficient θεωρείται ασφαλής για σκοπούς δοκιμών.

  • optional: Η επιτυχία ή η αποτυχία αυτής της μονάδας είναι σημαντική μόνο εάν είναι η μόνη μονάδα στη στοίβα που σχετίζεται με αυτό το service+type. Η σημαία optional θεωρείται ασφαλής για χρήση για σκοπούς δοκιμών.

Προειδοποίηση

  • Εάν έχει οριστεί required ή requisite, η αποτυχία του ελέγχου ταυτότητας U2F θα προκαλέσει αποτυχία του συνολικού ελέγχου ταυτότητας. Η αποτυχία θα συμβεί όταν το ρυθμισμένο Nitrokey FIDO δεν είναι συνδεδεμένο, χαμένο ή καταστραμμένο.

  • Θα χάσετε την πρόσβαση στον υπολογιστή σας εάν έχετε ρυθμίσει λάθος τη μονάδα PAM και έχετε χρησιμοποιήσει τις σημαίες required ή requisite.

  • Θα χάσετε επίσης τη δυνατότητα χρήσης του sudo εάν ρυθμίσετε την αντιστοίχιση κεντρικού ελέγχου ταυτότητας. και χρησιμοποιήσατε τις σημαίες required ή requisite.