ProHoster > Blogs > AdministrÄcija > AutentifikÄcijas iestatÄ«Å”ana L2TP tÄ«klÄ, izmantojot Rutoken EDS 2.0 un Rutoken PKI
AutentifikÄcijas iestatÄ«Å”ana L2TP tÄ«klÄ, izmantojot Rutoken EDS 2.0 un Rutoken PKI
problÄmas
VÄl nesen daudzi nezinÄja, kÄ ir strÄdÄt no mÄjÄm. PandÄmija ir krasi mainÄ«jusi situÄciju pasaulÄ, visi ir sÄkuÅ”i pielÄgoties esoÅ”ajiem apstÄkļiem, proti, tam, ka ir kļuvis vienkÄrÅ”i nedroÅ”i iziet no mÄjas. Un daudziem bija Ätri jÄorganizÄ darbs no mÄjÄm saviem darbiniekiem.
TomÄr kompetentas pieejas trÅ«kums attÄlinÄta darba risinÄjumu izvÄlei var radÄ«t neatgriezeniskus zaudÄjumus. LietotÄju paroles var tikt nozagtas, un tas ļaus uzbrucÄjam nekontrolÄjami izveidot savienojumu ar uzÅÄmuma tÄ«klu un IT resursiem.
TÄpÄc tagad ir pieaugusi nepiecieÅ”amÄ«ba izveidot uzticamus korporatÄ«vos VPN tÄ«klus. Es jums pastÄstÄ«Å”u par uzticams, droÅ”i Šø vienkÄrÅ”s izmantojot VPN tÄ«klu.
Tas darbojas saskaÅÄ ar IPsec/L2TP shÄmu, kas izmanto neatgÅ«stamas atslÄgas un sertifikÄtus, kas glabÄjas marÄ·ieros, lai autentificÄtu klientus, kÄ arÄ« pÄrsÅ«ta datus tÄ«klÄ Å”ifrÄtÄ veidÄ.
KÄ konfigurÄcijas demonstrÄcijas stendi tika izmantoti serveris ar CentOS 7 (adrese: centos.vpn.server.ad) un klients ar Ubuntu 20.04, kÄ arÄ« klients ar Windows 10.
SistÄmas apraksts
VPN darbosies saskaÅÄ ar IPSec + L2TP + PPP shÄmu. Protokols Point-to-Point protokols (VPP) darbojas OSI modeļa datu posma slÄnÄ« un nodroÅ”ina lietotÄja autentifikÄciju un pÄrsÅ«tÄ«to datu Å”ifrÄÅ”anu. TÄs dati ir iekapsulÄti L2TP protokola datos, kas faktiski nodroÅ”ina savienojuma izveidi VPN tÄ«klÄ, bet nenodroÅ”ina autentifikÄciju un Å”ifrÄÅ”anu.
L2TP dati ir iekapsulÄti IPSec, kas nodroÅ”ina arÄ« autentifikÄciju un Å”ifrÄÅ”anu, taÄu atŔķirÄ«bÄ no PPP autentifikÄcija un Å”ifrÄÅ”ana notiek ierÄ«ces, nevis lietotÄja lÄ«menÄ«.
Å Ä« funkcija ļauj autentificÄt lietotÄjus tikai no noteiktÄm ierÄ«cÄm. MÄs izmantosim IPSec protokolu tÄdu, kÄds tas ir, un ļausim lietotÄja autentifikÄciju no jebkuras ierÄ«ces.
LietotÄja autentifikÄcija, izmantojot viedkartes, tiks veikta PPP protokola lÄ«menÄ«, izmantojot EAP-TLS protokolu.
SÄ«kÄku informÄciju par Ŕīs shÄmas darbÄ«bu var atrast Å is raksts.
KÄpÄc Ŕī shÄma atbilst visÄm trim laba VPN tÄ«kla prasÄ«bÄm?
Å Ä«s shÄmas uzticamÄ«bu ir pÄrbaudÄ«jis laiks. Tas ir izmantots VPN tÄ«klu izvietoÅ”anai kopÅ” 2000. gada.
DroÅ”u lietotÄja autentifikÄciju nodroÅ”ina PPP protokols. PPP protokola standarta ievieÅ”ana, ko izstrÄdÄjis Pols Makerrass nenodroÅ”ina pietiekamu droŔības lÄ«meni, jo AutentifikÄcijai labÄkajÄ gadÄ«jumÄ tiek izmantota autentifikÄcija, izmantojot pieteikumvÄrdu un paroli. MÄs visi zinÄm, ka pieteikÅ”anÄs paroli var izspiegot, uzminÄt vai nozagt. TomÄr jau ilgu laiku izstrÄdÄtÄjs Jans Justs Keisers Š² tÄs Ä«stenoÅ”ana Å is protokols izlaboja Å”o problÄmu un pievienoja iespÄju autentifikÄcijai izmantot protokolus, kuru pamatÄ ir asimetriskÄ Å”ifrÄÅ”ana, piemÄram, EAP-TLS. TurklÄt viÅÅ” pievienoja iespÄju autentifikÄcijai izmantot viedkartes, kas padarÄ«ja sistÄmu droÅ”Äku.
Å obrÄ«d notiek aktÄ«vas sarunas par Å”o divu projektu apvienoÅ”anu un varat bÅ«t droÅ”i, ka agri vai vÄlu tas tomÄr notiks. PiemÄram, PPP labota versija Fedora krÄtuvÄs atrodas jau ilgu laiku, autentifikÄcijai izmantojot droÅ”us protokolus.
VÄl nesen Å”o tÄ«klu varÄja izmantot tikai Windows lietotÄji, taÄu mÅ«su kolÄÄ£i no Maskavas Valsts universitÄtes Vasilijs Å okovs un Aleksandrs Smirnovs atrada vecs L2TP klienta projekts operÄtÄjsistÄmai Linux un to modificÄja. KopÄ mÄs novÄrsÄm daudzas kļūdas un nepilnÄ«bas klienta darbÄ, vienkÄrÅ”ojÄm sistÄmas uzstÄdÄ«Å”anu un konfigurÄÅ”anu, pat veidojot no avota. NozÄ«mÄ«gÄkie no tiem ir:
NovÄrstas vecÄ klienta saderÄ«bas problÄmas ar jauno openssl un qt versiju saskarni.
Pppd ir noÅemts no pilnvaras PIN nodoÅ”anas pagaidu failÄ.
NovÄrsta nepareiza paroles pieprasÄ«juma programmas palaiÅ”ana, izmantojot grafisko interfeisu. Tas tika paveikts, instalÄjot pareizo vidi pakalpojumam xl2tpd.
L2tpIpsecVpn dÄmona bÅ«vÄÅ”ana tagad tiek veikta kopÄ ar paÅ”a klienta bÅ«vniecÄ«bu, kas vienkÄrÅ”o veidoÅ”anas un konfigurÄÅ”anas procesu.
Lai atvieglotu attÄ«stÄ«bu, Azure Pipelines sistÄma ir pievienota, lai pÄrbaudÄ«tu bÅ«vÄjuma pareizÄ«bu.
Pievienota iespÄja piespiest pazeminÄt versiju droŔības lÄ«menis openssl kontekstÄ. Tas ir noderÄ«gi, lai pareizi atbalstÄ«tu jaunas operÄtÄjsistÄmas, kurÄs standarta droŔības lÄ«menis ir iestatÄ«ts uz 2, ar VPN tÄ«kliem, kas izmanto sertifikÄtus, kas neatbilst Ŕī lÄ«meÅa droŔības prasÄ«bÄm. Å Ä« opcija bÅ«s noderÄ«ga darbam ar esoÅ”ajiem vecajiem VPN tÄ«kliem.
Å is klients atbalsta viedkarÅ”u izmantoÅ”anu autentifikÄcijai, kÄ arÄ« pÄc iespÄjas vairÄk slÄpj visas grÅ«tÄ«bas un grÅ«tÄ«bas, kas saistÄ«tas ar Ŕīs shÄmas iestatÄ«Å”anu operÄtÄjsistÄmÄ Linux, padarot klienta iestatÄ«Å”anu pÄc iespÄjas vienkÄrÅ”Äku un ÄtrÄku.
Protams, Ärtam savienojumam starp PPP un klienta GUI nebija iespÄjams bez papildu rediÄ£Äjumiem katrÄ projektÄ, taÄu tie tomÄr tika minimizÄti un samazinÄti lÄ«dz minimumam:
FiksÄts kļūda konfigurÄcijas ielÄdes un openssl konteksta inicializÄcijas secÄ«bÄ. Å Ä« kļūda neļÄva ielÄdÄt neko no vietÄjÄ /etc/ppp/openssl.cnf konfigurÄcijas faila, izÅemot informÄciju par openssl dzinÄjiem darbam ar viedkartÄm, kas radÄ«ja nopietnas neÄrtÄ«bas, ja, piemÄram, papildus informÄcijai par dzinÄjiem mÄs gribÄjÄm iestatÄ«t kaut ko citu. PiemÄram, izveidojot savienojumu, noregulÄjiet droŔības lÄ«meni.
PÄc instalÄÅ”anas jums ir jÄkonfigurÄ strongswan (viena no IPSec implementÄcijÄm). Lai to izdarÄ«tu, rediÄ£Äjiet failu /etc/strongswan/ipsec.conf :
MÄs arÄ« iestatÄ«sim kopÄju pieteikÅ”anÄs paroli. Koplietotajai parolei jÄbÅ«t zinÄmai visiem tÄ«kla dalÄ«bniekiem autentifikÄcijai. Å Ä« metode ir acÄ«mredzami neuzticama, jo Ŕī parole var viegli kļūt zinÄma personÄm, kurÄm mÄs nevÄlamies nodroÅ”inÄt piekļuvi tÄ«klam.
TomÄr pat Å”is fakts neietekmÄs tÄ«kla droŔību, jo Pamatdatu Å”ifrÄÅ”ana un lietotÄja autentifikÄcija tiek veikta ar PPP protokolu. Bet godÄ«gi sakot, ir vÄrts atzÄ«mÄt, ka strongswan atbalsta droÅ”Äkas autentifikÄcijas tehnoloÄ£ijas, piemÄram, izmantojot privÄtÄs atslÄgas. Strongswan ir arÄ« iespÄja nodroÅ”inÄt autentifikÄciju, izmantojot viedkartes, taÄu lÄ«dz Å”im tiek atbalstÄ«ts tikai ierobežots ierÄ«Äu klÄsts, un tÄpÄc autentifikÄcija, izmantojot Rutoken marÄ·ierus un viedkartes, joprojÄm ir sarežģīta. IestatÄ«sim vispÄrÄ«gu paroli, izmantojot failu /etc/strongswan/ipsec.secrets:
TÄdÄjÄdi esam pabeiguÅ”i pamata servera iestatÄ«Å”anu. PÄrÄjÄ servera konfigurÄcija ietver jaunu klientu pievienoÅ”anu.
Jauna klienta pievienoŔana
Lai tÄ«klam pievienotu jaunu klientu, tÄ sertifikÄts ir jÄpievieno Ŕī klienta uzticamo klientu sarakstam.
Ja lietotÄjs vÄlas kļūt par VPN tÄ«kla dalÄ«bnieku, viÅÅ” Å”im klientam izveido atslÄgu pÄri un sertifikÄta lietojumprogrammu. Ja lietotÄjs ir uzticams, tad Å”o lietojumprogrammu var parakstÄ«t un iegÅ«to sertifikÄtu var ierakstÄ«t sertifikÄtu direktorijÄ:
NosÅ«tiet parÄdÄ«to lietojumprogrammu client.req uz CA. Kad esat saÅÄmis sertifikÄtu savam atslÄgu pÄrim, ierakstiet to pilnvarÄ ar tÄdu paÅ”u ID kÄ atslÄgai:
Windows un Linux klientiem (universÄlÄka metode)
Å Ä« metode ir universÄlÄka, jo ļauj Ä£enerÄt atslÄgu un sertifikÄtu, ko veiksmÄ«gi atpazÄ«s Windows un Linux lietotÄji, taÄu tam ir nepiecieÅ”ama Windows maŔīna, lai veiktu atslÄgu Ä£enerÄÅ”anas procedÅ«ru.
Pirms pieprasÄ«jumu Ä£enerÄÅ”anas un sertifikÄtu importÄÅ”anas VPN tÄ«kla saknes sertifikÄts jÄpievieno uzticamo sarakstam. Lai to izdarÄ«tu, atveriet to un atvÄrtajÄ logÄ atlasiet opciju āInstalÄt sertifikÄtuā:
PÄc tam mÄs Ä£enerÄsim atslÄgu pÄri un izveidosim sertifikÄta lietojumprogrammu. Lai to izdarÄ«tu, atveriet Powershell un ievadiet Å”Ädu komandu:
certreq.exe -new -pin $PIN .cert.tmp .client.req
NosÅ«tiet izveidoto lietojumprogrammu client.req savai CA un gaidiet, lÄ«dz tiks saÅemts client.pem sertifikÄts. To var ierakstÄ«t pilnvarÄ un pievienot Windows sertifikÄtu krÄtuvei, izmantojot Å”Ädu komandu:
certreq.exe -accept .client.pem
Ir vÄrts atzÄ«mÄt, ka lÄ«dzÄ«gas darbÄ«bas var reproducÄt, izmantojot mmc programmas grafisko interfeisu, taÄu Ŕī metode ir laikietilpÄ«gÄka un mazÄk programmÄjama.
Ubuntu klienta iestatīŔana
PIEZÄŖME
Klienta iestatÄ«Å”ana operÄtÄjsistÄmÄ Linux paÅ”laik ir diezgan laikietilpÄ«ga, jo... nepiecieÅ”ama atseviŔķu programmu izveide no avota. MÄs centÄ«simies nodroÅ”inÄt, lai visas izmaiÅas tuvÄkajÄ laikÄ tiktu iekļautas oficiÄlajos krÄtuvÄs.
Lai nodroÅ”inÄtu savienojumu ar serveri IPSec lÄ«menÄ«, tiek izmantota pakete strongswan un xl2tp dÄmons. Lai vienkÄrÅ”otu savienojuma izveidi ar tÄ«klu, izmantojot viedkartes, mÄs izmantosim l2tp-ipsec-vpn pakotni, kas nodroÅ”ina grafisko apvalku vienkÄrÅ”otai savienojuma iestatÄ«Å”anai.
SÄksim elementu montÄžu soli pa solim, bet pirms tam instalÄsim visas nepiecieÅ”amÄs pakotnes, lai VPN darbotos tieÅ”i:
sudo apt-get install xl2tpd strongswan libp11-3
ProgrammatÅ«ras instalÄÅ”ana darbam ar žetoniem
InstalÄjiet jaunÄko bibliotÄku librtpkcs11ecp.so no ŃŠ°Š¹ŃŠ°, arÄ« bibliotÄkas darbam ar viedkartÄm:
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 klienta instalÄÅ”ana
Å obrÄ«d klientam ir jÄkompilÄjas arÄ« no pirmkoda. Tas tiek darÄ«ts, izmantojot Å”Ädu komandu secÄ«bu:
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 klienta iestatīŔana
Palaidiet instalÄto klientu:
PÄc palaiÅ”anas vajadzÄtu atvÄrt L2tpIpsecVPN sÄ«klietotni. Ar peles labo pogu noklikŔķiniet uz tÄ un konfigurÄjiet savienojumu:
Lai strÄdÄtu ar marÄ·ieriem, pirmkÄrt, mÄs norÄdÄm ceļu uz OpenSSL dzinÄja opensc dzinÄju un PKCS#11 bibliotÄku. Lai to izdarÄ«tu, atveriet cilni "Preferences", lai konfigurÄtu openssl parametrus:
.
Aizveram OpenSSL iestatÄ«jumu logu un pÄriesim pie tÄ«kla iestatÄ«Å”anas. Pievienosim jaunu tÄ«klu, iestatÄ«jumu panelÄ« noklikŔķinot uz pogas Pievienot... un ievadiet tÄ«kla nosaukumu:
PÄc tam Å”is tÄ«kls bÅ«s pieejams iestatÄ«jumu panelÄ«. Veiciet dubultklikŔķi uz jaunÄ tÄ«kla, lai to konfigurÄtu. PirmajÄ cilnÄ jums jÄievada IPsec iestatÄ«jumi. IestatÄ«sim servera adresi un publisko atslÄgu:
PÄc tam dodieties uz cilni PPP iestatÄ«jumi un norÄdiet tur lietotÄjvÄrdu, ar kuru mÄs vÄlamies piekļūt tÄ«klam:
PÄc tam atveriet cilni RekvizÄ«ti un norÄdiet ceļu uz atslÄgu, klienta sertifikÄtu un CA:
Aizveram Å”o cilni un veiksim galÄ«gos iestatÄ«jumus; lai to izdarÄ«tu, atveriet cilni "IP iestatÄ«jumi" un atzÄ«mÄjiet izvÄles rÅ«tiÅu blakus opcijai "AutomÄtiski iegÅ«t DNS servera adresi":
Å Ä« opcija ļaus klientam saÅemt personÄ«go IP adresi tÄ«klÄ no servera.
PÄc visu iestatÄ«jumu veikÅ”anas aizveriet visas cilnes un restartÄjiet klientu:
TÄ«kla savienojums
PÄc iestatÄ«jumu veikÅ”anas varat izveidot savienojumu ar tÄ«klu. Lai to izdarÄ«tu, atveriet sÄ«klietotnes cilni un atlasiet tÄ«klu, ar kuru mÄs vÄlamies izveidot savienojumu:
Ja statusa joslÄ tiek parÄdÄ«ts paziÅojums, ka savienojums ir veiksmÄ«gi izveidots, tas nozÄ«mÄ, ka iestatÄ«Å”ana bija veiksmÄ«ga:
PretÄjÄ gadÄ«jumÄ ir vÄrts noskaidrot, kÄpÄc savienojums netika izveidots. Lai to izdarÄ«tu, jums vajadzÄtu apskatÄ«t programmas žurnÄlu, sÄ«klietotnÄ atlasot komandu "Savienojuma informÄcija":
Windows klienta iestatīŔana
Klienta iestatÄ«Å”ana operÄtÄjsistÄmÄ Windows ir daudz vienkÄrÅ”Äka nekÄ Linux, jo... Visa nepiecieÅ”amÄ programmatÅ«ra jau ir iebÅ«vÄta sistÄmÄ.
SistÄmas iestatÄ«Å”ana
MÄs instalÄsim visus nepiecieÅ”amos draiverus darbam ar Rutokens, lejupielÄdÄjot tos no no. vietne.
LejupielÄdÄjiet servera saknes sertifikÄtu un instalÄjiet to sistÄmÄ. Lai to izdarÄ«tu, atveriet to un atvÄrtajÄ logÄ atlasiet opciju āInstalÄt sertifikÄtuā:
AtvÄrtajÄ logÄ atlasiet sertifikÄta instalÄÅ”anu vietÄjam lietotÄjam. Ja vÄlaties, lai sertifikÄts bÅ«tu pieejams visiem datora lietotÄjiem, izvÄlieties sertifikÄtu instalÄt lokÄlajÄ datorÄ:
InstalÄsim sertifikÄtu CA uzticamajÄ saknes sertifikÄtu krÄtuvÄ:
PÄc visÄm Ŕīm darbÄ«bÄm mÄs piekrÄ«tam visiem turpmÄkajiem punktiem. SistÄma tagad ir konfigurÄta.
VPN savienojuma iestatīŔana
Lai iestatÄ«tu VPN savienojumu, dodieties uz vadÄ«bas paneli un atlasiet iespÄju izveidot jaunu savienojumu.
UznirstoÅ”ajÄ logÄ atlasiet opciju, lai izveidotu savienojumu, lai izveidotu savienojumu ar savu darba vietu:
NÄkamajÄ logÄ atlasiet VPN savienojumu:
un ievadiet VPN savienojuma informÄciju, kÄ arÄ« norÄdiet iespÄju izmantot viedkarti:
IestatÄ«Å”ana vÄl nav pabeigta. Atliek tikai norÄdÄ«t IPsec protokola koplietoto atslÄgu; lai to izdarÄ«tu, dodieties uz cilni āTÄ«kla savienojuma iestatÄ«jumiā un pÄc tam uz cilni āÅ Ä« savienojuma rekvizÄ«tiā.
AtvÄrtajÄ logÄ dodieties uz cilni āDroŔībaā, kÄ tÄ«kla veidu norÄdiet āL2TP/IPsec tÄ«klsā un atlasiet āPapildu iestatÄ«jumiā:
PÄc iestatÄ«Å”anas varat mÄÄ£inÄt izveidot savienojumu ar tÄ«klu:
Savienojuma laikÄ mums bÅ«s jÄievada marÄ·iera PIN kods:
Esam izveidojuÅ”i droÅ”u VPN tÄ«klu un pÄrliecinÄjuÅ”ies, ka tas nav grÅ«ti.
Pateicības
VÄlos vÄlreiz pateikties mÅ«su kolÄÄ£iem Vasilijam Å okovam un Aleksandram Smirnovam par kopÄ«gi paveikto darbu, lai vienkÄrÅ”otu VPN savienojumu izveidi Linux klientiem.