ProHoster > Blog > Stjórnsýsla > Setja upp auðkenningu í L2TP netinu með Rutoken EDS 2.0 og Rutoken PKI
Setja upp auðkenningu í L2TP netinu með Rutoken EDS 2.0 og Rutoken PKI
Vandamál
Nýlega vissu margir ekki hvernig það var að vinna heima. Heimsfaraldurinn hefur gjörbreytt ástandinu í heiminum, allir eru farnir að laga sig að núverandi aðstæðum, nefnilega að það er einfaldlega orðið óöruggt að fara út úr húsi. Og margir þurftu að skipuleggja vinnu að heiman fyrir starfsmenn sína fljótt.
Hins vegar getur skortur á hæfri nálgun við val á lausnum fyrir fjarvinnu leitt til óafturkræfra taps. Notendalykilorðum er hægt að stela og það gerir árásarmanni kleift að tengjast netkerfi og upplýsingatækniauðlindum fyrirtækisins stjórnlaust.
Þess vegna hefur þörfin fyrir að búa til áreiðanleg VPN-net fyrirtækja aukist. Ég skal segja þér frá áreiðanlegur, öruggur и einfalt í notkun VPN nets.
Það virkar samkvæmt IPsec/L2TP kerfinu, sem notar óendurheimtanlega lykla og skilríki sem eru geymd á táknum til að sannvotta viðskiptavini, og sendir einnig gögn yfir netið á dulkóðuðu formi.
Miðlari með CentOS 7 (heimilisfang: centos.vpn.server.ad) og biðlari með Ubuntu 20.04, sem og biðlari með Windows 10, voru notaðir sem sýnikennsla fyrir uppsetningu.
Kerfislýsing
VPN mun virka samkvæmt IPSec + L2TP + PPP kerfinu. Bókun Point-to-Point bókun (PPP) starfar við gagnatenglalag OSI líkansins og veitir notendavottun og dulkóðun á sendum gögnum. Gögnin þess eru hjúpuð inn í gögn L2TP samskiptareglunnar, sem tryggir í raun tengingu í VPN netinu, en veitir ekki auðkenningu og dulkóðun.
L2TP gögn eru hjúpuð í IPSec, sem veitir einnig auðkenningu og dulkóðun, en ólíkt PPP fer auðkenning og dulkóðun fram á tækjastigi, ekki á notendastigi.
Þessi eiginleiki gerir þér kleift að auðkenna notendur aðeins frá ákveðnum tækjum. Við munum nota IPSec samskiptareglur eins og þær eru og leyfa notendavottun frá hvaða tæki sem er.
Auðkenning notenda með snjallkortum verður framkvæmd á PPP samskiptareglum með því að nota EAP-TLS samskiptareglur.
Nánari upplýsingar um rekstur þessarar hringrásar er að finna í Þessi grein.
Af hverju uppfyllir þetta kerfi allar þrjár kröfur um gott VPN net?
Áreiðanleiki þessa kerfis hefur verið prófaður með tímanum. Það hefur verið notað til að dreifa VPN netum síðan 2000.
Örugg notendavottun er veitt af PPP samskiptareglum. Hefðbundin útfærsla á PPP samskiptareglum þróuð af Paul Mackerras veitir ekki nægilegt öryggi, vegna þess að Til auðkenningar, í besta falli, er auðkenning með notendanafn og lykilorði notuð. Við vitum öll að hægt er að njósna um, giska á eða stela aðgangsorði. Hins vegar í langan tíma núna verktaki Jan Just Keijser в framkvæmd hennar Þessi samskiptaregla leiðrétti þetta mál og bætti við möguleikanum á að nota samskiptareglur byggðar á ósamhverfri dulkóðun, eins og EAP-TLS, til auðkenningar. Að auki bætti hann við möguleikanum á að nota snjallkort til auðkenningar, sem gerði kerfið öruggara.
Um þessar mundir standa yfir virkar samningaviðræður um að sameina þessi tvö verkefni og þú getur verið viss um að fyrr eða síðar gerist það hvort sem er. Til dæmis hefur pjattuð útgáfa af PPP verið í Fedora geymslunum í langan tíma og notað öruggar samskiptareglur fyrir auðkenningu.
Þar til nýlega gat þetta net aðeins verið notað af Windows notendum, en samstarfsmenn okkar frá Moskvu ríkisháskólanum Vasily Shokov og Alexander Smirnov fundu gamalt L2TP biðlaraverkefni fyrir Linux og breytti því. Saman laguðum við margar villur og galla í vinnu viðskiptavinarins, einfölduðum uppsetningu og stillingu kerfisins, jafnvel þegar byggt var frá uppruna. Mikilvægustu þeirra eru:
Lagaði samhæfnisvandamál gamla biðlarans með viðmóti nýrra útgáfur af openssl og qt.
Fjarlægði pppd frá því að senda auðkenni PIN-númersins í gegnum tímabundna skrá.
Lagaði ranga ræsingu lykilorðabeiðnarforritsins í gegnum grafíska viðmótið. Þetta var gert með því að setja upp rétt umhverfi fyrir xl2tpd þjónustuna.
Smíði L2tpIpsecVpn púkans fer nú fram ásamt smíði viðskiptavinarins sjálfs, sem einfaldar smíði og stillingarferlið.
Til að auðvelda þróun er Azure Pipelines kerfið tengt til að prófa réttmæti byggingarinnar.
Bætti við möguleikanum til að þvinga niður lækkun öryggisstig í samhengi openssl. Þetta er gagnlegt til að styðja rétt við ný stýrikerfi þar sem staðlað öryggisstig er stillt á 2, með VPN netum sem nota vottorð sem uppfylla ekki öryggiskröfur þessa þreps. Þessi valkostur mun vera gagnlegur til að vinna með núverandi gömul VPN net.
Þessi viðskiptavinur styður notkun snjallkorta til auðkenningar, og felur einnig eins mikið og mögulegt er allar erfiðleikar og erfiðleikar við að setja upp þetta kerfi undir Linux, sem gerir uppsetningu viðskiptavinar eins einfalda og hraðvirka og mögulegt er.
Auðvitað, fyrir þægilega tengingu milli PPP og GUI viðskiptavinarins, var það ekki mögulegt án viðbótarbreytinga á hverju verkefni, en engu að síður voru þær lágmarkaðar og minnkaðar í lágmark:
Lagað villa í þeirri röð að hlaða stillingunum og frumstilla openssl samhengið. Þessi villa leyfði okkur ekki að hlaða neinu úr staðbundnu /etc/ppp/openssl.cnf stillingaskránni nema upplýsingar um openssl vélar til að vinna með snjallkort, sem var alvarlegt óþægindi ef, til dæmis, auk upplýsinga um vélar, við vildum setja eitthvað annað. Til dæmis skaltu laga öryggisstigið þegar tenging er komið á.
Nú geturðu byrjað að setja upp.
Stilling miðlara
Við skulum setja upp alla nauðsynlega pakka.
Setur upp strongswan (IPsec)
Fyrst af öllu skulum við stilla eldvegginn fyrir ipsec aðgerð
Við munum einnig setja sameiginlegt lykilorð fyrir innskráningu. Sameiginlega lykilorðið verður að vera þekkt fyrir alla þátttakendur netkerfisins fyrir auðkenningu. Þessi aðferð er augljóslega óáreiðanleg, vegna þess að Þetta lykilorð getur auðveldlega orðið þekkt fyrir einstaklinga sem við viljum ekki veita aðgang að netinu.
Hins vegar mun jafnvel þessi staðreynd ekki hafa áhrif á öryggi netsins, vegna þess Grunn dulkóðun gagna og auðkenning notenda fer fram með PPP samskiptareglum. En í sanngirni er rétt að taka fram að strongswan styður öruggari tækni fyrir auðkenningu, til dæmis með því að nota einkalykla. Strongswan hefur einnig getu til að veita auðkenningu með snjallkortum, en enn sem komið er er aðeins takmarkað úrval tækja stutt og því er auðkenning með Rutoken táknum og snjallkortum enn erfið. Við skulum setja almennt lykilorð í gegnum skrá /etc/strongswan/ipsec.secrets:
Við skulum stilla það í gegnum skrá /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
#директория с сертификатами пользователей, УЦ и сервера
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
Þannig erum við búin með grunnuppsetningu netþjónsins. Afgangurinn af uppsetningu netþjónsins felur í sér að bæta við nýjum viðskiptavinum.
Bætir nýjum viðskiptavini við
Til að bæta nýjum biðlara við netið verður þú að bæta vottorðinu við listann yfir trausta fyrir þennan biðlara.
Ef notandi vill gerast meðlimur VPN netkerfis býr hann til lyklapar og vottorðsforrit fyrir þennan viðskiptavin. Ef notandanum er treyst, þá er hægt að undirrita þetta forrit og hægt er að skrifa vottorðið sem myndast í vottorðaskrána:
ATH
Til að forðast rugling er betra að: Common Name, vottorðsskráarheiti og notendanafn sé einstakt.
Það er líka þess virði að athuga að nafn notandans sem við erum að bæta við birtist hvergi í öðrum auðkenningarskrám, annars verða vandamál með hvernig notandinn er auðkenndur.
Sama vottorð verður að senda til baka til notanda.
Búa til lyklapar og vottorð
Fyrir árangursríka auðkenningu verður viðskiptavinurinn:
búa til lyklapar;
hafa CA rótarvottorð;
hafa vottorð fyrir lyklaparið þitt undirritað af rót CA.
fyrir viðskiptavin á Linux
Fyrst skulum við búa til lyklapar á tákninu og búa til forrit fyrir vottorðið:
fyrir Windows og Linux viðskiptavini (alhliða aðferð)
Þessi aðferð er alhliða, vegna þess að gerir þér kleift að búa til lykil og vottorð sem verður viðurkennt af Windows og Linux notendum, en það þarf Windows vél til að framkvæma lyklamyndunarferlið.
Áður en þú býrð til beiðnir og flytur inn vottorð verður þú að bæta rótarvottorði VPN-netsins við listann yfir traust. Til að gera þetta, opnaðu það og í glugganum sem opnast skaltu velja „Setja upp vottorð“ valkostinn:
Í glugganum sem opnast velurðu að setja upp vottorð fyrir staðbundinn notanda:
Við skulum setja upp vottorðið í traustri rótarvottorðsgeymslu CA:
Eftir allar þessar aðgerðir erum við sammála öllum frekari atriðum. Kerfið er nú stillt.
Búum til skrá cert.tmp með eftirfarandi innihaldi:
Eftir þetta munum við búa til lyklapar og búa til forrit fyrir vottorðið. Til að gera þetta, opnaðu powershell og sláðu inn eftirfarandi skipun:
certreq.exe -new -pin $PIN .cert.tmp .client.req
Sendu búið til forritið client.req til CA og bíddu eftir að client.pem vottorðið berist. Það er hægt að skrifa það á tákn og bæta við Windows vottorðageymsluna með því að nota eftirfarandi skipun:
certreq.exe -accept .client.pem
Það er athyglisvert að hægt er að endurskapa svipaðar aðgerðir með grafísku viðmóti mmc forritsins, en þessi aðferð er tímafrekari og minna forritanlegur.
Uppsetning Ubuntu viðskiptavinarins
ATH
Að setja upp biðlara á Linux er nokkuð tímafrekt eins og er, vegna þess að... krefst þess að byggja aðskilin forrit frá uppruna. Við munum reyna að tryggja að allar breytingar verði innifaldar í opinberum geymslum á næstunni.
Til að tryggja tengingu á IPSec stigi við netþjóninn er strongswan pakkinn og xl2tp púkinn notaður. Til að einfalda tengingu við netið með því að nota snjallkort, munum við nota l2tp-ipsec-vpn pakkann, sem gefur myndræna skel fyrir einfalda tengingaruppsetningu.
Við skulum byrja að setja saman þættina skref fyrir skref, en áður en það kemur munum við setja upp alla nauðsynlega pakka til að VPN virki beint:
sudo apt-get install xl2tpd strongswan libp11-3
Að setja upp hugbúnað til að vinna með tákn
Settu upp nýjasta librtpkcs11ecp.so bókasafnið frá síða, einnig bókasöfn til að vinna með snjallkort:
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
Að setja upp L2tpIpsecVpn biðlarann
Í augnablikinu þarf viðskiptavinurinn einnig að vera settur saman úr frumkóða. Þetta er gert með því að nota eftirfarandi röð skipana:
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
Að setja upp L2tpIpsecVpn biðlarann
Ræstu uppsetta biðlarann:
Eftir ræsingu ætti L2tpIpsecVPN smáforritið að opnast. Hægrismelltu á það og stilltu tenginguna:
Til að vinna með tákn, fyrst af öllu, tilgreinum við slóðina að opensc vél OpenSSL vélarinnar og PKCS#11 bókasafnsins. Til að gera þetta, opnaðu "Preferences" flipann til að stilla openssl færibreytur:
.
Við skulum loka OpenSSL stillingarglugganum og halda áfram að setja upp netið. Við skulum bæta við nýju neti með því að smella á Bæta við... hnappinn í stillingaspjaldinu og slá inn nafn netsins:
Eftir þetta verður þetta net aðgengilegt á stillingaspjaldinu. Tvísmelltu hægrismelltu á nýja netið til að stilla það. Á fyrsta flipanum þarftu að gera IPsec stillingar. Við skulum stilla netfang netþjóns og opinberan lykil:
Eftir þetta skaltu fara í PPP stillingar flipann og tilgreina þar notandanafnið sem við viljum fá aðgang að netinu:
Eftir þetta skaltu opna Eiginleika flipann og tilgreina slóðina að lyklinum, biðlaravottorðinu og CA:
Við skulum loka þessum flipa og framkvæma lokastillingarnar; til að gera þetta, opnaðu „IP stillingar“ flipann og haka í reitinn við hliðina á „Fá sjálfkrafa DNS netþjónsfang“ valkostinn:
Þessi valkostur gerir viðskiptavininum kleift að fá persónulega IP tölu innan netsins frá þjóninum.
Eftir allar stillingar skaltu loka öllum flipum og endurræsa biðlarann:
Nettenging
Eftir stillingarnar geturðu tengst netinu. Til að gera þetta, opnaðu smáforrit flipann og veldu netið sem við viljum tengjast:
Meðan á tengingarferlinu stendur mun viðskiptavinurinn biðja okkur um að slá inn Rutoken PIN-númerið:
Ef tilkynning birtist á stöðustikunni um að tengingin hafi tekist, þýðir það að uppsetningin hafi tekist:
Annars er það þess virði að finna út hvers vegna tengingin var ekki stofnuð. Til að gera þetta, ættir þú að skoða forritaskrána með því að velja "Connection information" skipunina í smáforritinu:
Að setja upp Windows biðlarann
Að setja upp biðlara á Windows er miklu auðveldara en á Linux, vegna þess að... Allur nauðsynlegur hugbúnaður er þegar innbyggður í kerfið.
Kerfisuppsetning
Við munum setja upp alla nauðsynlega rekla til að vinna með Rutokens með því að hlaða þeim niður frá af. síða.
Flytur inn rótarvottorð fyrir auðkenningu
Sæktu rótarvottorð netþjónsins og settu það upp á kerfinu. Til að gera þetta, opnaðu það og í glugganum sem opnast skaltu velja „Setja upp vottorð“ valkostinn:
Í glugganum sem opnast velurðu að setja upp vottorð fyrir staðbundinn notanda. Ef þú vilt að skírteinið sé aðgengilegt öllum notendum tölvunnar, þá ættir þú að velja að setja upp vottorðið á staðbundinni tölvu:
Við skulum setja upp vottorðið í traustri rótarvottorðsgeymslu CA:
Eftir allar þessar aðgerðir erum við sammála öllum frekari atriðum. Kerfið er nú stillt.
Að setja upp VPN tengingu
Til að setja upp VPN-tengingu, farðu á stjórnborðið og veldu þann möguleika að búa til nýja tengingu.
Í sprettiglugganum, veldu valkostinn til að búa til tengingu til að tengjast vinnustaðnum þínum:
Í næsta glugga skaltu velja VPN tengingu:
og sláðu inn VPN-tengingarupplýsingarnar og tilgreindu einnig möguleikann á að nota snjallkort:
Uppsetningunni er ekki lokið ennþá. Allt sem er eftir er að tilgreina sameiginlega lykilinn fyrir IPsec samskiptareglur; til að gera þetta, farðu í flipann „Nettengingarstillingar“ og farðu síðan í „Eiginleikar fyrir þessa tengingu“ flipann:
Í glugganum sem opnast, farðu í „Öryggi“ flipann, tilgreindu „L2TP/IPsec Network“ sem nettegund og veldu „Ítarlegar stillingar“:
Tilgreindu sameiginlega IPsec lykilinn í glugganum sem opnast:
Подключение
Eftir að uppsetningunni er lokið geturðu prófað að tengjast netinu:
Meðan á tengingarferlinu stendur, verðum við að slá inn PIN-númerið:
Við höfum sett upp öruggt VPN net og tryggt að það sé ekki erfitt.
Viðurkenningar
Ég vil enn og aftur þakka samstarfsmönnum okkar Vasily Shokov og Alexander Smirnov fyrir vinnuna sem þeir hafa unnið saman til að einfalda stofnun VPN tenginga fyrir Linux viðskiptavini.