ProHoster > blog > Amministrazzjoni > Twaqqif ta' awtentikazzjoni fin-netwerk L2TP bl-użu ta' Rutoken EDS 2.0 u Rutoken PKI
Twaqqif ta' awtentikazzjoni fin-netwerk L2TP bl-użu ta' Rutoken EDS 2.0 u Rutoken PKI
Kwistjonijiet
Dan l-aħħar, ħafna ma kinux jafu x'kienet taħdem mid-dar. Il-pandemija bidlet b'mod drammatiku s-sitwazzjoni fid-dinja; kulħadd beda jadatta għaċ-ċirkostanzi attwali, jiġifieri għall-fatt li sar sempliċement mhux sigur li titlaq mid-dar. U ħafna kellhom jorganizzaw malajr ix-xogħol mid-dar għall-impjegati tagħhom.
Madankollu, in-nuqqas ta’ approċċ kompetenti biex jintgħażlu soluzzjonijiet għal xogħol mill-bogħod jista’ jwassal għal telf irriversibbli. Il-passwords tal-utenti jistgħu jinsterqu, u dan jippermetti lil attakkant li jgħaqqad b'mod inkontrollabbli man-netwerk u r-riżorsi tal-IT tal-intrapriża.
Huwa għalhekk li l-ħtieġa għall-ħolqien ta 'netwerks VPN korporattivi affidabbli issa żdiedet. Jien ngħidlek dwar ta'min jafdah, bla periklu и sempliċi fl-użu ta 'netwerk VPN.
Taħdem skont l-iskema IPsec/L2TP, li tuża ċwievet u ċertifikati li ma jistgħux jiġu rkuprati maħżuna fuq tokens biex jawtentika lill-klijenti, u wkoll tittrażmetti data fuq in-netwerk f'forma kriptata.
Server b'CentOS 7 (indirizz: centos.vpn.server.ad) u klijent b'Ubuntu 20.04, kif ukoll klijent bil-Windows 10, intużaw bħala dimostrazzjoni stands għall-konfigurazzjoni.
Deskrizzjoni tas-Sistema
Il-VPN se jaħdem skont l-iskema IPSec + L2TP + PPP. Protokoll Protokoll Punt-sa-Punt (PPP) topera fis-saff tal-link tad-dejta tal-mudell OSI u tipprovdi awtentikazzjoni tal-utent u kriptaġġ tad-dejta trażmessa. Id-dejta tagħha hija inkapsulata fid-dejta tal-protokoll L2TP, li fil-fatt jiżgura l-ħolqien ta 'konnessjoni fin-netwerk VPN, iżda ma jipprovdix awtentikazzjoni u encryption.
Id-dejta L2TP hija inkapsulata f'IPSec, li jipprovdi wkoll awtentikazzjoni u encryption, iżda b'differenza mill-PPP, l-awtentikazzjoni u l-encryption iseħħu fil-livell tal-apparat, mhux fil-livell tal-utent.
Din il-karatteristika tippermettilek jawtentika utenti biss minn ċerti apparati. Aħna se nużaw il-protokoll IPSec kif inhu u nippermettu l-awtentikazzjoni tal-utent minn kwalunkwe apparat.
Informazzjoni aktar dettaljata dwar it-tħaddim ta 'dan iċ-ċirkwit tista' tinstab fi Dan l-artikolu.
Għaliex din l-iskema tissodisfa t-tliet rekwiżiti ta 'netwerk VPN tajjeb?
L-affidabbiltà ta' din l-iskema ġiet ittestjata biż-żmien. Ilu jintuża biex jitħaddem netwerks VPN mill-2000.
L-awtentikazzjoni sigura tal-utent hija pprovduta mill-protokoll PPP. Implimentazzjoni standard tal-protokoll PPP żviluppat minn Paul Mackerras ma jipprovdix livell suffiċjenti ta’ sigurtà, għax Għall-awtentikazzjoni, fl-aħjar każ, tintuża awtentikazzjoni li tuża login u password. Ilkoll nafu li password tal-login tista’ tiġi spijata, misruqa jew misruqa. Madankollu, għal żmien twil issa l-iżviluppatur Jan Just Keijser в l-implimentazzjoni tagħha Dan il-protokoll ikkoreġa din il-kwistjoni u żied il-kapaċità li jintużaw protokolli bbażati fuq encryption asimetriku, bħal EAP-TLS, għall-awtentikazzjoni. Barra minn hekk, żied il-kapaċità li juża smart cards għall-awtentikazzjoni, li għamlet is-sistema aktar sigura.
Bħalissa, għaddejjin negozjati attivi biex dawn iż-żewġ proġetti jingħaqdu u tista' tkun ċert li llum jew għada dan iseħħ xorta waħda. Per eżempju, verżjoni patched ta 'PPP ilha fir-repożitorji Fedora għal żmien twil, bl-użu ta' protokolli sikuri għall-awtentikazzjoni.
Sa ftit ilu, dan in-netwerk seta' jintuża biss minn utenti tal-Windows, iżda l-kollegi tagħna mill-Università Statali ta' Moska Vasily Shokov u Alexander Smirnov sabu proġett antik klijent L2TP għal Linux u mmodifikaha. Flimkien, iffissajna ħafna bugs u nuqqasijiet fix-xogħol tal-klijent, issimplifikaw l-installazzjoni u l-konfigurazzjoni tas-sistema, anke meta nibnu mis-sors. L-aktar sinifikanti minnhom huma:
Fissi problemi ta 'kompatibilità tal-klijent l-antik mal-interface ta' verżjonijiet ġodda ta 'openssl u qt.
Tneħħa pppd milli jgħaddi t-token PIN minn fajl temporanju.
Tnedija mhux korretta ffissata tal-programm tat-talba tal-password permezz tal-interface grafika. Dan sar billi ġie installat l-ambjent korrett għas-servizz xl2tpd.
Il-bini tad-daemon L2tpIpsecVpn issa titwettaq flimkien mal-bini tal-klijent innifsu, li jissimplifika l-proċess tal-bini u l-konfigurazzjoni.
Għal faċilità ta 'żvilupp, is-sistema Azure Pipelines hija konnessa biex tittestja l-korrettezza tal-bini.
Miżjud l-abbiltà li jġiegħel id-degrad livell ta ’sigurtà fil-kuntest ta' openssl. Dan huwa utli għall-appoġġ korrett ta 'sistemi operattivi ġodda fejn il-livell ta' sigurtà standard huwa ssettjat għal 2, b'netwerks VPN li jużaw ċertifikati li ma jissodisfawx ir-rekwiżiti ta 'sigurtà ta' dan il-livell. Din l-għażla se tkun utli biex taħdem ma 'netwerks VPN qodma eżistenti.
Dan il-klijent jappoġġja l-użu ta 'smart cards għall-awtentikazzjoni, u jaħbi wkoll kemm jista' jkun it-tbatijiet u t-tbatijiet kollha tat-twaqqif ta 'din l-iskema taħt Linux, u jagħmel is-setup tal-klijent sempliċi u veloċi kemm jista' jkun.
Naturalment, għal konnessjoni konvenjenti bejn PPP u l-GUI tal-klijent, ma kienx possibbli mingħajr editjar addizzjonali għal kull wieħed mill-proġetti, iżda madankollu ġew minimizzati u mnaqqsa għall-minimu:
Fiss żball fl-ordni tat-tagħbija tal-konfigurazzjoni u l-inizjalizzazzjoni tal-kuntest openssl. Dan l-iżball ma ppermettilniex tagħbija xejn mill-fajl tal-konfigurazzjoni lokali /etc/ppp/openssl.cnf ħlief informazzjoni dwar magni openssl biex naħdmu bi smart cards, li kien inkonvenjent serju jekk, pereżempju, minbarra l-informazzjoni dwar il-magni, ridna nissettjaw xi ħaġa oħra. Pereżempju, iffissa l-livell tas-sigurtà meta tistabbilixxi konnessjoni.
Wara l-installazzjoni, għandek bżonn tikkonfigura strongswan (waħda mill-implimentazzjonijiet IPSec). Biex tagħmel dan, editja l-fajl /etc/strongswan/ipsec.conf :
Se nissettjaw ukoll password tal-login komuni. Il-password kondiviża trid tkun magħrufa mill-parteċipanti kollha tan-netwerk għall-awtentikazzjoni. Dan il-metodu huwa ovvjament inaffidabbli, għaliex din il-password tista' faċilment issir magħrufa minn individwi li ma rridux nipprovdu aċċess għan-netwerk.
Madankollu, anke dan il-fatt mhux se jaffettwa s-sigurtà tan-netwerk, għaliex Il-kriptaġġ bażiku tad-dejta u l-awtentikazzjoni tal-utent jitwettqu mill-protokoll PPP. Iżda b'mod ġust, ta 'min jinnota li strongswan jappoġġja teknoloġiji aktar siguri għall-awtentikazzjoni, pereżempju, bl-użu ta' ċwievet privati. Strongswan għandu wkoll il-kapaċità li jipprovdi awtentikazzjoni bl-użu ta 'smart cards, iżda s'issa biss firxa limitata ta' apparati huma appoġġjati u għalhekk l-awtentikazzjoni bl-użu ta 'tokens Rutoken u smart cards għadha diffiċli. Ejja nissettjaw password ġenerali permezz tal-fajl /etc/strongswan/ipsec.secrets:
Ejja kkonfiguraha permezz tal-fajl /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
Biex iżżid klijent ġdid man-netwerk, trid iżżid iċ-ċertifikat tiegħu mal-lista ta 'dawk ta' fiduċja għal dan il-klijent.
Jekk utent irid isir membru ta 'netwerk VPN, huwa joħloq par ta' ċwievet u applikazzjoni ta 'ċertifikat għal dan il-klijent. Jekk l-utent huwa fdat, allura din l-applikazzjoni tista 'tiġi ffirmata, u ċ-ċertifikat li jirriżulta jista' jinkiteb fid-direttorju taċ-ċertifikati:
NOTI
Biex tiġi evitata l-konfużjoni, huwa aħjar li: Isem Komuni, isem tal-fajl taċ-ċertifikat u isem tal-utent ikunu uniċi.
Ta’ min iċċekkja wkoll li l-isem tal-utent li qed inżidu ma jidher imkien f’fajls oħra ta’ awtentikazzjoni, inkella jkun hemm problemi bil-mod kif l-utent jiġi awtentikat.
L-istess ċertifikat għandu jintbagħat lura lill-utent.
Ġenerazzjoni ta' par ta' ċwievet u ċertifikat
Għal awtentikazzjoni b'suċċess, il-klijent għandu:
jiġġenera par ċavetta;
għandhom ċertifikat ta' l-għerq CA;
għandek ċertifikat għall-par taċ-ċwievet tiegħek iffirmat mill-għerq CA.
għall-klijent fuq Linux
L-ewwel, ejja niġġeneraw par ta 'ċavetta fuq it-token u oħloq applikazzjoni għaċ-ċertifikat:
Ibgħat l-applikazzjoni client.req li tidher lis-CA. Ladarba tirċievi ċertifikat għall-par taċ-ċavetta tiegħek, ikteb fuq token bl-istess id bħaċ-ċavetta:
għall-klijenti Windows u Linux (metodu aktar universali)
Dan il-metodu huwa aktar universali, għaliex jippermettilek tiġġenera ċavetta u ċertifikat li se jiġu rikonoxxuti b'suċċess mill-utenti tal-Windows u tal-Linux, iżda teħtieġ magna tal-Windows biex twettaq il-proċedura tal-ġenerazzjoni taċ-ċavetta.
Qabel ma tiġġenera talbiet u timporta ċertifikati, trid iżżid iċ-ċertifikat tal-għeruq tan-netwerk VPN mal-lista ta 'dawk fdati. Biex tagħmel dan, iftaħ u fit-tieqa li tiftaħ, agħżel l-għażla "Installa ċertifikat":
Fit-tieqa li tiftaħ, agħżel l-installazzjoni ta' ċertifikat għall-utent lokali:
Ejja ninstallaw iċ-ċertifikat fil-maħżen fdat taċ-ċertifikat ta' l-għeruq tas-CA:
Wara dawn l-azzjonijiet kollha, naqblu mal-punti oħra kollha. Is-sistema issa hija kkonfigurata.
Wara dan, aħna niġġeneraw par ta 'ċavetta u noħolqu applikazzjoni għaċ-ċertifikat. Biex tagħmel dan, iftaħ powershell u daħħal il-kmand li ġej:
certreq.exe -new -pin $PIN .cert.tmp .client.req
Ibgħat l-applikazzjoni maħluqa client.req lis-CA tiegħek u stenna li jiġi riċevut iċ-ċertifikat client.pem. Jista 'jinkiteb fuq token u jiżdied mal-maħżen taċ-ċertifikati tal-Windows billi tuża l-kmand li ġej:
certreq.exe -accept .client.pem
Ta 'min jinnota li azzjonijiet simili jistgħu jiġu riprodotti bl-użu tal-interface grafika tal-programm mmc, iżda dan il-metodu jieħu aktar ħin u inqas programmabbli.
Twaqqif tal-klijent Ubuntu
NOTI
It-twaqqif ta' klijent fuq Linux bħalissa jieħu ħafna ħin, għaliex... jeħtieġ li jinbnew programmi separati mis-sors. Aħna nippruvaw niżguraw li l-bidliet kollha jkunu inklużi fir-repożitorji uffiċjali fil-futur qarib.
Biex tiġi żgurata konnessjoni fil-livell IPSec mas-server, jintużaw il-pakkett strongswan u d-daemon xl2tp. Biex tissimplifika l-konnessjoni man-netwerk bl-użu ta 'smart cards, se nużaw il-pakkett l2tp-ipsec-vpn, li jipprovdi qoxra grafika għal setup ta' konnessjoni simplifikata.
Ejja nibdew niġbru l-elementi pass pass, iżda qabel se ninstallaw il-pakketti kollha meħtieġa biex il-VPN taħdem direttament:
sudo apt-get install xl2tpd strongswan libp11-3
Installazzjoni ta' softwer biex taħdem ma' tokens
Installa l-aħħar librerija librtpkcs11ecp.so minn is-sit, ukoll libreriji biex taħdem bi smart cards:
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
Installazzjoni tal-klijent L2tpIpsecVpn
Fil-mument, il-klijent jeħtieġ ukoll li jiġi kkompilat mill-kodiċi tas-sors. Dan isir bl-użu tas-sekwenza ta 'kmandi li ġejja:
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
Twaqqif tal-klijent L2tpIpsecVpn
Niedi l-klijent installat:
Wara t-tnedija, l-applet L2tpIpsecVPN għandha tiftaħ. Ikklikkja fuqha bil-lemin u kkonfigura l-konnessjoni:
Biex taħdem mat-tokens, l-ewwel nett, aħna nindikaw it-triq għall-magna opensc tal-magna OpenSSL u l-librerija PKCS#11. Biex tagħmel dan, iftaħ it-tab "Preferenzi" biex tikkonfigura l-parametri openssl:
.
Ejja nagħlqu t-tieqa tas-settings tal-OpenSSL u mmorru għat-twaqqif tan-netwerk. Ejja nżidu netwerk ġdid billi tikklikkja fuq il-buttuna Żid... fil-pannell tas-settings u daħħal l-isem tan-netwerk:
Wara dan, dan in-netwerk isir disponibbli fil-pannell tas-settings. Ikklikkja darbtejn il-lemin fuq in-netwerk il-ġdid biex tikkonfigurah. Fuq l-ewwel tab trid tagħmel is-settings IPsec. Ejja nissettjaw l-indirizz tas-server u ċ-ċavetta pubblika:
Wara dan, mur fit-tab tas-settings tal-PPP u indika hemm l-isem tal-utent li taħtu rridu naċċessaw in-netwerk:
Wara dan, iftaħ it-tab tal-Proprjetajiet u speċifika t-triq għaċ-ċavetta, iċ-ċertifikat tal-klijent u l-CA:
Ejja nagħlqu din it-tab u wettaq is-settings finali; biex tagħmel dan, iftaħ it-tab "Settings IP" u ċċekkja l-kaxxa ħdejn l-għażla "Ikseb l-indirizz tas-server DNS awtomatikament":
Din l-għażla tippermetti lill-klijent jirċievi indirizz IP personali fin-netwerk mis-server.
Wara s-settings kollha, agħlaq it-tabs kollha u erġa ibda l-klijent:
Konnessjoni man-netwerk
Wara l-issettjar, tista 'tikkonnettja man-netwerk. Biex tagħmel dan, iftaħ it-tab tal-applet u agħżel in-netwerk li rridu nikkonnettjaw miegħu:
Waqt il-proċess ta' stabbiliment tal-konnessjoni, il-klijent jistaqsina biex indaħħlu l-kodiċi PIN Rutoken:
Jekk tidher notifika fl-istrixxa tal-istatus li l-konnessjoni ġiet stabbilita b'suċċess, dan ifisser li s-setup kienet b'suċċess:
Inkella, ta 'min wieħed jifhem għaliex il-konnessjoni ma ġietx stabbilita. Biex tagħmel dan, għandek tħares lejn il-log tal-programm billi tagħżel il-kmand "Informazzjoni ta 'Konnessjoni" fl-applet:
Twaqqif tal-klijent Windows
It-twaqqif ta' klijent fuq il-Windows huwa ħafna aktar faċli milli fuq Linux, għaliex... Is-softwer kollu meħtieġ huwa diġà mibni fis-sistema.
Setup tas-Sistema
Se ninstallaw is-sewwieqa kollha meħtieġa biex naħdmu ma' Rutokens billi nniżżluhom minn ta. sit.
Importazzjoni ta' ċertifikat tal-għeruq għall-awtentikazzjoni
Niżżel iċ-ċertifikat tal-għeruq tas-server u installah fuq is-sistema. Biex tagħmel dan, iftaħ u fit-tieqa li tiftaħ, agħżel l-għażla "Installa ċertifikat":
Fit-tieqa li tiftaħ, agħżel l-installazzjoni ta 'ċertifikat għall-utent lokali. Jekk trid li ċ-ċertifikat ikun disponibbli għall-utenti kollha fuq il-kompjuter, allura għandek tagħżel li tinstalla ċ-ċertifikat fuq il-kompjuter lokali:
Ejja ninstallaw iċ-ċertifikat fil-maħżen fdat taċ-ċertifikat ta' l-għeruq tas-CA:
Wara dawn l-azzjonijiet kollha, naqblu mal-punti oħra kollha. Is-sistema issa hija kkonfigurata.
Twaqqif ta 'konnessjoni VPN
Biex twaqqaf konnessjoni VPN, mur fil-pannell tal-kontroll u agħżel l-għażla li toħloq konnessjoni ġdida.
Fit-tieqa pop-up, agħżel l-għażla li toħloq konnessjoni biex tikkonnettja mal-post tax-xogħol tiegħek:
Fit-tieqa li jmiss, agħżel konnessjoni VPN:
u daħħal id-dettalji tal-konnessjoni VPN, u speċifika wkoll l-għażla li tuża smart card:
Is-setup għadu mhux komplut. Li jibqa 'huwa li tispeċifika ċ-ċavetta kondiviża għall-protokoll IPsec; biex tagħmel dan, mur fit-tab "Settings tal-konnessjoni tan-netwerk" u mbagħad mur fit-tab "Proprjetajiet għal din il-konnessjoni":
Fit-tieqa li tiftaħ, mur fit-tab "Sigurtà", speċifika "L2TP/IPsec Network" bħala t-tip ta' netwerk u agħżel "Settings Avvanzati":
Fit-tieqa li tiftaħ, speċifika ċ-ċavetta IPsec kondiviża:
Konnessjoni
Wara li tlesti s-setup, tista' tipprova tikkonnettja man-netwerk:
Matul il-proċess ta’ konnessjoni, inkunu mitluba ndaħħlu l-kodiċi tat-token PIN:
Waqqafna netwerk VPN sigur u għamilna ċert li ma jkunx diffiċli.
Rikonoxximenti
Nixtieq għal darb'oħra nirringrazzja lill-kollegi tagħna Vasily Shokov u Alexander Smirnov għax-xogħol li għamlu flimkien biex jissimplifikaw il-ħolqien ta' konnessjonijiet VPN għall-klijenti Linux.