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

Εισαγωγή

This guide will walk you through the configuration of Linux to use FIDO Universal 2nd Factor, i.e. FIDO U2F with libpam-u2f and Nitrokey FIDO2.

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

Απαιτήσεις

  • Ubuntu 20.04 με Gnome Display Manager.

  • Διαμόρφωση του Nitrokey FIDO2 σύμφωνα με τις ακόλουθες οδηγίες ` <https://docs.nitrokey.com/fido2/linux>`__.

Οδηγίες

Μέθοδος GUI

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

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

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

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

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

    img5

Μέθοδος CLI

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

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

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

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

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

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

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

  2. Ρυθμίστε το 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
    
  3. Εγκατάσταση 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
    
  4. Προετοιμάστε τον κατάλογο

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

    $ mkdir ~/.config/Nitrokey
    

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

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

  5. Δημιουργία του αρχείου ρυθμίσεων 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.

  6. Backup

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

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

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Τροποποίηση της 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 [cue_prompt=Please touch the device.] prompt nouserok
    

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

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

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

    • If you would like to be prompted to touch the Nitrokey, cue option will make pam_u2f print Please touch the device. message. You can change the message in [cue_prompt=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 θα πρέπει να τροποποιηθεί προσθέτοντας την πρόσθετη γραμμή διαμόρφωσης στο τέλος του αρχείου.

  • If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the/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.