
Problemstellung
Noch vor kurzem wussten viele nicht, wie es ist, von zu Hause aus zu arbeiten. Die Pandemie hat die Situation in der Welt abrupt verändert; alle begannen, sich an die neuen Umstände anzupassen, insbesondere daran, dass es einfach unsicher geworden ist, das Haus zu verlassen. Viele mussten schnell die Arbeit von zu Hause aus für ihre Mitarbeiter organisieren.
Das Fehlen eines vernünftigen Ansatzes bei der Auswahl von Lösungen für die remote Arbeit kann jedoch zu irreversiblen Verlusten führen. Die Passwörter der Nutzer können gestohlen werden, was einem Angreifer ermöglicht, unkontrolliert auf das Netzwerk und die IT-Ressourcen des Unternehmens zuzugreifen.
Deshalb ist der Bedarf an der Schaffung zuverlässiger Unternehmens-VPN-Netze gestiegen. Ich werde Ihnen von eine zuverlässige, sichere und einfache zu verwendende VPN-Netzwerk erzählen.
Es arbeitet nach dem IPsec/L2TP-Schema, das unveränderbare Schlüssel und Zertifikate, die auf Tokens gespeichert sind, zur Authentifizierung der Clients verwendet und überträgt Daten über das Netzwerk in verschlüsselter Form.
Als Demonstrationsstände für die Einrichtung 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
VPN funktioniert nach dem IPSec + L2TP + PPP-Schema. Protokoll Point-to-Point-Protokoll (PPP) arbeitet auf der Datenlink-Ebene des OSI-Modells und sorgt für die Benutzerauthentifizierung sowie die Verschlüsselung der übertragenden Daten. Diese Daten werden in die L2TP-Protokolldaten encapsuliert, welches die Verbindung im VPN-Netzwerk bereitstellt, jedoch keine Authentifizierung und Verschlüsselung bietet.
L2TP-Daten werden im IPSec-Protokoll encapsuliert, welches ebenfalls Authentifizierung und Verschlüsselung ermöglicht, jedoch im Gegensatz zu PPP auf Geräteebene und nicht auf Benutzerebene arbeitet.
Diese Besonderheit ermöglicht die Authentifizierung von Benutzern nur von bestimmten Geräten. Wir werden jedoch das IPSec-Protokoll verwenden und die Authentifizierung von Benutzern von jedem Gerät aus ermöglichen.

Die Benutzerauthentifizierung mithilfe von Smartcards erfolgt auf der Ebene des PPP-Protokolls durch das EAP-TLS-Protokoll.
Detailliertere Informationen über die Funktionsweise dieses Schemas finden Sie in .
Warum dieses Schema allen drei Anforderungen eines guten VPN-Netzwerks entspricht
- Die Zuverlässigkeit dieses Systems hat sich über die Jahre bewährt. Es wird seit 2000 zum Aufbau von VPN-Netzen eingesetzt.
- Der PPP-Protokoll sorgt für sichere Benutzerauthentifizierung. bietet keinen ausreichenden Sicherheitsgrad, da bestenfalls Login- und Passwortauthentifizierung verwendet wird. Wir alle wissen, dass Login-Passwörter angeschaut, erraten oder gestohlen werden können. Dennoch hat der Entwickler in dieses Protokolls diesen Aspekt behoben und die Möglichkeit hinzugefügt, Protokolle auf Basis asymmetrischer Verschlüsselung wie EAP-TLS für die Authentifizierung zu verwenden. Zudem wurde die Nutzung von Smartcards zur Authentifizierung ermöglicht, was das System insgesamt sicherer gemacht hat.
Aktuell finden aktive Verhandlungen über die Fusion dieser beiden Projekte statt, und man kann sicher sein, dass dies früher oder später geschehen wird. So liegt beispielsweise in den Fedora-Repositories längst eine gepatchte Version von PPP vor, die sichere Protokolle für die Authentifizierung verwendet. - Noch vor kurzer Zeit konnten nur Windows-Nutzer dieses Netzwerk verwenden, doch unsere Kollegen von der MGU, Wasilij Schokow und Alexander Smirnow, fanden und haben es weiterentwickelt. Gemeinsam haben wir zahlreiche Bugs und Unzulänglichkeiten in der Client-Software behoben, die Installation und Konfiguration des Systems vereinfacht, selbst beim Kompilieren aus dem Quellcode. Zu den wichtigsten Verbesserungen zählen:
- Kompatibilitätsprobleme des alten Clients mit der Benutzeroberfläche neuer Versionen von OpenSSL und Qt wurden behoben.
- Die Übertragung des PIN-Codes des PPPD-Tokens über eine temporäre Datei wurde entfernt.
- Der fehlerhafte Start des Passwortabfrage-Programms über die grafische Benutzeroberfläche wurde korrigiert. Dies wurde erreicht durch die Einrichtung einer korrekten Umgebung für den XL2TPD-Dienst.
- Der Aufbau des L2TP-IPSec-VPN-Daemons erfolgt nun gemeinsam mit der Erstellung des Clients, was den Kompilierungs- und Konfigurationsprozess vereinfacht.
- Zur Erleichterung der Entwicklung wurde das Azure Pipelines-System zur Überprüfung der Korrektheit der Kompilierung integriert.
- Die Möglichkeit, Sicherheitslevel zwangsweise zu reduzieren, wurde hinzugefügt. Im Kontext von OpenSSL ist dies nützlich für die ordnungsgemäße Unterstützung neuer Betriebssysteme, bei denen das Standard-Sicherheitslevel auf 2 gesetzt ist, sowie für VPN-Netzwerke, die Zertifikate verwenden, die die Sicherheitsanforderungen dieses Levels nicht erfüllen. Diese Option ist hilfreich für die Arbeit mit bereits bestehenden, älteren VPN-Netzen.
Die korrigierte Version finden Sie in .
Dieser Client unterstützt die Verwendung von Smartcards zur Authentifizierung und minimiert alle Schwierigkeiten und Herausforderungen bei der Konfiguration dieses Schemas unter Linux, wodurch die Einrichtung des Clients so einfach und schnell wie möglich gestaltet wird.
Natürlich erforderte die bequeme Verbindung von PPP und dem GUI-Client zusätzliche Anpassungen in jedem der Projekte, dennoch ist es gelungen, diese weitestgehend zu minimieren:
- Behoben
- Behoben . Dieser Fehler verhinderte das Laden von Konfigurationen aus der lokalen /etc/ppp/openssl.cnf Datei, sodass nichts außer Informationen über die OpenSSL-Engines zur Arbeit mit Smartcards geladen werden konnte. Dies stellte ein erhebliches Problem dar, wenn wir beispielsweise neben den Informationen über die Engines auch etwas anderes festlegen wollten, wie zum Beispiel die Sicherheitsebene bei der Verbindungsherstellung.
Jetzt können wir mit der Konfiguration beginnen.
Serverkonfiguration
Wir installieren alle erforderlichen Pakete.
Installation von strongswan (IPsec)
Zuerst konfigurieren wir die Firewall für IPsec.
sudo firewall-cmd --permanent --add-port=1701/{tcp,udp}
sudo firewall-cmd --permanent --add-service=ipsec
sudo firewall-cmd --reloadDann fahren wir mit der Installation fort.
sudo yum install epel-release ipsec-tools dnf
sudo dnf install strongswanNach der Installation müssen wir die Konfiguration für strongswan (eine der Implementierungen von IPSec) festlegen. 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-modp1024Lassen Sie uns auch ein gemeinsames Passwort für den Zugriff festlegen. Dieses Passwort muss allen Teilnehmern im Netzwerk bekannt sein, um eine Authentifizierung zu ermöglichen. Allerdings ist diese Methode von Natur aus unsicher, da das Passwort leicht in die Hände von Personen gelangen kann, denen wir keinen Zugang zum Netzwerk gewähren möchten.
Dennoch wird dieser Umstand die Sicherheit des Netzwerks nicht beeinträchtigen, da die Hauptverschlüsselung der Daten und die Benutzerautorisierung über das PPP-Protokoll erfolgt. Fairerweise muss erwähnt werden, dass strongswan sicherere Authentifizierungstechnologien unterstützt, beispielsweise mit privaten Schlüsseln. Außerdem bietet strongswan die Möglichkeit, die Authentifizierung durch Smartcards zu gewährleisten, jedoch wird aktuell nur eine begrenzte Anzahl von Geräten unterstützt, weshalb die Authentifizierung mittels Token und Smartcards von Rutoken derzeit schwierig ist. Legen wir ein allgemeines Passwort über die Datei fest. /etc/strongswan/ipsec.secrets:
# ipsec.secrets - strongSwan IPsec secrets file
%any %any : PSK "SECRET_PASSPHRASE"Lassen Sie uns strongswan neu starten:
sudo systemctl enable strongswan
sudo systemctl restart strongswanInstallation von xl2tp
sudo dnf install xl2tpdWir konfigurieren ihn über die 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 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.adLassen Sie uns den Dienst neu starten:
sudo systemctl enable xl2tpd
sudo systemctl restart xl2tpdPPP-Konfiguration
Es wird empfohlen, die neueste Version von pppd zu installieren. Führen Sie hierzu die folgenden Befehle 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 installFügen Sie in die Datei /etc/ppp/options.xl2tpd Folgendes ein (vorhandene Werte können 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 5000Schreiben Sie das Root-Zertifikat und das Server-Zertifikat 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 -CAcreateserialDamit haben wir die grundlegende Serverkonfiguration abgeschlossen. Der restliche Teil der Serverkonfiguration bezieht sich auf das Hinzufügen neuer Clients.
Neuen Kunden hinzufügen
Um einen neuen Client in das Netzwerk aufzunehmen, muss sein Zertifikat in die vertrauenswürdige Liste für diesen Client aufgenommen werden.
Wenn der Benutzer Teil des VPN-Netzwerks werden möchte, erstellt er ein Schlüsselpaar und einen Zertifikatantrag für diesen Client. Wenn der Benutzer vertrauenswürdig ist, kann dieser Antrag signiert und das erhaltene 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 -CAcreateserialFügen Sie eine Zeile in die Datei /etc/ppp/eaptls-server ein, um den Clientnamen mit seinem Zertifikat abzugleichen:
"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 einzigartig sein.
Es ist auch ratsam, zu überprüfen, dass der Benutzername, den wir hinzufügen, in anderen Authentifizierungsdateien nicht auftaucht, da dies zu Authentifizierungsproblemen führen kann.
Das Client-Zertifikat muss dem Benutzer zurückgesendet werden.
Generierung von Schlüsselpaar und Zertifikat
Für eine erfolgreiche Authentifizierung muss der Client:
- ein Schlüsselpaar generieren;
- ein Root-Zertifikat der CA besitzen;
- ein Zertifikat für sein Schlüsselpaar haben, das von der Root-CA signiert ist.
für Clients unter Linux
Lassen Sie uns zunächst ein Schlüsselpaar auf dem Token generieren und einen Zertifikatsantrag erstellen:
#идентификатор ключа (параметр --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"Sendet den entstehenden Antrag client.req an die CA. Nachdem Sie das Zertifikat für Ihr Schlüsselpaar erhalten haben, speichern Sie es auf dem Token mit derselben ID wie der Schlüssel:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w ./client.pem --id 45für Windows- und Linux-Clients (eine universellere Methode)
Diese Methode ist universeller, da sie die Generierung eines Schlüssels und Zertifikats ermöglicht, das sowohl von Windows- als auch von Linux-Nutzern erfolgreich erkannt wird. Allerdings ist hierfür ein Windows-Gerät erforderlich, um den Schlüsselgenerierungsprozess durchzuführen.
Vor der Generierung von Anfragen und dem Import von Zertifikaten muss das Root-Zertifikat des VPN-Netzwerks zur Liste der vertrauenswürdigen Zertifikate hinzugefügt werden. Dazu öffnen wir es und wählen im angezeigten Fenster die Option "Zertifikat installieren":

Im kommenden Fenster wählen wir die Installation des Zertifikats für den lokalen Benutzer:

Wir installieren das Zertifikat im Speicher der vertrauenswürdigen Root-Zertifikate der CA:

Nach diesen Schritten stimmen wir allen weiteren Punkten zu. Das System ist nun konfiguriert.
Legen wir die Datei cert.tmp mit folgendem Inhalt an:
[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 = FALSEDanach generieren wir das Schlüsselpaar und erstellen einen Zertifikatsantrag. Dazu öffnen wir PowerShell und geben den folgenden Befehl ein:
certreq.exe -new -pin $PIN .cert.tmp .client.reqSenden Sie die erstellte Anfrage client.req an Ihre Zertifizierungsstelle und warten Sie auf den Erhalt des Zertifikats client.pem. Dieses kann auf das Token geschrieben und mit dem folgenden Befehl in den Windows-Zertifikatsspeicher hinzugefügt werden:
certreq.exe -accept .client.pemEs ist zu beachten, dass ähnliche Aktionen auch über die grafische Benutzeroberfläche des Programms mmc durchgeführt werden können, dieser Weg jedoch zeitaufwendiger und weniger programmierbar ist.
Konfiguration des Ubuntu-Clients
HINWEIS
Die Einrichtung des Clients unter Linux ist derzeit zeitintensiv, da sie den Aufbau einzelner Programme aus dem Quellcode erfordert. Wir werden uns bemühen, dass alle Änderungen in Kürze in die offiziellen Repositories aufgenommen werden.
Um eine Verbindung auf der IPSec-Ebene zum Server herzustellen, wird das Paket strongswan und der Daemon xl2tp verwendet. Um die Verbindung zum Netzwerk über Smartcards zu erleichtern, werden wir das Paket l2tp-ipsec-vpn verwenden, das eine grafische Oberfläche für die vereinfachte Konfiguration der Verbindung bietet.
Lassen Sie uns die Komponenten schrittweise zusammenstellen, bevor wir alle erforderlichen Pakete für den direkten Betrieb des VPN installieren:
sudo apt-get install xl2tpd strongswan libp11-3Installation der Software für die Token-Verwaltung
Installieren Sie die neueste Version der Bibliothek librtpkcs11ecp.so mit , sowie den Bibliotheken für die Arbeit mit Smartcards:
sudo apt-get install pcscd pcsc-tools opensc libengine-pkcs11-opensslSchließen Sie den Rutoken an und überprüfen Sie, ob er vom System erkannt wird:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -lInstallation 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 installInstallation des L2tpIpsecVpn-Clients
Der Client muss momentan ebenfalls aus dem Quellcode erstellt werden. Dies erfolgt mit folgender 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 installKonfiguration des L2tpIpsecVpn-Clients
Starten Sie den installierten Client:

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

Für die Arbeit mit Tokens geben wir zunächst den Pfad des opensc-Generators von OpenSSL und der PKCS#11-Bibliothek an. Öffnen Sie dazu die Registerkarte "Einstellungen" zur Anpassung der OpenSSL-Parameter:
.
Schließen Sie das Einstellungsfenster von OpenSSL und gehen Sie zur Netzwerkkonfiguration über. Fügen Sie ein neues Netzwerk hinzu, indem Sie im Einstellungsbereich auf die Schaltfläche Hinzufügen… klicken und den Namen des Netzwerks eingeben:

Nach diesem Schritt wird das Netzwerk im Einstellungsfenster verfügbar sein. Klicken Sie 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 ein:

Anschließend wechseln wir zur Registerkarte PPP-Einstellungen und geben den Benutzernamen ein, mit dem wir uns in das Netzwerk einloggen möchten:

Danach öffnen wir die Registerkarte Eigenschaften und geben den Pfad zum Schlüssel, zum Kundenzertifikat und zur Zertifizierungsstelle an:

Wir schließen diese Registerkarte und führen die abschließenden Einstellungen durch. Öffnen Sie dazu die Registerkarte "IP-Einstellungen" und setzen Sie ein Häkchen bei der Option "DNS-Serveradresse automatisch beziehen":

Diese Option ermöglicht es dem Client, eine private IP-Adresse innerhalb des Netzwerks vom Server zu erhalten.
Nach allen Einstellungen schließen wir alle Registerkarten und starten den Client neu:

Verbindung zum Netzwerk
Nach den Einstellungen kann die Verbindung zum Netzwerk hergestellt werden. Öffnen Sie dazu die Applet-Registerkarte und wählen Sie das Netzwerk aus, mit dem Sie sich verbinden möchten:

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

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

Andernfalls sollten Sie herausfinden, warum die Verbindung nicht hergestellt werden konnte. Dazu empfiehlt es sich, das Protokoll der Software einzusehen, indem Sie im Applet die Option "Verbindungsinformationen" wählen:

Windows-Client einrichten
Die Einrichtung des Clients in Windows ist wesentlich einfacher als in Linux, da die gesamte benötigte Software bereits im System integriert ist.
Systemeinrichtung
Laden Sie alle erforderlichen Treiber für die Arbeit mit RUTOKEN herunter von .
Wurzelzertifikat für die Authentifizierung importieren
Laden Sie das Wurzelzertifikat des Servers herunter und installieren Sie es im System. Öffnen Sie dazu das Zertifikat und wählen Sie im sich öffnenden Fenster die Option "Zertifikat installieren":

Wählen Sie im sich öffnenden Fenster die Installation des Zertifikats für den lokalen Benutzer. Wenn das Zertifikat allen Benutzern des Computers zugänglich sein soll, sollten Sie die Installation des Zertifikats für den lokalen Computer wählen:

Wir installieren das Zertifikat im Speicher der vertrauenswürdigen Root-Zertifikate der CA:

Nach diesen Schritten stimmen wir allen weiteren Punkten zu. Das System ist nun konfiguriert.
VPN-Verbindung einrichten
Um eine VPN-Verbindung einzurichten, gehen Sie zur Systemsteuerung und wählen Sie die Option zum Erstellen einer neuen Verbindung.

Wählen Sie im Popup-Fenster die Option zur Erstellung einer Verbindung für den Zugriff auf den Arbeitsplatz:

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

und geben Sie die Daten der VPN-Verbindung ein, sowie die Option zur Nutzung einer Smartcard an:

Hier endet die Konfiguration noch nicht. Wir müssen den gemeinsamen Schlüssel für das IPsec-Protokoll angeben. Gehen wir dazu auf die Registerkarte „Netzwerkverbindungen“ und dann auf die Registerkarte „Eigenschaften dieser Verbindung“:

In dem sich öffnenden Fenster wechseln wir zur Registerkarte "Sicherheit", wählen als Netzwerktyp "L2TP/IPsec" und klicken auf "Erweiterte Optionen":

In dem sich öffnenden Fenster geben wir den gemeinsamen IPsec-Schlüssel ein:

Domain-Anbindung
Nach Abschluss der Konfiguration können wir versuchen, eine Verbindung zum Netzwerk herzustellen:

Bei der Verbindung werden wir aufgefordert, den PIN-Code des Tokens einzugeben:

Wir haben ein sicheres VPN-Netzwerk eingerichtet und festgestellt, dass dies nicht schwierig ist.
Danksagungen
Wir möchten uns erneut bei unseren Kollegen Wasilij Schokow und Alexander Smirnow für die gemeinsame Arbeit bedanken, die die Erstellung von VPN-Verbindungen für Linux-Kunden erleichtert hat.
Quelle: habr.com
