
Problematika
Edhe përpara pak kohe, shumë njerëz nuk e dinin se çfarë do të thoshte të punoje nga shtëpia. Pandemia ndryshoi papritur situatën në botë, të gjithë filluan të adaptohen me rrethanat, veçanërisht me faktin se dalja nga shtëpia ishte thjesht e pasigurt. Dhe shumë njerëz u detyruan të organizonin shpejt punën nga shtëpia për stafin e tyre.
Megjithatë, mungesa e një qasje të arsyeshme në përzgjedhjen e zgjidhjeve për punën në distancë mund të çojë në humbje të pakthyeshme. Fjalëkalimet e përdoruesve mund të vidhen, dhe kjo do t'i japë mundësinë sulmuesit të lidhet pa kontroll me rrjetin dhe burimet IT të ndërmarrjes.
Pikërisht nga kjo arsye tani është rritur nevoja për krijimin e rrjeteve VPN korporative të besueshme. Do t'ju flas për të besueshëm, e sigurtë dhe të lehtë në përdorim të rrjeteve VPN.
Ajo funksionon sipas skemës IPsec/L2TP, e cila përdor për autentifikimin e klientëve çelësa dhe certifikata të pashkëputshme, të ruajtura në tokenë, dhe gjithashtu transmeton të dhënat në rrjet në formën e koduar.
Si stenda demonstrative për konfigurimin u përdorën një server me CentOS 7 (adresa: centos.vpn.server.ad) dhe një klient me Ubuntu 20.04, si dhe një klient me Windows 10.
System Description
VPN do të funksionojë sipas skemës IPSec + L2TP + PPP. Protokolli Point-to-Point Protocol (PPP) funksionon në nivelin kanalesh të modelit OSI dhe siguron autentifikimin e përdoruesit dhe kodimin e të dhënave të transmetuara. Të dhënat e tij inkapsulohen në të dhënat e protokollit L2TP, i cili në fakt siguron krijimin e lidhjes në rrjetin VPN, por nuk siguron autentifikimin dhe kodimin.
Të dhënat L2TP inkapsulohen në protokollin IPSec, i cili gjithashtu siguron autentifikimin dhe kodimin, por ndryshe nga protokolli PPP, autentifikimi dhe kodimi ndodhin në nivelin e pajisjeve, dhe jo në nivelin e përdoruesve.
Kjo veçori lejon që autentifikimi i përdoruesve të bëhet vetëm nga disa pajisje të caktuara. Ne do të përdorim protokollin IPSec si një të tillë dhe do të lejojmë që autentifikimi i përdoruesve të bëhet nga çdo pajisje.

Autentifikimi i përdoruesit me ndihmën e kartave inteligjente do të kryhet në nivelin e protokollit PPP me ndihmën e protokollit EAP-TLS.
Informacione më të detajuara rreth funksionimit të kësaj skeme mund të gjenden në .
Pse kjo skemë i plotëson të tri kërkesat për një rrjet VPN të mirë
- Besueshmëria e kësaj skeme është provuar me kohën. Ajo është përdorur për shpërndarjen e rrjeteve VPN që nga viti 2000.
- Protokolli PPP siguron autentifikimin e sigurt të përdoruesit. nuk siguron një nivel të mjaftueshëm sigurie, sepse për autentifikimin në mënyrën më të mirë përdoret autentifikimi me emër përdoruesi dhe fjalëkalim. Të gjithë e dimë se emri i përdoruesit dhe fjalëkalimi mund të shihen, të zbulohen ose të vjedhen. Megjithatë, shumë kohë më parë, zhvilluesi në ka korrigjuar këtë çështje dhe ka shtuar mundësinë e përdorimit të protokolleve për autentifikim të bazuara në enkriptimin asimetrik, si EAP-TLS. Për më tepër, ai ka shtuar mundësinë e përdorimit të kartave të mençura për autentifikimin, duke e bërë këtë sistem më të sigurt.
Aktualisht janë duke u zhvilluar negociata aktive për bashkimin e këtyre dy projekteve dhe mund të jeni të sigurt se herët a vonë kjo do të ndodhë. Për shembull, në depozitat Fedora prej kohësh ekziston një version i patch-uar i PPP, që përdor protokolle të sigurta për autentifikim. - Disa kohë më parë, kjo rrjet mund të përdorej vetëm nga përdoruesit e Windows, por kolegët tanë nga Universiteti Shtetëror i Moskës, Vasiliy Shokov dhe Aleksandr Smirnov gjetën dhe e përmirësuan atë. Me përpjekjet e përbashkëta ne kemi bërë shumë rregullime dhe përmirësime në funksionimin e klientit, duke e bërë instalimin dhe konfigurimin e sistemit më të thjeshtë, madje edhe gjatë ndërtimit nga burimet. Problemet më domethënëse përfshijnë:
- Korrigjimi i problemeve të kompatibilitetit të klientit të vjetër me ndërfaqen e versioneve të reja të openssl dhe qt.
- Kufizimi i transmetimit të PIN kodit të token-it pppd përmes një skedari temporary.
- Korrigjimi i nisjes së pavlefshme të programit për kërkesën e fjalëkalimit përmes ndërfaqes grafike. Kjo u bë duke vendosur një mjedis të saktë për shërbimin xl2tpd.
- Ndërtimi i demonit L2tpIpsecVpn tani realizohet së bashku me ndërtimin e vetë klientit, duke e lehtësuar procesin e ndërtimit dhe konfigurimit.
- Për lehtësinë e zhvillimit është lidhur sistemi Azure Pipelines për testimin e saktësisë së ndërtimit.
- Shtuar mundësinë për të detyruar uljen në kontekstin e openssl. Kjo është e dobishme për mbështetje të saktë të sistemeve operative të reja, ku niveli standard i sigurisë është vendosur në 2, me rrjetet VPN që përdorin certifikata që nuk plotësojnë kërkesat e sigurisë së këtij niveli. Kjo mundësi do të jetë e dobishme për të punuar me rrjetet VPN të vjetra që tashmë ekzistojnë.
Versioni i rregulluar mund të gjendet në .
Ky klient mbështet përdorimin e kartave inteligjente për autentifikim, si dhe fsheh sa më shumë që të jetë e mundur të gjitha ngarkesat dhe vështirësitë e përshtatjes së kësaj skeme nën Linux, duke bërë konfigurimin e klientit sa më të thjeshtë dhe të shpejtë.
Sigurisht, për një lidhje të rehatshme PPP dhe GUI të klientit, nuk ka munguar edhe pa rregullime shtesë të secilit nga projektet, por përtej kësaj, ato arritën të minimizohen dhe të reduktohen ndjeshëm:
- Korrigjuar
- Korrigjuar . Ky gabim nuk lejonte ngarkimin nga dosja lokale /etc/ppp/openssl.cnf me konfigurimin për asgjë tjetër përveç informacionit mbi motorët openssl për punën me kartat inteligjente, që krijonte një shqetësim të rëndësishëm, nëse, për shembull, përveç informacionit mbi motorët, ne do të donim të vendosnim diçka tjetër. Për shembull, të caktuarim nivelin e sigurisë gjatë vendosjes së lidhjes.
Tani mund të fillojmë me konfigurimin.
Konfigurimi i serverit
Të instalojmë të gjitha paketat e nevojshme.
Instalimi i strongswan (IPsec)
Së pari, do të konfigurimi i firewall-it për punën e ipsec
sudo firewall-cmd --permanent --add-port=1701/{tcp,udp}
sudo firewall-cmd --permanent --add-service=ipsec
sudo firewall-cmd --reloadPastaj do të fillojmë instalimin
sudo yum install epel-release ipsec-tools dnf
sudo dnf install strongswanPas instalimit, është e nevojshme të caktohet konfigurimi për strongswan (një nga realizimet e IPSec). Për këtë do të redaktojmë dosjen /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-modp1024Po ashtu do të përcaktojmë një fjalëkalim të përbashkët për hyrje. Fjalëkalimi i përbashkët duhet të jetë i njohur nga të gjithë pjesëmarrësit e rrjetit për autentifikim. Ky metodë është në mënyrë të qartë e pasigurt, pasi ky fjalëkalim mund të bëhet lehtësisht i njohur për individë që ne nuk dëshirojmë t'u japim akses në rrjet.
Megjithatë, edhe ky fakt nuk do të ndikojë në sigurinë e organizatës së rrjetit, pasi enkriptimi kryesor i të dhënave dhe autentifikimi i përdoruesve kryhet nga protokolli PPP. Por, për të qenë të drejtë, duhet të theksojmë se strongswan mbështet teknologji më të sigurta për autentifikim, për shembull, përmes çelësave privatë. Gjithashtu, në strongswan ka mundësi për të siguruar autentifikim përmes kartave inteligjente, por deri tani mbështeten një numër i kufizuar pajisjesh, dhe prandaj autentifikimi përmes tokenëve dhe kartave inteligjente Rutoken është i vështirë. Ne do të përcaktojmë fjalëkalimin e përbashkët përmes skedarit. /etc/strongswan/ipsec.secrets:
# ipsec.secrets - strongSwan IPsec secrets file
%any %any : PSK "SECRET_PASSPHRASE"Rinisim strongswan:
sudo systemctl enable strongswan
sudo systemctl restart strongswanInstalimi i xl2tp
sudo dnf install xl2tpdDo ta konfigurojmë atë përmes skedarit /etc/xl2tpd/xl2tpd.conf:
[global]
force userspace = yes
listen-addr = 0.0.0.0
ipsec saref = yes
[lns default]
exclusive = no
; përcakton adresën statike të serverit në rrjetin virtual
local ip = 100.10.10.1
; përcakton gamën e adresave virtuale
ip range = 100.10.10.1-100.10.10.254
assign ip = yes
refuse pap = yes
require authentication = yes
; mund ta çaktivizoni këtë opsion pas përfundimit të konfigurimit të suksesshëm të rrjetit
ppp debug = yes
length bit = yes
pppoptfile = /etc/ppp/options.xl2tpd
; përcakton adresën e serverit në rrjet
name = centos.vpn.server.adRinisim shërbimin:
sudo systemctl enable xl2tpd
sudo systemctl restart xl2tpdKonfigurimi i PPP
Është e këshillueshme të instaloni versionin më të fundit të pppd. Për këtë, do të kryejmë këtë sekuencë komandash:
sudo yum install git make gcc openssl-devel
git clone "https://github.com/jjkeijser/ppp"
cd ppp
./configure --prefix /usr
make -j4
sudo make installShkruani në skedar /etc/ppp/options.xl2tpd të mëposhtmet (nëse aty janë ndonjë vlerë, ato mund të fshihen):
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 5000Shkruani certifikatën rrënjësore dhe certifikatën e serverit:
#директория с сертификатами пользователей, УЦ и сервера
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 -CAcreateserialNë këtë mënyrë, ne përfunduan me konfigurimin kryesor të serverit. Pjesa tjetër e konfigurimit të serverit lidhet me shtimin e klientëve të rinj.
Shtimi i klientit të ri
Për të shtuar një klient të ri në rrjet, është e nevojshme të regjistrohet certifikata e tij në listën e besuar për këtë klient.
Nëse përdoruesi dëshiron të bëhet anëtar i rrjetit VPN, ai krijon një çift çelësash dhe një kërkesë për certifikatë për këtë klient. Nëse përdoruesi është besnik, atëherë kjo kërkesë mund të nënshkruhet dhe certifikata e marrë të regjistrohet në drejtorinë e certifikatave:
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 -CAcreateserialShtojmë një rresht në skedarin /etc/ppp/eaptls-server për të lidhur emrin e klientit me certifikatën e tij:
"client" * /etc/ppp/certs/client.pem /etc/ppp/certs/server.pem /etc/ppp/certs/ca.pem /etc/ppp/keys/server.pem *NOTE
Për të mos u ngatërruar, është më mirë që: Emri i zakonshëm, emri i skedarit të certifikatës dhe emri i përdoruesit të jenë unike.
Gjithashtu, është e rëndësishme të kontrolloni që në skedarët e tjerë të autentikimit të mos figurojë askund emri i përdoruesit që po shtojmë, përndryshe do të lindin probleme me mënyrën e autentikimit të përdoruesit.
Ky certifikatë gjithashtu duhet t'i dërgohet përsëri përdoruesit.
Generimi i çiftit të çelësave dhe certifikatës
Për autentikim të suksesshëm, përdoruesi duhet:
- të gjenerojë një çift çelësh;
- të ketë certifikatën rrënjësore të CA;
- të ketë një certifikatë për çiftin e tij të çelësave, të nënshkruar nga CA rrënjësore.
për klientin në Linux
Së pari, le të gjenerojmë një çift çelësh në token dhe të krijojmë një kërkesë për certifikatë:
#идентификатор ключа (параметр --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"Dërgoni kërkesën e shfaqur client.req në CA. Pasi të merrni certifikatën për çiftin tuaj të çelësave, regjistrojeni në token me të njëjtin id si çelësi:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w ./client.pem --id 45për klientët Windows dhe Linux (një mënyrë më universale)
Kjo mënyrë është më universale, pasi lejon gjenerimin e çelësit dhe certifikatës, të cilat do të njihen me sukses nga përdoruesit Windows dhe Linux, por kërkon një makinë Windows për të kryer procedurën e gjenerimit të çelësave.
Para se të gjeneroni kërkesat dhe të importoni certifikatën, është e nevojshme të shtoni certifikatën rrënjësore të rrjetit VPN në listën e besuar. Për këtë, hapim atë dhe në dritaren e hapur zgjedhim opsionin "Instalo certifikatën":

Në dritaren e hapur, zgjedhim instalimin e certifikatës për përdoruesin lokal:

Do të instalojmë certifikatën në depozitat e certifikatave rrënjësore të CA të besuara:

Pas këtyre veprimeve, pajtohemi me të gjitha pikat e mëtejshme. Tani sistemi është i konfiguruar.
Krijojmë skedarin cert.tmp me përmbajtjen e mëposhtme:
[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 = FALSEPas kësaj, do të gjenerojmë një çift çelësash dhe do të krijojmë një kërkesë për certifikatën. Për këtë, hapim powershell dhe shkruajmë komandën e mëposhtme:
certreq.exe -new -pin $PIN .cert.tmp .client.reqDërgoni kërkesën e krijuar client.req në UÇ tuaj dhe prisni të merrni certifikatën client.pem. Ajo mund të regjistrohet në token dhe të shtohet në arkivin e certifikatave të Windows me komandën e mëposhtme:
certreq.exe -accept .client.pemDuhet theksuar se veprime të ngjashme mund të kryhen përmes ndërfaqes grafike të programit mmc, por kjo metodë është më e lodhshme dhe më pak e programueshme.
Konfigurimi i klientit Ubuntu
NOTE
Konfigurimi i klientit në Linux aktualisht është një proces mjaft i gjatë, pasi kërkon ndërtimin e programeve të veçanta nga burimi. Ne do të përpiqemi që së shpejti të arrijmë që të gjitha ndryshimet të hyjnë në depo zyrtare.
Për të siguruar lidhjen në nivelin IPSec me serverin - përdoret paketa strongswan dhe demon xl2tp. Për të lehtësuar lidhjen në rrjet me karta inteligjente - do të përdorim paketën l2tp-ipsec-vpn, e cila ofron një ndërfaqe grafike për lehtësimin e konfigurimit të lidhjes.
Le të fillojmë ndërtimin e elementeve hapi-hapi, por para kësaj, le të instalojmë të gjitha paketat e nevojshme për punën e drejtpërdrejtë me VPN:
sudo apt-get install xl2tpd strongswan libp11-3Instalimi i softuerit për punën me tokenët
Instaloni versionin më të fundit të bibliotekës librtpkcs11ecp.so me , gjithashtu bibliotekat për punën me kartat inteligjente:
sudo apt-get install pcscd pcsc-tools opensc libengine-pkcs11-opensslLidhni Rytoken dhe kontrolloni që ajo të njihet nga sistemi:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -lInstalimi i ppp me patch
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 installInstalimi i klientit L2tpIpsecVpn
Aktualisht, klienti gjithashtu duhet të ndërtohet nga burimi. Kjo bëhet me ndihmën e sekuencës së mëposhtme të komandave:
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 installKonfigurimi i klientit L2tpIpsecVpn
Shkruani klientin e instaluar:

Pas hapjes, duhet të hapet aplikacioni L2tpIpsecVPN. Klikoni me të djathtën mbi të dhe bëni konfigurimin e lidhjes:

Për të punuar me tokent, fillimisht do të kemi nevojë të tregojmë rrugën e motorit opensc të OpenSSL dhe bibliotës PKCS#11. Për këtë, hapni skedën "Preferences" për të konfiguruar parametrat e openssl:
.
Do të mbyllim dritaren e cilësimeve të OpenSSL dhe do të kalojmë në konfigurimin e rrjetit. Shtoni një rrjet të ri duke klikuar mbi butonin Add… në panelet e cilësimeve dhe shkruani emrin e rrjetit:

Pas kësaj, ky rrjet do të bëhet i disponueshëm në panelet e cilësimeve. Klikoni dy herë me të djathtën mbi rrjetin e ri për ta konfiguruar atë. Në skedën e parë nevojitet të bëni konfigurimin e IPsec. Vendosni adresën e shërbimit dhe çelësin e përbashkët:

Pas kësaj kaloni në skedën e konfigurimit PPP dhe specifikoni emrin e përdoruesit me të cilin dëshironi të hyni në rrjet:

Pastaj hapni skedën Properties dhe tregoni rrugën e çelësit, certifikatës së klientit dhe CA:

Mbyllni këtë skedë dhe bëni konfigurimin përfundimtar, për këtë hapni skedën "IP settings" dhe vendosni një shënim pranë opsionit "Obtain DNS server address automatically":

Ky opsion do t’i lejojë klientit të marrë nga serveri një IP personale brenda rrjetit.
Pas të gjitha konfigurimeve, do të mbyllim të gjitha skedat dhe do të rindezim klientin:

Lidhja me rrjetin
Pas konfigurimeve, mund të lidhemi me rrjetin. Për këtë, hapni skedën e aplikacionit dhe zgjidhni rrjetin me të cilin dëshironi të lidheni:

Gjatë procesit të instalimit të lidhjes, klienti do t'ju kërkojë të tregoni PIN-in e Rutoken:

Nëse në status-barin shfaqet një njoftim që lidhja është vendosur me sukses, atëherë konfigurimi është realizuar me sukses:

Në rastin e kundërt, duhet të hetoni se përse lidhja nuk u vendos. Për këtë, shikoni logun e programit, duke zgjedhur në aplikacion komandën "Connection information":

Konfigurimi i klientit Windows
Konfigurimi i klientit në Windows kryhet shumë më lehtë se në Linux, pasi të gjithë softuerët e nevojshëm janë të instaluar tashmë në sistem.
Konfigurimi i sistemit
Do të instalojmë të gjitha driverat e nevojshëm për punën me Rutoken-ët duke i shkarkuar nga .
Importimi i certifikatës rrënjësore për autentifikim
Shkarkoni certifikatën rrënjësore të serverit dhe instaloni në sistem. Për këtë, hapeni dhe në dritaren që hapet zgjidhni opsionin "Install Certificate":

Në dritaren që hapet, zgjidhni instalimin e certifikatës për përdoruesin lokal. Nëse dëshironi që certifikata të jetë e aksesueshme për të gjithë përdoruesit në kompjuter, atëherë duhet të zgjidhni instalimin e certifikatës në kompjuterin lokal:

Do të instalojmë certifikatën në depozitat e certifikatave rrënjësore të CA të besuara:

Pas këtyre veprimeve, pajtohemi me të gjitha pikat e mëtejshme. Tani sistemi është i konfiguruar.
Konfigurimi i lidhjes VPN
Për të konfiguruar lidhjen VPN, shkoni në panelin e kontrollit dhe zgjidhni opsionin për të krijuar një lidhje të re.

Në dritarën që shfaqet, zgjidhni opsionin e krijimit të lidhjes për t'u lidhur me vendin e punës:

Në dritaren e ardhshme, zgjidhni lidhjen përmes VPN:

dhe futni të dhënat e lidhjes VPN, si dhe specifikoni opsionin për të përdorur kartën e mençur:

Këtu konfigurimi nuk ka mbaruar. Duhet të specifikoni çelësin për protokollin IPsec, për këtë kaloni në skedën "Cilësimet e lidhjeve të rrjetit" dhe më pas kaloni në skedën "Pronat për këtë lidhje":

Në dritaren që hapet, kaloni në skedën "Siguria", specifikoni si tip rrjeti "Rrjeti L2TP/IPsec" dhe zgjidhni "Opsionet e tjera":

Në dritaren që hapet, specifikoni çelësin e përbashkët IPsec:

Konektimi
Pasi të përfundojë konfigurimi, mund të provoni të lidheni me rrjetin:

Gjatë procesit të lidhjes do të kërkohet nga ne të futim kodin PIN të tokenit:

Ne kemi konfiguruar një rrjet VPN të sigurt dhe kemi verifikuar që nuk është e komplikuar.
Faleminderit
Dëshiroj të falënderoj përsëri kolegët tanë Vasili Shokov dhe Aleksandër Smirnov për punën e përbashkët për të lehtësuar krijimin e lidhjeve VPN për klientët Linux.
Burimi: habr.com
