Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Θέματα

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

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

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

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

Ένας διακομιστής με CentOS 7 (διεύθυνση: centos.vpn.server.ad) και ένας πελάτης με Ubuntu 20.04, καθώς και ένας πελάτης με Windows 10, χρησιμοποιήθηκαν ως βάσεις επίδειξης για τη διαμόρφωση.

Περιγραφή συστήματος

Το VPN θα λειτουργεί σύμφωνα με το σχήμα IPSec + L2TP + PPP. Πρωτόκολλο Πρωτόκολλο από σημείο σε σημείο (ΣΔΙΤ) λειτουργεί στο επίπεδο σύνδεσης δεδομένων του μοντέλου OSI και παρέχει έλεγχο ταυτότητας χρήστη και κρυπτογράφηση των μεταδιδόμενων δεδομένων. Τα δεδομένα του είναι ενθυλακωμένα στα δεδομένα του πρωτοκόλλου L2TP, το οποίο ουσιαστικά διασφαλίζει τη δημιουργία σύνδεσης στο δίκτυο VPN, αλλά δεν παρέχει έλεγχο ταυτότητας και κρυπτογράφηση.

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

Αυτή η δυνατότητα σάς επιτρέπει να ελέγχετε την ταυτότητα των χρηστών μόνο από συγκεκριμένες συσκευές. Θα χρησιμοποιήσουμε το πρωτόκολλο IPSec ως έχει και θα επιτρέψουμε τον έλεγχο ταυτότητας χρήστη από οποιαδήποτε συσκευή.

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Ο έλεγχος ταυτότητας χρήστη με χρήση έξυπνων καρτών θα πραγματοποιηθεί σε επίπεδο πρωτοκόλλου PPP χρησιμοποιώντας το πρωτόκολλο EAP-TLS.

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

Γιατί αυτό το σχήμα πληροί και τις τρεις απαιτήσεις ενός καλού δικτύου VPN;

  1. Η αξιοπιστία αυτού του σχήματος έχει δοκιμαστεί με το χρόνο. Χρησιμοποιείται για την ανάπτυξη δικτύων VPN από το 2000.
  2. Ο ασφαλής έλεγχος ταυτότητας χρήστη παρέχεται από το πρωτόκολλο PPP. Τυπική εφαρμογή του πρωτοκόλλου PPP που αναπτύχθηκε από τον Paul Mackerras δεν παρέχει επαρκές επίπεδο ασφάλειας, γιατί Για τον έλεγχο ταυτότητας, στην καλύτερη περίπτωση, χρησιμοποιείται έλεγχος ταυτότητας με χρήση σύνδεσης και κωδικού πρόσβασης. Όλοι γνωρίζουμε ότι ένας κωδικός πρόσβασης μπορεί να κατασκοπευθεί, να μαντέψει ή να κλαπεί. Ωστόσο, εδώ και πολύ καιρό ο προγραμματιστής Jan Just Keijser в την εφαρμογή του Αυτό το πρωτόκολλο διόρθωσε αυτό το ζήτημα και πρόσθεσε τη δυνατότητα χρήσης πρωτοκόλλων που βασίζονται σε ασύμμετρη κρυπτογράφηση, όπως το EAP-TLS, για έλεγχο ταυτότητας. Επιπλέον, πρόσθεσε τη δυνατότητα χρήσης έξυπνων καρτών για έλεγχο ταυτότητας, γεγονός που έκανε το σύστημα πιο ασφαλές.
    Επί του παρόντος, βρίσκονται σε εξέλιξη ενεργές διαπραγματεύσεις για τη συγχώνευση αυτών των δύο έργων και μπορείτε να είστε σίγουροι ότι αργά ή γρήγορα αυτό θα συμβεί ούτως ή άλλως. Για παράδειγμα, μια επιδιορθωμένη έκδοση του PPP βρίσκεται στα αποθετήρια του Fedora για μεγάλο χρονικό διάστημα, χρησιμοποιώντας ασφαλή πρωτόκολλα για έλεγχο ταυτότητας.
  3. Μέχρι πρόσφατα, αυτό το δίκτυο μπορούσε να χρησιμοποιηθεί μόνο από χρήστες Windows, αλλά οι συνάδελφοί μας από το Κρατικό Πανεπιστήμιο της Μόσχας Vasily Shokov και Alexander Smirnov βρήκαν παλιό έργο πελάτη L2TP για Linux και το τροποποίησε. Μαζί, διορθώσαμε πολλά σφάλματα και ελλείψεις στην εργασία του πελάτη, απλοποιήσαμε την εγκατάσταση και τη ρύθμιση παραμέτρων του συστήματος, ακόμη και κατά την κατασκευή από την πηγή. Τα σημαντικότερα από αυτά είναι:
    • Διορθώθηκαν προβλήματα συμβατότητας του παλιού πελάτη με τη διεπαφή νέων εκδόσεων του openssl και του qt.
    • Καταργήθηκε το pppd από τη μετάδοση του κωδικού PIN μέσω ενός προσωρινού αρχείου.
    • Διορθώθηκε η λανθασμένη εκκίνηση του προγράμματος αιτήματος κωδικού πρόσβασης μέσω της γραφικής διεπαφής. Αυτό έγινε εγκαθιστώντας το σωστό περιβάλλον για την υπηρεσία xl2tpd.
    • Η δημιουργία του δαίμονα L2tpIpsecVpn πραγματοποιείται τώρα μαζί με την κατασκευή του ίδιου του πελάτη, γεγονός που απλοποιεί τη διαδικασία κατασκευής και διαμόρφωσης.
    • Για ευκολία στην ανάπτυξη, το σύστημα Azure Pipelines είναι συνδεδεμένο για να δοκιμάσει την ορθότητα της κατασκευής.
    • Προστέθηκε η δυνατότητα αναγκαστικής υποβάθμισης επίπεδο ασφαλείας στα πλαίσια του openssl. Αυτό είναι χρήσιμο για τη σωστή υποστήριξη νέων λειτουργικών συστημάτων όπου το τυπικό επίπεδο ασφαλείας έχει οριστεί στο 2, με δίκτυα VPN που χρησιμοποιούν πιστοποιητικά που δεν πληρούν τις απαιτήσεις ασφαλείας αυτού του επιπέδου. Αυτή η επιλογή θα είναι χρήσιμη για την εργασία με υπάρχοντα παλιά δίκτυα VPN.

Η διορθωμένη έκδοση βρίσκεται στο αυτό το αποθετήριο.

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

Φυσικά, για μια βολική σύνδεση μεταξύ PPP και του GUI πελάτη, δεν ήταν δυνατή χωρίς πρόσθετες επεξεργασίες σε καθένα από τα έργα, αλλά παρόλα αυτά ελαχιστοποιήθηκαν και μειώθηκαν στο ελάχιστο:

Τώρα μπορείτε να ξεκινήσετε τη ρύθμιση.

Συντονισμός διακομιστή

Ας εγκαταστήσουμε όλα τα απαραίτητα πακέτα.

Εγκατάσταση του strongswan (IPsec)

Πρώτα απ 'όλα, ας διαμορφώσουμε το τείχος προστασίας για λειτουργία ipsec

sudo firewall-cmd --permanent --add-port=1701/{tcp,udp}
sudo firewall-cmd --permanent --add-service=ipsec
sudo firewall-cmd --reload

Τότε ας ξεκινήσουμε την εγκατάσταση

sudo yum install epel-release ipsec-tools dnf
sudo dnf install strongswan

Μετά την εγκατάσταση, πρέπει να διαμορφώσετε το strongswan (μία από τις υλοποιήσεις IPSec). Για να το κάνετε αυτό, επεξεργαστείτε το αρχείο /etc/strongswan/ipsec.conf :

config setup
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
    oe=off
    protostack=netkey 

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=%any
    leftprotoport=udp/1701
    right=%any
    rightprotoport=udp/%any
    ike=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
    esp=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024

Θα ορίσουμε επίσης έναν κοινό κωδικό πρόσβασης σύνδεσης. Ο κοινόχρηστος κωδικός πρόσβασης πρέπει να είναι γνωστός σε όλους τους συμμετέχοντες στο δίκτυο για έλεγχο ταυτότητας. Αυτή η μέθοδος είναι προφανώς αναξιόπιστη, γιατί αυτός ο κωδικός πρόσβασης μπορεί εύκολα να γίνει γνωστός σε άτομα στα οποία δεν θέλουμε να παρέχουμε πρόσβαση στο δίκτυο.
Ωστόσο, ακόμη και αυτό το γεγονός δεν θα επηρεάσει την ασφάλεια του δικτύου, γιατί Η βασική κρυπτογράφηση δεδομένων και ο έλεγχος ταυτότητας χρήστη πραγματοποιείται από το πρωτόκολλο PPP. Αλλά για να είμαστε δίκαιοι, αξίζει να σημειωθεί ότι το strongswan υποστηρίζει πιο ασφαλείς τεχνολογίες για έλεγχο ταυτότητας, για παράδειγμα, χρησιμοποιώντας ιδιωτικά κλειδιά. Το Strongswan έχει επίσης τη δυνατότητα να παρέχει έλεγχο ταυτότητας χρησιμοποιώντας έξυπνες κάρτες, αλλά μέχρι στιγμής υποστηρίζεται μόνο μια περιορισμένη γκάμα συσκευών και επομένως ο έλεγχος ταυτότητας χρησιμοποιώντας διακριτικά Rutoken και έξυπνες κάρτες εξακολουθεί να είναι δύσκολος. Ας ορίσουμε έναν γενικό κωδικό πρόσβασης μέσω αρχείου /etc/strongswan/ipsec.secrets:

# ipsec.secrets - strongSwan IPsec secrets file
%any %any : PSK "SECRET_PASSPHRASE"

Ας επανεκκινήσουμε το strongswan:

sudo systemctl enable strongswan
sudo systemctl restart strongswan

Εγκατάσταση xl2tp

sudo dnf install xl2tpd

Ας το ρυθμίσουμε μέσω αρχείου /etc/xl2tpd/xl2tpd.conf:

[global]
force userspace = yes
listen-addr = 0.0.0.0
ipsec saref = yes

[lns default]
exclusive = no
; определяет статический адрес сервера в виртуальной сети
local ip = 100.10.10.1
; задает диапазон виртуальных адресов
ip range = 100.10.10.1-100.10.10.254
assign ip = yes
refuse pap = yes
require authentication = yes
; данную опцию можно отключить после успешной настройки сети
ppp debug = yes
length bit = yes
pppoptfile = /etc/ppp/options.xl2tpd
; указывает адрес сервера в сети
name = centos.vpn.server.ad

Ας επανεκκινήσουμε την υπηρεσία:

sudo systemctl enable xl2tpd
sudo systemctl restart xl2tpd

Ρύθμιση PPP

Συνιστάται να εγκαταστήσετε την πιο πρόσφατη έκδοση του pppd. Για να το κάνετε αυτό, εκτελέστε την ακόλουθη σειρά εντολών:

sudo yum install git make gcc openssl-devel
git clone "https://github.com/jjkeijser/ppp"
cd ppp
./configure --prefix /usr
make -j4
sudo make install

Γράψτε στο αρχείο /etc/ppp/options.xl2tpd τα ακόλουθα (αν υπάρχουν τιμές εκεί, μπορείτε να τις διαγράψετε):

ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 1.1.1.1

noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000

Εκδίδουμε το πιστοποιητικό ρίζας και το πιστοποιητικό διακομιστή:

#директория с сертификатами пользователей, УЦ и сервера
sudo mkdir /etc/ppp/certs
#директория с закрытыми ключами сервера и УЦ
sudo mkdir /etc/ppp/keys
#запрещаем любой доступ к этой дирректории кроме администатора
sudo chmod 0600 /etc/ppp/keys/

#генерируем ключ и выписываем сертификат УЦ
sudo openssl genrsa -out /etc/ppp/keys/ca.pem 2048
sudo openssl req -key /etc/ppp/keys/ca.pem -new -x509 -out /etc/ppp/certs/ca.pem -subj "/C=RU/CN=L2TP CA"

#генерируем ключ и выписываем сертификат сервера
sudo openssl genrsa -out /etc/ppp/keys/server.pem 2048
sudo openssl req -new -out server.req -key /etc/ppp/keys/server.pem -subj "/C=RU/CN=centos.vpn.server.ad"
sudo openssl x509 -req -in server.req -CAkey /etc/ppp/keys/ca.pem -CA /etc/ppp/certs/ca.pem -out /etc/ppp/certs/server.pem -CAcreateserial

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

Προσθήκη νέου πελάτη

Για να προσθέσετε έναν νέο πελάτη στο δίκτυο, πρέπει να προσθέσετε το πιστοποιητικό του στη λίστα των αξιόπιστων για αυτόν τον πελάτη.

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

sudo openssl x509 -req -in client.req -CAkey /etc/ppp/keys/ca.pem -CA /etc/ppp/certs/ca.pem -out /etc/ppp/certs/client.pem -CAcreateserial

Ας προσθέσουμε μια γραμμή στο αρχείο /etc/ppp/eaptls-server για να ταιριάζει με το όνομα πελάτη και το πιστοποιητικό του:

"client" * /etc/ppp/certs/client.pem /etc/ppp/certs/server.pem /etc/ppp/certs/ca.pem /etc/ppp/keys/server.pem *

ΣΗΜΕΊΩΣΗ
Για να αποφευχθεί η σύγχυση, είναι καλύτερο: Κοινό όνομα, όνομα αρχείου πιστοποιητικού και όνομα χρήστη να είναι μοναδικά.

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

Το ίδιο πιστοποιητικό πρέπει να σταλεί πίσω στον χρήστη.

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

Για επιτυχή έλεγχο ταυτότητας, ο πελάτης πρέπει:

  1. Δημιουργήστε ένα ζεύγος κλειδιών.
  2. έχουν πιστοποιητικό ρίζας CA.
  3. να έχετε ένα πιστοποιητικό για το ζεύγος κλειδιών σας υπογεγραμμένο από την αρχή έκδοσης πιστοποιητικών ρίζας.

για πελάτη σε Linux

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

#идентификатор ключа (параметр --id) можно заменить на любой другой.
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45

openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:librtpkcs11ecp.so
...
OpenSSL> req -engine pkcs11 -new -key 45 -keyform engine -out client.req -subj "/C=RU/CN=client"

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

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w ./client.pem --id  45

για πελάτες Windows και Linux (πιο καθολική μέθοδος)

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

Πριν από τη δημιουργία αιτημάτων και την εισαγωγή πιστοποιητικών, πρέπει να προσθέσετε το ριζικό πιστοποιητικό του δικτύου VPN στη λίστα με τα αξιόπιστα. Για να το κάνετε αυτό, ανοίξτε το και στο παράθυρο που ανοίγει, επιλέξτε την επιλογή «Εγκατάσταση πιστοποιητικού»:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Στο παράθυρο που ανοίγει, επιλέξτε την εγκατάσταση ενός πιστοποιητικού για τον τοπικό χρήστη:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Ας εγκαταστήσουμε το πιστοποιητικό στον αξιόπιστο χώρο αποθήκευσης πιστοποιητικών ρίζας της CA:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Μετά από όλες αυτές τις ενέργειες, συμφωνούμε με όλα τα περαιτέρω σημεία. Το σύστημα έχει πλέον ρυθμιστεί.

Ας δημιουργήσουμε ένα αρχείο cert.tmp με το ακόλουθο περιεχόμενο:

[NewRequest]
Subject = "CN=client"
KeyLength = 2048
KeySpec = "AT_KEYEXCHANGE" 
ProviderName = "Microsoft Base Smart Card Crypto Provider"
KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE"
KeyUsageProperty = "NCRYPT_ALLOW_DECRYPT_FLAG"
RequestType = PKCS10
SMIME = FALSE

Μετά από αυτό, θα δημιουργήσουμε ένα ζεύγος κλειδιών και θα δημιουργήσουμε μια εφαρμογή για το πιστοποιητικό. Για να το κάνετε αυτό, ανοίξτε το powershell και πληκτρολογήστε την ακόλουθη εντολή:

certreq.exe -new -pin $PIN .cert.tmp .client.req

Στείλτε τη δημιουργημένη εφαρμογή client.req στην CA σας και περιμένετε να λάβετε το πιστοποιητικό client.pem. Μπορεί να γραφτεί σε ένα διακριτικό και να προστεθεί στο χώρο αποθήκευσης πιστοποιητικών των Windows χρησιμοποιώντας την ακόλουθη εντολή:

certreq.exe -accept .client.pem

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

Ρύθμιση του προγράμματος-πελάτη Ubuntu

ΣΗΜΕΊΩΣΗ
Η εγκατάσταση ενός πελάτη σε Linux είναι επί του παρόντος αρκετά χρονοβόρα, επειδή... απαιτεί τη δημιουργία ξεχωριστών προγραμμάτων από την πηγή. Θα προσπαθήσουμε να διασφαλίσουμε ότι όλες οι αλλαγές περιλαμβάνονται στα επίσημα αποθετήρια στο εγγύς μέλλον.

Για να διασφαλιστεί η σύνδεση σε επίπεδο IPSec με τον διακομιστή, χρησιμοποιείται το πακέτο strongswan και ο δαίμονας xl2tp. Για να απλοποιήσουμε τη σύνδεση στο δίκτυο χρησιμοποιώντας έξυπνες κάρτες, θα χρησιμοποιήσουμε το πακέτο l2tp-ipsec-vpn, το οποίο παρέχει ένα γραφικό κέλυφος για απλοποιημένη ρύθμιση σύνδεσης.

Ας ξεκινήσουμε τη συναρμολόγηση των στοιχείων βήμα προς βήμα, αλλά πριν από αυτό θα εγκαταστήσουμε όλα τα απαραίτητα πακέτα για να λειτουργεί απευθείας το VPN:

sudo apt-get install xl2tpd strongswan libp11-3

Εγκατάσταση λογισμικού για εργασία με μάρκες

Εγκαταστήστε την πιο πρόσφατη βιβλιοθήκη librtpkcs11ecp.so από сайта, επίσης βιβλιοθήκες για εργασία με έξυπνες κάρτες:

sudo apt-get install pcscd pcsc-tools opensc libengine-pkcs11-openssl

Συνδέστε το Rutoken και ελέγξτε ότι αναγνωρίζεται από το σύστημα:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so  -O -l

Εγκατάσταση επιδιορθωμένου ppp

sudo apt-get -y install git make gcc libssl-dev
git clone "https://github.com/jjkeijser/ppp"
cd ppp
./configure --prefix /usr
make -j4
sudo make install

Εγκατάσταση του προγράμματος-πελάτη L2tpIpsecVpn

Προς το παρόν, ο πελάτης πρέπει επίσης να μεταγλωττιστεί από τον πηγαίο κώδικα. Αυτό γίνεται χρησιμοποιώντας την ακόλουθη σειρά εντολών:

sudo apt-get -y install git qt5-qmake qt5-default build-essential libctemplate-dev libltdl-dev
git clone "https://github.com/Sander80/l2tp-ipsec-vpn"
cd l2tp-ipsec-vpn
make -j4
sudo make install

Ρύθμιση του προγράμματος-πελάτη L2tpIpsecVpn

Εκκινήστε τον εγκατεστημένο πελάτη:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Μετά την εκκίνηση, η μικροεφαρμογή L2tpIpsecVPN θα πρέπει να ανοίξει. Κάντε δεξί κλικ πάνω του και διαμορφώστε τη σύνδεση:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Για να εργαστείτε με διακριτικά, πρώτα απ 'όλα, υποδεικνύουμε τη διαδρομή προς τη μηχανή opensc του κινητήρα OpenSSL και τη βιβλιοθήκη PKCS#11. Για να το κάνετε αυτό, ανοίξτε την καρτέλα "Προτιμήσεις" για να διαμορφώσετε τις παραμέτρους του openssl:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI.

Ας κλείσουμε το παράθυρο ρυθμίσεων OpenSSL και ας προχωρήσουμε στη ρύθμιση του δικτύου. Ας προσθέσουμε ένα νέο δίκτυο κάνοντας κλικ στο κουμπί Προσθήκη... στον πίνακα ρυθμίσεων και εισάγουμε το όνομα του δικτύου:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Μετά από αυτό, αυτό το δίκτυο θα είναι διαθέσιμο στον πίνακα ρυθμίσεων. Κάντε διπλό δεξί κλικ στο νέο δίκτυο για να το διαμορφώσετε. Στην πρώτη καρτέλα πρέπει να κάνετε ρυθμίσεις IPsec. Ας ορίσουμε τη διεύθυνση διακομιστή και το δημόσιο κλειδί:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Μετά από αυτό, μεταβείτε στην καρτέλα Ρυθμίσεις PPP και υποδείξτε εκεί το όνομα χρήστη με το οποίο θέλουμε να αποκτήσουμε πρόσβαση στο δίκτυο:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Μετά από αυτό, ανοίξτε την καρτέλα Ιδιότητες και καθορίστε τη διαδρομή προς το κλειδί, το πιστοποιητικό πελάτη και την ΑΠ:
Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Ας κλείσουμε αυτήν την καρτέλα και ας εκτελέσουμε τις τελικές ρυθμίσεις. Για να το κάνετε αυτό, ανοίξτε την καρτέλα "Ρυθμίσεις IP" και επιλέξτε το πλαίσιο δίπλα στην επιλογή "Αυτόματη λήψη διεύθυνσης διακομιστή DNS":

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI
Αυτή η επιλογή θα επιτρέψει στον πελάτη να λάβει μια προσωπική διεύθυνση IP εντός του δικτύου από τον διακομιστή.

Μετά από όλες τις ρυθμίσεις, κλείστε όλες τις καρτέλες και επανεκκινήστε τον πελάτη:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Σύνδεση δικτύου

Μετά τις ρυθμίσεις, μπορείτε να συνδεθείτε στο δίκτυο. Για να το κάνετε αυτό, ανοίξτε την καρτέλα applet και επιλέξτε το δίκτυο στο οποίο θέλουμε να συνδεθούμε:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Κατά τη διαδικασία δημιουργίας σύνδεσης, ο πελάτης θα μας ζητήσει να εισαγάγουμε τον κωδικό PIN Rutoken:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Εάν εμφανιστεί μια ειδοποίηση στη γραμμή κατάστασης ότι η σύνδεση έχει δημιουργηθεί με επιτυχία, σημαίνει ότι η ρύθμιση ήταν επιτυχής:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

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

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Ρύθμιση του προγράμματος-πελάτη των Windows

Η εγκατάσταση ενός προγράμματος-πελάτη στα Windows είναι πολύ πιο εύκολη από ό,τι στο Linux, επειδή... Όλο το απαραίτητο λογισμικό είναι ήδη ενσωματωμένο στο σύστημα.

Εγκατάσταση συστήματος

Θα εγκαταστήσουμε όλα τα απαραίτητα προγράμματα οδήγησης για την εργασία με το Rutokens κατεβάζοντάς τα από του. ιστοσελίδα.

Εισαγωγή πιστοποιητικού ρίζας για έλεγχο ταυτότητας

Κάντε λήψη του πιστοποιητικού ρίζας διακομιστή και εγκαταστήστε το στο σύστημα. Για να το κάνετε αυτό, ανοίξτε το και στο παράθυρο που ανοίγει, επιλέξτε την επιλογή «Εγκατάσταση πιστοποιητικού»:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

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

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Ας εγκαταστήσουμε το πιστοποιητικό στον αξιόπιστο χώρο αποθήκευσης πιστοποιητικών ρίζας της CA:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Μετά από όλες αυτές τις ενέργειες, συμφωνούμε με όλα τα περαιτέρω σημεία. Το σύστημα έχει πλέον ρυθμιστεί.

Ρύθμιση σύνδεσης VPN

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

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Στο αναδυόμενο παράθυρο, ορίστε την επιλογή δημιουργίας σύνδεσης για σύνδεση με τον χώρο εργασίας σας:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Στο επόμενο παράθυρο, επιλέξτε μια σύνδεση VPN:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

και εισαγάγετε τα στοιχεία σύνδεσης VPN και καθορίστε επίσης την επιλογή χρήσης έξυπνης κάρτας:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Η ρύθμιση δεν έχει ολοκληρωθεί ακόμα. Το μόνο που απομένει είναι να καθορίσετε το κοινόχρηστο κλειδί για το πρωτόκολλο IPsec. Για να το κάνετε αυτό, μεταβείτε στην καρτέλα "Ρυθμίσεις σύνδεσης δικτύου" και, στη συνέχεια, μεταβείτε στην καρτέλα "Ιδιότητες για αυτήν τη σύνδεση":

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Στο παράθυρο που ανοίγει, μεταβείτε στην καρτέλα "Ασφάλεια", καθορίστε τον τύπο δικτύου "L2TP/IPsec Network" και επιλέξτε "Advanced Settings":

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Στο παράθυρο που ανοίγει, καθορίστε το κοινόχρηστο κλειδί IPsec:
Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Подключение

Αφού ολοκληρώσετε τη ρύθμιση, μπορείτε να δοκιμάσετε να συνδεθείτε στο δίκτυο:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Κατά τη διαδικασία σύνδεσης, θα μας ζητηθεί να εισαγάγουμε τον κωδικό PIN:

Ρύθμιση ελέγχου ταυτότητας στο δίκτυο L2TP χρησιμοποιώντας Rutoken EDS 2.0 και Rutoken PKI

Έχουμε δημιουργήσει ένα ασφαλές δίκτυο VPN και φροντίσαμε να μην είναι δύσκολο.

Ευχαριστώ

Θα ήθελα για άλλη μια φορά να ευχαριστήσω τους συναδέλφους μας Vasily Shokov και Alexander Smirnov για τη δουλειά που έχουν κάνει από κοινού για την απλοποίηση της δημιουργίας συνδέσεων VPN για πελάτες Linux.

Πηγή: www.habr.com

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