Έλεγχος ταυτότητας δύο παραγόντων στο OpenVPN με bot Telegram

Το άρθρο περιγράφει τη ρύθμιση ενός διακομιστή OpenVPN για την ενεργοποίηση του ελέγχου ταυτότητας δύο παραγόντων με ένα bot Telegram που θα στείλει ένα αίτημα επιβεβαίωσης κατά τη σύνδεση.

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

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

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

Επιτρέψτε μου να κάνω μια κράτηση αμέσως: για την υλοποίηση θα χρειαστεί να συνδέσετε έναν διακομιστή ελέγχου ταυτότητας τρίτου κατασκευαστή multifactor.ru, στον οποίο μπορείτε να χρησιμοποιήσετε ένα δωρεάν τιμολόγιο για τις ανάγκες σας.

Αρχή της λειτουργίας

  1. Το OpenVPN χρησιμοποιεί την προσθήκη openvpn-plugin-auth-pam για έλεγχο ταυτότητας
  2. Το πρόσθετο ελέγχει τον κωδικό πρόσβασης του χρήστη στον διακομιστή και ζητά τον δεύτερο παράγοντα μέσω του πρωτοκόλλου RADIUS στην υπηρεσία Multifactor
  3. Το Multifactor στέλνει ένα μήνυμα στον χρήστη μέσω του Telegram bot επιβεβαιώνοντας την πρόσβαση
  4. Ο χρήστης επιβεβαιώνει το αίτημα πρόσβασης στη συνομιλία Telegram και συνδέεται στο VPN

Εγκατάσταση διακομιστή OpenVPN

Υπάρχουν πολλά άρθρα στο Διαδίκτυο που περιγράφουν τη διαδικασία εγκατάστασης και διαμόρφωσης του OpenVPN, επομένως δεν θα τα επαναλάβουμε. Εάν χρειάζεστε βοήθεια, υπάρχουν αρκετοί σύνδεσμοι για σεμινάρια στο τέλος του άρθρου.

Ρύθμιση του Multifactor

Παω σε Σύστημα ελέγχου πολλαπλών παραγόντων, μεταβείτε στην ενότητα "Πόροι" και δημιουργήστε ένα νέο VPN.
Μόλις δημιουργηθεί, θα έχετε στη διάθεσή σας δύο επιλογές: NAS-αναγνωριστικό и Κοινό μυστικό, θα απαιτηθούν για επακόλουθη διαμόρφωση.

Έλεγχος ταυτότητας δύο παραγόντων στο OpenVPN με bot Telegram

Στην ενότητα "Ομάδες", μεταβείτε στις ρυθμίσεις της ομάδας "Όλοι οι χρήστες" και αφαιρέστε τη σημαία "Όλοι οι πόροι", ώστε μόνο οι χρήστες μιας συγκεκριμένης ομάδας να μπορούν να συνδεθούν στον διακομιστή VPN.

Δημιουργήστε μια νέα ομάδα "Χρήστες VPN", απενεργοποιήστε όλες τις μεθόδους ελέγχου ταυτότητας εκτός από το Telegram και υποδείξτε ότι οι χρήστες έχουν πρόσβαση στον δημιουργημένο πόρο VPN.

Έλεγχος ταυτότητας δύο παραγόντων στο OpenVPN με bot Telegram

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

Έλεγχος ταυτότητας δύο παραγόντων στο OpenVPN με bot Telegram

Ρύθμιση διακομιστή OpenVPN

Ανοίξτε το αρχείο /etc/openvpn/server.conf και προσθέστε ένα πρόσθετο για έλεγχο ταυτότητας χρησιμοποιώντας τη μονάδα PAM

plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

Το πρόσθετο μπορεί να βρίσκεται στον κατάλογο /usr/lib/openvpn/plugins/ ή /usr/lib64/openvpn/plugins/ ανάλογα με το σύστημά σας.

Στη συνέχεια, πρέπει να εγκαταστήσετε τη λειτουργική μονάδα pam_radius_auth

$ sudo yum install pam_radius

Ανοίξτε το αρχείο για επεξεργασία /etc/pam_radius.conf και καθορίστε τη διεύθυνση του διακομιστή RADIUS του Multifactor

radius.multifactor.ru   shared_secret   40

όπου:

  • radius.multifactor.ru — διεύθυνση διακομιστή
  • shared_secret - αντιγράψτε από την αντίστοιχη παράμετρο ρυθμίσεων VPN
  • 40 δευτερόλεπτα - timeout για αναμονή για αίτημα με μεγάλο περιθώριο

Οι υπόλοιποι διακομιστές πρέπει να διαγραφούν ή να σχολιαστούν (βάλτε ένα ερωτηματικό στην αρχή)

Στη συνέχεια, δημιουργήστε ένα αρχείο για openvpn τύπου υπηρεσίας

$ sudo vi /etc/pam.d/openvpn

και γράψε το μέσα

auth    required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth    substack     password-auth
account substack     password-auth

Η πρώτη γραμμή συνδέει τη μονάδα PAM pam_radius_auth με τις παραμέτρους:

  • skip_passwd - απενεργοποιεί τη μετάδοση του κωδικού πρόσβασης του χρήστη στον διακομιστή RADIUS Multifactor (δεν χρειάζεται να το γνωρίζει).
  • client_id — αντικαταστήστε το [NAS-Identifier] με την αντίστοιχη παράμετρο από τις ρυθμίσεις πόρων VPN.
    Όλες οι πιθανές παράμετροι περιγράφονται στο τεκμηρίωση για την ενότητα.

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

Επανεκκινήστε το OpenVPN

$ sudo systemctl restart openvpn@server

Ρύθμιση πελάτη

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

auth-user-pass

Проверка

Εκκινήστε το πρόγραμμα-πελάτη OpenVPN, συνδεθείτε στον διακομιστή, εισαγάγετε το όνομα χρήστη και τον κωδικό πρόσβασής σας. Το bot Telegram θα στείλει ένα αίτημα πρόσβασης με δύο κουμπιά

Έλεγχος ταυτότητας δύο παραγόντων στο OpenVPN με bot Telegram

Ένα κουμπί επιτρέπει την πρόσβαση, το δεύτερο την αποκλείει.

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

Αν κάτι δεν λειτουργεί

Ελέγξτε διαδοχικά ότι δεν έχετε χάσει τίποτα:

  • Υπάρχει ένας χρήστης στον διακομιστή με OpenVPN με ορισμένο κωδικό πρόσβασης
  • Ο διακομιστής έχει πρόσβαση μέσω της θύρας UDP 1812 στη διεύθυνση radius.multifactor.ru
  • Οι παράμετροι NAS-Identifier και Shared Secret καθορίζονται σωστά
  • Ένας χρήστης με την ίδια σύνδεση έχει δημιουργηθεί στο σύστημα Multifactor και του έχει παραχωρηθεί πρόσβαση στην ομάδα χρηστών VPN
  • Ο χρήστης έχει διαμορφώσει τη μέθοδο ελέγχου ταυτότητας μέσω Telegram

Εάν δεν έχετε ρυθμίσει το OpenVPN στο παρελθόν, διαβάστε εκτεταμένο άρθρο.

Οι οδηγίες γίνονται με παραδείγματα στο CentOS 7.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο