Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Problemstellung

Noch vor kurzem wussten viele nicht, wie es ist, von zu Hause zu arbeiten. Die Pandemie hat die Situation in der Welt grundlegend verändert, alle begannen, sich an die gegebenen Umstände anzupassen, insbesondere daran, dass es einfach unsicher geworden ist, das Haus zu verlassen. Viele mussten schnell die Arbeit von zu Hause für ihre Mitarbeiter organisieren.

Das Fehlen eines kompetenten Ansatzes bei der Auswahl von Lösungen für die Remote-Arbeit kann jedoch zu irreversiblen Verlusten führen. Benutzerdaten können gestohlen werden, was einem Angreifer die unkontrollierte Verbindung zum Netzwerk und zu den IT-Ressourcen des Unternehmens ermöglicht.

Gerade aus diesem Grund ist der Bedarf an der Einrichtung zuverlässiger Unternehmens-VPN-Netzwerke gestiegen. Ich werde Ihnen von zuverlässigem, sicher und einfachen zu nutzenden VPN-Netzen berichten.

Es arbeitet nach dem Schema IPsec/L2TP, verwendet nicht extrahierbare Schlüssel und Zertifikate zur Authentifizierung der Clients, die auf Tokens gespeichert sind, und überträgt Daten verschlüsselt über das Netzwerk.

Als Demonstrationsstände für die Konfiguration wurden ein Server mit CentOS 7 (Adresse: centos.vpn.server.ad) und ein Client mit Ubuntu 20.04 sowie ein Client mit Windows 10 verwendet.

Systembeschreibung

Das VPN wird nach dem Schema IPSec + L2TP + PPP arbeiten. Das Protokoll Point-to-Point Protocol (PPP) arbeitet auf der Sicherungsschicht des OSI-Modells und gewährleistet die Authentifizierung des Benutzers sowie die Verschlüsselung der übertragenen Daten. Seine Daten werden in die Daten des L2TP-Protokolls einkapsuliert, das tatsächlich die Verbindung im VPN-Netzwerk herstellt, jedoch die Authentifizierung und Verschlüsselung nicht gewährleistet.

Die L2TP-Daten werden im IPSec-Protokoll eingekapselt, das ebenfalls Authentifizierung und Verschlüsselung gewährleistet, jedoch im Gegensatz zum PPP-Protokoll die Authentifizierung und Verschlüsselung auf Geräteniveau und nicht auf Benutzerebene erfolgt.

Diese Eigenschaft ermöglicht die Authentifizierung von Benutzern nur von bestimmten Geräten. Wir werden das IPSec-Protokoll als solche verwenden und die Authentifizierung von Benutzern von beliebigen Geräten aus ermöglichen.

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Die Benutzerauthentifizierung mittels Smartcards erfolgt auf der Ebene des PPP-Protokolls unter Verwendung des EAP-TLS-Protokolls.

Weitere Informationen über die Funktionsweise dieses Schemas sind zu finden unter diesem Artikel.

Warum dieses Schema alle drei Anforderungen an ein gutes VPN-Netzwerk erfüllt

  1. Die Zuverlässigkeit dieses Schemas wurde durch die Zeit getestet. Es wird seit 2000 zur Bereitstellung von VPN-Netzwerken verwendet.
  2. Die sichere Benutzerauthentifizierung wird durch das PPP-Protokoll gewährleistet. Die Standardimplementierung des PPP-Protokolls wurde von Paul Mackerras entwickelt gewährleistet jedoch nicht ein ausreichendes Sicherheitsniveau, da zur Authentifizierung bestenfalls Benutzername und Passwort verwendet werden. Wir alle wissen, dass Benutzernamen und Passwörter ausgespäht, erraten oder gestohlen werden können. Dennoch hat der Entwickler Jan Just Keijser in seiner Implementierung dieses Protokolls diesen Punkt korrigiert und die Möglichkeit zur Verwendung von Protokollen auf der Grundlage der asymmetrischen Verschlüsselung, wie EAP-TLS, für die Authentifizierung hinzugefügt. Darüber hinaus hat er die Möglichkeit hinzugefügt, Smartcards zur Authentifizierung zu verwenden, was das System sicherer gemacht hat.
    Derzeit laufen aktive Verhandlungen zur Fusion dieser beiden Projekte, und man kann sicher sein, dass dies früher oder später geschehen wird. So gibt es beispielsweise im Fedora-Repository schon lange eine gepatchte Version von PPP, die sichere Protokolle für die Authentifizierung verwendet.
  3. Noch vor kurzem konnte dieses Netzwerk nur von Windows-Benutzern verwendet werden, aber unsere Kollegen von der Lomonossow-Universität, Wassili Schokow und Alexander Smirnow, fanden ein altes L2TP-Clientprojekt für Linux und haben es weiterentwickelt. Durch gemeinsame Anstrengungen haben wir viele Fehler und Mängel beim Client behoben, die Installation und Konfiguration des Systems vereinfacht, selbst bei Kompilierung aus den Quellen. Die wichtigsten Verbesserungen sind:
    • Kompatibilitätsprobleme des alten Clients mit den Schnittstellen neuer Versionen von openssl und qt wurden behoben.
    • Die Übertragung des pppd-PIN-Codes des Tokens über eine temporäre Datei wurde entfernt.
    • Die fehlerhafte Ausführung des Programms zur Abfrage des Passworts über die graphische Benutzeroberfläche wurde korrigiert. Dies wurde durch die Einrichtung der richtigen Umgebung für den xl2tpd-Dienst erreicht.
    • Der Aufbau des L2tpIpsecVpn-Daemons erfolgt jetzt gemeinsam mit dem Aufbau des Clients, was den Prozess der Erstellung und Konfiguration erleichtert.
    • Zur Vereinfachung der Entwicklung wurde das Azure Pipelines-System zur Überprüfung der Korrektheit der Erstellung angeschlossen.
    • Die Möglichkeit wurde hinzugefügt, den Sicherheitsgrad zwangsweise zu senken Im Kontext von OpenSSL. Dies ist nützlich für die ordnungsgemäße Unterstützung neuer Betriebssysteme, bei denen das Standard-Sicherheitsniveau auf 2 festgelegt ist, sowie bei VPN-Netzwerken, in denen Zertifikate verwendet werden, die nicht den Sicherheitsanforderungen dieses Niveaus entsprechen. Diese Option wird hilfreich sein, um mit bereits bestehenden älteren VPN-Netzwerken zu arbeiten.

Die korrigierte Version ist zu finden unter diesem Repository.

Dieser Client unterstützt die Verwendung von Smartcards zur Authentifizierung und verbirgt gleichzeitig alle Mühen und Schwierigkeiten bei der Einrichtung dieses Schemas unter Linux, was die Konfiguration des Clients so einfach und schnell wie möglich macht.

Natürlich gab es für die bequeme Verbindung von PPP und dem GUI-Client auch Anpassungen an jedem der Projekte, aber trotzdem gelang es, diese zu minimieren:

Jetzt können wir mit der Konfiguration beginnen.

Serverkonfiguration

Lassen Sie uns alle notwendigen Pakete installieren.

Installation von strongswan (IPsec)

Zunächst konfigurieren wir die Firewall für die IPsec-Nutzung

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

Dann beginnen wir mit der Installation

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

Nach der Installation ist es notwendig, die Konfiguration für strongswan (eine der Implementierungen von IPSec) festzulegen. Dazu bearbeiten wir die Datei /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

Wir werden auch ein gemeinsames Passwort für den Zugang festlegen. Dieses Passwort muss allen Teilnehmern des Netzwerks zur Authentifizierung bekannt sein. Diese Methode ist jedoch von vornherein unsicher, da dieses Passwort leicht Personen bekannt werden kann, denen wir keinen Zugang zum Netzwerk gewähren möchten.
Dennoch wird dieser Fakt die Sicherheit des Netzwerks nicht beeinträchtigen, da die Hauptverschlüsselung der Daten und die Benutzerauthentifizierung durch das PPP-Protokoll erfolgen. Um fair zu sein, sollte erwähnt werden, dass strongswan sicherere Authentifizierungstechnologien unterstützt, beispielsweise die Verwendung von privaten Schlüsseln. Außerdem bietet strongswan die Möglichkeit, die Authentifizierung mittels Smartcards zu realisieren, allerdings wird nur eine begrenzte Anzahl von Geräten unterstützt, weshalb die Authentifizierung mit Tokens und Smartcards von Rutoken momentan schwierig ist. Lassen Sie uns das gemeinsame Passwort über eine Datei festlegen. /etc/strongswan/ipsec.secrets:

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

Starten wir strongswan neu:

sudo systemctl enable strongswan
sudo systemctl restart strongswan

Installation von xl2tp

sudo dnf install xl2tpd

Wir konfigurieren es über eine Datei /etc/xl2tpd/xl2tpd.conf:

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

[lns default]
exclusive = no
; definiert die statische IP-Adresse des Servers im virtuellen Netzwerk
local ip = 100.10.10.1
; legt den Bereich der virtuellen Adressen fest
ip range = 100.10.10.1-100.10.10.254
assign ip = yes
refuse pap = yes
require authentication = yes
; diese Option kann nach erfolgreicher Netzwerkkonfiguration deaktiviert werden
ppp debug = yes
length bit = yes
pppoptfile = /etc/ppp/options.xl2tpd
; gibt die Adresse des Servers im Netzwerk an
name = centos.vpn.server.ad

Starten wir den Dienst neu:

sudo systemctl enable xl2tpd
sudo systemctl restart xl2tpd

PPP-Konfiguration

Es ist ratsam, die neueste Version von pppd zu installieren. Führen wir dafür die folgende Befehlssequenz aus:

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

Fügen Sie in die Datei /etc/ppp/options.xl2tpd das Folgende ein (wenn dort bereits Werte vorhanden sind, können diese gelöscht werden):

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

Schreiben Sie das Stammzertifikat und das Serverzertifikat auf:

#директория с сертификатами пользователей, УЦ и сервера
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

Somit haben wir die grundlegende Konfiguration des Servers abgeschlossen. Der restliche Teil der Serverkonfiguration betrifft das Hinzufügen neuer Clients.

Hinzufügen eines neuen Clients

Um einen neuen Client zum Netzwerk hinzuzufügen, muss sein Zertifikat in die Liste der vertrauenswürdigen für diesen Client aufgenommen werden.

Wenn ein Benutzer Mitglied des VPN-Netzwerks werden möchte, erstellt er ein Schlüsselpaar und einen Antrag auf ein Zertifikat für diesen Client. Wenn der Benutzer vertrauenswürdig ist, kann dieser Antrag unterschrieben und das resultierende Zertifikat im Verzeichnis der Zertifikate gespeichert werden:

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

Fügen wir eine Zeile in die Datei /etc/ppp/eaptls-server hinzu, um den Clientnamen mit seinem Zertifikat zu verknüpfen:

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

HINWEIS
Um Verwirrung zu vermeiden, sollten der Common Name, der Dateiname des Zertifikats und der Benutzername eindeutig sein.

Es ist auch wichtig zu überprüfen, dass in anderen Authentifizierungsdateien der Benutzername, den wir hinzufügen, nicht auftaucht, da sonst Probleme mit der Authentifizierungsmethode des Benutzers auftreten können.

Das gleiche Zertifikat muss dem Benutzer zurückgeschickt werden.

Generierung eines Schlüsselpaares und eines Zertifikats

Für eine erfolgreiche Authentifizierung muss der Client:

  1. ein Schlüsselpaar generieren;
  2. ein Root-Zertifikat der CA besitzen;
  3. ein für sein Schlüsselpaar signiertes Zertifikat von der Root-CA haben.

für Clients unter Linux

Zunächst generieren wir ein Schlüsselpaar auf dem Token und erstellen einen Antrag auf ein Zertifikat:

#идентификатор ключа (параметр --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"

Senden Sie den entstandenen Antrag client.req an die CA. Nachdem Sie das Zertifikat für Ihr Schlüsselpaar erhalten haben, speichern Sie es auf dem Token mit der gleichen ID wie der Schlüssel:

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

für Windows- und Linux-Clients (eine universellere Methode)

Diese Methode ist universeller, da sie es ermöglicht, einen Schlüssel und ein Zertifikat zu generieren, die erfolgreich von Benutzern unter Windows und Linux erkannt werden, aber sie erfordert eine Maschine unter Windows, um den Vorgang zur Schlüsselerzeugung durchzuführen.

Bevor Sie Anfragen generieren und Zertifikate importieren, müssen Sie das Root-Zertifikat des VPN-Netzwerks zur Liste der vertrauenswürdigen Zertifikate hinzufügen. Öffnen Sie es dazu und wählen Sie im sich öffnenden Fenster die Option "Zertifikat installieren":

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Wählen Sie im sich öffnenden Fenster die Installation des Zertifikats für den lokalen Benutzer aus:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Installieren Sie das Zertifikat im Speicher der vertrauenswürdigen Root-Zertifikate der CA:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Nach all diesen Schritten stimmen wir allen folgenden Punkten zu. Jetzt ist das System konfiguriert.

Erstellen Sie die Datei cert.tmp mit folgendem Inhalt:

[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

Nachdem wir dies getan haben, generieren wir ein Schlüsselpaar und erstellen eine Zertifikatsanfrage. Dazu öffnen wir PowerShell und geben den folgenden Befehl ein:

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

Senden Sie die erstellte Anfrage client.req an Ihre Zertifizierungsstelle und warten Sie auf den Erhalt des Zertifikats client.pem. Dieses kann auf den Token geschrieben und mit dem folgenden Befehl im Windows-Zertifikatspeicher hinzugefügt werden:

certreq.exe -accept .client.pem

Es sei darauf hingewiesen, dass ähnliche Schritte auch über die grafische Benutzeroberfläche des Programms mmc ausgeführt werden können, jedoch ist dieser Weg zeitaufwändiger und weniger programmierbar.

Konfiguration des Ubuntu-Clients

HINWEIS
Die Konfiguration des Clients unter Linux ist derzeit zeitaufwendig, da sie die Kompilierung bestimmter Programme aus dem Quellcode erfordert. Wir werden versuchen, in naher Zukunft sicherzustellen, dass alle Änderungen in die offiziellen Repositories aufgenommen werden.

Für die Verbindung auf IPSec-Ebene zum Server wird das Paket strongswan und der Dienst xl2tp verwendet. Um die Verbindung über Smartcards zu erleichtern, verwenden wir das Paket l2tp-ipsec-vpn, das eine grafische Oberfläche für die vereinfachte Einrichtung der Verbindung bietet.

Wir beginnen mit der schrittweisen Zusammenstellung der Komponenten, aber vorher installieren wir alle erforderlichen Pakete für die direkte Arbeit mit dem VPN:

sudo apt-get install xl2tpd strongswan libp11-3

Installation der Software für die Arbeit mit Tokens

Installieren Sie die neueste Version der Bibliothek librtpkcs11ecp.so mit der Website, ebenso Bibliotheken zur Arbeit mit Smartcards:

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

Schließen Sie den RutuToken an und überprüfen Sie, ob er vom System erkannt wird:

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

Installation des gepatchten 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

Installation des L2tpIpsecVpn-Clients

Der Client muss ebenfalls aus dem Quellcode compiliert werden. Dies geschieht mit der folgenden Befehlsfolge:

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

Konfiguration des L2tpIpsecVpn-Clients

Starten Sie den installierten Client:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Nach dem Start öffnet sich das Applet L2tpIpsecVPN. Klicken Sie mit der rechten Maustaste darauf und konfigurieren Sie die Verbindung:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Um mit Tokens zu arbeiten, geben wir zunächst den Pfad der OpenSSL-Engine und der PKCS#11-Bibliothek an. Öffnen Sie dazu die Registerkarte "Einstellungen", um die OpenSSL-Parameter zu konfigurieren:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI.

Wir schließen das OpenSSL-Einstellungsfenster und gehen zur Netzwerkkonfiguration. Fügen Sie ein neues Netzwerk hinzu, indem Sie auf die Schaltfläche "Hinzufügen…" im Einstellungsfeld klicken und den Netzwerkname eingeben:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Nach dieser Eingabe wird das Netzwerk im Einstellungsfeld verfügbar sein. Wir klicken mit der rechten Maustaste auf das neue Netzwerk, um es zu konfigurieren. Auf der ersten Registerkarte müssen die IPsec-Einstellungen vorgenommen werden. Geben Sie die Serveradresse und den gemeinsamen Schlüssel an:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Danach gehen wir zur PPP-Konfiguration und geben dort den Benutzernamen an, unter dem wir ins Netzwerk gelangen möchten:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Anschließend öffnen wir die Registerkarte Eigenschaften und geben den Pfad zum Schlüssel, zum Client-Zertifikat und zur CA an:
Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Wir schließen diese Registerkarte und führen die letzte Konfiguration durch. Dazu öffnen wir die Registerkarte "IP-Einstellungen" und setzen ein Häkchen bei der Option "DNS-Serveradresse automatisch beziehen":

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI
Diese Option ermöglicht es dem Client, vom Server eine persönliche IP-Adresse innerhalb des Netzwerks zu erhalten.

Nach allen Einstellungen schließen wir alle Registerkarten und starten den Client neu:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Netzwerkanschluss

Nach der Konfiguration können wir eine Verbindung zum Netzwerk herstellen. Dafür öffnen wir die Applet-Registerkarte und wählen das Netzwerk aus, mit dem wir uns verbinden möchten:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Während des Verbindungsaufbaus wird der Client aufgefordert, den PIN-Code für den Rutoken einzugeben:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Wenn in der Statusleiste eine Benachrichtigung erscheint, dass die Verbindung erfolgreich hergestellt wurde, war die Konfiguration erfolgreich:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Andernfalls sollte geklärt werden, warum die Verbindung nicht hergestellt werden konnte. Dazu sollte das Programmprotokoll untersucht werden, indem im Applet der Befehl "Verbindungsinformationen" ausgewählt wird:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Konfiguration des Windows-Clients

Die Konfiguration des Clients unter Windows erfolgt viel einfacher als unter Linux, da die gesamte erforderliche Software bereits im System integriert ist.

Systemeinrichtung

Wir installieren alle notwendigen Treiber für die Arbeit mit Rutoken, indem wir sie von der offiziellen Website.

Import des Root-Zertifikats zur Authentifizierung

Laden wir das Root-Zertifikat des Servers herunter und installieren es im System. Dazu öffnen wir es und wählen im sich öffnenden Fenster die Option "Zertifikat installieren":

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Im sich öffnenden Fenster wählen wir die Installation des Zertifikats für den lokalen Benutzer. Wenn das Zertifikat allen Benutzern auf dem Computer zur Verfügung stehen soll, wählen Sie die Installation des Zertifikats auf dem lokalen Computer:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Installieren Sie das Zertifikat im Speicher der vertrauenswürdigen Root-Zertifikate der CA:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Nach all diesen Schritten stimmen wir allen folgenden Punkten zu. Jetzt ist das System konfiguriert.

Konfiguration der VPN-Verbindung

Um eine VPN-Verbindung einzurichten, gehen Sie zur Systemsteuerung und wählen Sie die Option zum Erstellen einer neuen Verbindung aus.

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Wählen Sie im Popup-Fenster die Option zum Erstellen einer Verbindung zum Arbeitsplatz aus:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Wählen Sie im nächsten Fenster die VPN-Verbindung aus:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

und geben Sie die Daten der VPN-Verbindung ein und wählen Sie die Option zur Verwendung der Smartcard aus:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Damit ist die Einrichtung noch nicht abgeschlossen. Es bleibt, den gemeinsamen Schlüssel für das IPsec-Protokoll anzugeben. Gehen wir dazu auf die Registerkarte "Einstellungen der Netzwerkverbindungen" und dann auf die Registerkarte "Eigenschaften für diese Verbindung":

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Im sich öffnenden Fenster gehen wir zur Registerkarte "Sicherheit", geben "L2TP/IPsec-Netzwerk" als Netztyp an und wählen "Erweiterte Einstellungen":

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Im sich öffnenden Fenster geben wir den IPsec-Schlüssel ein:
Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Verbindung

Nach Abschluss der Einrichtung können Sie versuchen, sich mit dem Netzwerk zu verbinden:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Während des Verbindungsprozesses werden wir aufgefordert, den PIN-Code des Tokens einzugeben:

Einrichtung der Authentifizierung im L2TP-Netzwerk mit Hilfe von Rutoken ECP 2.0 und Rutoken PKI

Wir haben ein sicheres VPN-Netzwerk eingerichtet und sichergestellt, dass dies nicht kompliziert ist.

Dank

Ich möchte mich nochmals bei unseren Kollegen Wasilij Schokow und Alexander Smirnov für die gemeinsam geleistete Arbeit zur Vereinfachung der Erstellung von VPN-Verbindungen für Linux-Kunden bedanken.

Quelle: habr.com

60GB SSD 8Gb DDR4