Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

Halo a cho-obraichean! An-diugh, nuair a chaidh an ìre de dhùrachdan timcheall air “obair air astar” sìos beagan, choisinn a’ mhòr-chuid de luchd-rianachd an obair a thaobh ruigsinneachd iomallach do luchd-obrach air an lìonra corporra, tha an t-àm ann mo eòlas fad-ùine ann a bhith a’ leasachadh tèarainteachd VPN a cho-roinn. Cha bhith an artaigil seo fasanta a-nis IPSec IKEv2 agus xAuth. Tha e mu dheidhinn siostam a thogail. dearbhadh dà-fhactaraidh (2FA) Luchd-cleachdaidh VPN nuair a bhios MikroTik ag obair mar fhrithealaiche VPN. Is e sin, nuair a thèid protocolaidhean “clasaigeach” leithid PPP a chleachdadh.

Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

An-diugh innsidh mi dhut mar a dhìonas tu MikroTik PPP-VPN eadhon air eagal ‘s gun tèid“ fuadach ”a’ chunntas neach-cleachdaidh. Nuair a chaidh an sgeama seo a thoirt a-steach do aon de na teachdaichean agam, thug e cunntas goirid air mar “Uill, a-nis tha e dìreach mar ann am banca!”.

Chan eil am modh a’ cleachdadh seirbheisean dearbhaidh taobh a-muigh. Bidh na gnìomhan air an coileanadh air an taobh a-staigh leis an router fhèin. Gun chosgais don neach-dèiligidh ceangail. Bidh an dòigh ag obair airson gach cuid teachdaichean PC agus innealan gluasadach.

Tha an sgeama dìon coitcheann mar a leanas:

  1. Tha seòladh IP taobh a-staigh neach-cleachdaidh a tha air ceangal gu soirbheachail ris an t-seirbheisiche VPN air a chuir gu fèin-ghluasadach gu liath.
  2. Bidh an tachartas ceangail gu fèin-ghluasadach a’ gineadh còd aon-ùine a thèid a chuir chun neach-cleachdaidh a ’cleachdadh aon de na dòighean a tha rim faighinn.
  3. Tha cothrom cuibhrichte aig seòlaidhean air an liosta seo air goireasan lìonra ionadail, ach a-mhàin an t-seirbheis “authenticator”, a tha a’ feitheamh ri còd-pas aon-ùine fhaighinn.
  4. Às deidh dha an còd a thaisbeanadh, bidh cothrom aig an neach-cleachdaidh air goireasan a-staigh an lìonra.

A 'chiad fhear b’ e an duilgheadas as lugha a bha romham a bhith a’ stòradh fiosrachadh conaltraidh mun neach-cleachdaidh gus an còd 2FA a chuir thuige. Leis gu bheil e do-dhèanta raointean dàta neo-riaghailteach a chruthachadh a fhreagras do luchd-cleachdaidh ann am Mikrotik, chaidh an raon “beachd” a th ’ann mar-thà a chleachdadh:

/ ppp dìomhaireachdan cuir ainm = facal-faire Petrov = 4M@ngr! beachd="89876543210"

An dàrna fear thionndaidh an duilgheadas a-mach gu bhith na bu mhiosa - an roghainn slighe agus dòigh lìbhrigidh a’ chòd. Tha trì sgeamaichean gan cur an gnìomh an-dràsta: a) SMS tro USB-modem b) post-d c) SMS tro phost-d ri fhaighinn airson teachdaichean corporra a’ ghnìomhaiche cealla dearga.

Tha, bheir sgeamaichean SMS cosgaisean. Ach ma choimheadas tu, tha “tèarainteachd an-còmhnaidh mu airgead” (c).
Gu pearsanta cha toil leam an sgeama le post-dealain. Chan ann air sgàth gu bheil e ag iarraidh gum bi am frithealaiche puist ri fhaighinn airson an neach-dèiligidh a bhith air a dhearbhadh - chan e duilgheadas a th’ ann an trafaic a sgaradh. Ach, ma shàbhail neach-dèiligidh an dà chuid vpn agus faclan-faire post-d ann am brobhsair agus an uairsin an laptop aca a chall, gheibheadh ​​​​an neach-ionnsaigh làn chothrom air an lìonra corporra bhuaithe.

Mar sin, tha e air a cho-dhùnadh - bidh sinn a 'lìbhrigeadh còd aon-ùine a' cleachdadh teachdaireachdan SMS.

An treas fear Bha an duilgheadas far a bheil mar a ghineas tu còd meallta air thuaiream airson 2FA ann am MikroTik. Chan eil analogue den ghnìomh air thuaiream () ann an cànan sgrìobhaidh RouterOS, agus tha mi air grunn ghineadairean àireamh meallta-air thuaiream sgriobt crutch fhaicinn roimhe seo. Cha do chòrd gin dhiubh rium airson diofar adhbharan.

Gu dearbh, tha gineadair sreath meallta-air thuaiream ann am MikroTik! Tha e falaichte bho shealladh uachdarach ann an co-theacsa / teisteanasan scep-server. A 'chiad dhòigh tha e furasta agus sìmplidh facal-faire fhaighinn aon-ùine - leis an àithne / teisteanasan scep-server otp a ghineadh. Ma nì sinn gnìomh sònrachaidh caochlaideach sìmplidh, gheibh sinn luach rèite a ghabhas cleachdadh nas fhaide air adhart ann an sgriobtaichean.

An dàrna dòigh a 'faighinn facal-faire aon-ùine a tha cuideachd furasta a chur an sàs - a' cleachdadh seirbheis bhon taobh a-muigh air thuaiream.org gus an seòrsa sreath de àireamhan meallta a ghineadh. Seo dreach nas sìmplidhe cantilever eisimpleir de bhith a’ faighinn dàta gu caochladair:

còd a '
:global rnd1 [:pick ([/tool fetch url="https://www.random.org/strings/?num=1&len=7&digits=on&unique=on&format=plain&rnd=new" as-value output=user ]->"da
ta") 1 6] :put $rnd1

Bidh iarrtas ann an cruth airson a’ chonsail (feumaidh tu teicheadh ​​​​bho charactaran sònraichte ann am bodhaig an sgriobt) a’ faighinn sreath de shia àireamhan a-steach don chaochladair $rnd1. Tha an àithne “put” a leanas dìreach a’ taisbeanadh an caochladair ann an consol MikroTik.

An ceathramh duilgheadas a dh'fheumadh a bhith air a rèiteachadh gu sgiobalta - seo mar agus far am bi an neach-dèiligidh ceangailte a 'gluasad a chòd aon-ùine aig an dàrna ìre dearbhaidh.

Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

Feumaidh seirbheis a bhith air an router MikroTik a ghabhas ris a’ chòd agus a mhaidseadh le teachdaiche sònraichte. Ma tha an còd a chaidh a sholarachadh a 'freagairt ris an fhear ris a bheil dùil, bu chòir seòladh an neach-dèiligidh a bhith air a ghabhail a-steach ann an liosta "geal" sònraichte, far a bheil cead aig seòlaidhean faighinn gu lìonra a-staigh a' chompanaidh.

Mar thoradh air an droch roghainn de sheirbheisean, chaidh co-dhùnadh gabhail ri còdan tro http a’ cleachdadh an webproxy a chaidh a thogail a-steach do Mikrotik. Agus leis gum faod am balla-teine ​​​​obrachadh le liostaichean fiùghantach de sheòlaidhean IP, is e am balla-teine ​​​​a bhios a’ sgrùdadh a ’chòd, ga mhaidseadh le IP an neach-dèiligidh agus ga chur ris an liosta“ geal ”a’ cleachdadh Layer7 regexp. Chaidh ainm DNS cumhach “gw.local” a thoirt don router fhèin, chaidh clàr A statach a chruthachadh air airson a chuir gu teachdaichean PPP:

DNS
/ip dns static cuir ainm=gw.local address=172.31.1.1

A’ glacadh trafaic luchd-dèiligidh neo-dhearbhte air an neach-ionaid:
/ip firewall nat add chain=dstnat dst-port=80,443 in-interface=2fa protocol=tcp !src-address-list=2fa_approved action=redirect to-ports=3128

Anns a 'chùis seo, tha dà ghnìomh aig an neach-ionaid.

1. Fosgail tcp ceanglaichean le luchd-dèiligidh;

2. Ma tha cead soirbheachail ann, ath-threòraich brabhsair an neach-dèiligidh gu duilleag no dealbh a’ toirt fios mu dhearbhadh soirbheachail:

Suidheachadh proxy
/ip proxy
set enabled=yes port=3128
/ip proxy access
add action=deny disabled=no redirect-to=gw.local./mikrotik_logo.png src-address=0.0.0.0/0

Nì mi liosta de na h-eileamaidean rèiteachaidh cudromach:

  1. eadar-aghaidh-liosta "2fa" - fiùghantach liosta de luchd-cleachdaidh eadar-aghaidh, trafaig às a bheil feum air a ghiullachd taobh a-staigh 2FA;
  2. liosta sheòlaidhean "2fa_jailed" - liosta "liath" de sheòlaidhean IP tunail luchd-dèiligidh VPN;
  3. address_list "2fa_approved" - liosta "geal" de sheòlaidhean IP tunail luchd-dèiligidh VPN a tha air a dhol seachad air dearbhadh dà-fhactaraidh gu soirbheachail.
  4. slabhraidh balla-teine ​​​​"input_2fa" - bidh e a ’sgrùdadh phasganan tcp airson làthaireachd còd ceadachaidh agus a’ maidseadh seòladh IP neach-cuiridh a ’chòd leis an fhear a tha a dhìth. Tha riaghailtean anns an t-seine air an cur ris agus air an toirt air falbh gu dinamach.

Tha clàr-sruthadh nas sìmplidhe de ghiollachd pacaidean a’ coimhead mar seo:

Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

Gus faighinn a-steach don sgrùdadh Layer7 de thrafaig bho luchd-dèiligidh bhon liosta "liath" nach eil fhathast air a dhol seachad air an dàrna ìre dearbhaidh, chaidh riaghailt a chruthachadh anns an t-sreath àbhaisteach "cuir a-steach":

còd a '
/ip firewall filter add chain=input !src-address-list=2fa_approved action=jump jump-target=input_2fa

A-nis tòisichidh sinn air a’ bheairteas seo gu lèir a cheangal ris an t-seirbheis PPP. Leigidh MikroTik leat sgriobtaichean a chleachdadh ann am pròifilean (ppp-profile) agus an sònrachadh gu na tachartasan a thaobh stèidheachadh agus briseadh ceangal ppp. Faodar na roghainnean ppp-profile a chuir an sàs an dà chuid don t-seirbheisiche PPP gu h-iomlan agus do luchd-cleachdaidh fa-leth. Aig an aon àm, tha prìomhachas aig a ’phròifil a chaidh a shònrachadh don neach-cleachdaidh, a’ dol thairis air crìochan a ’phròifil a chaidh a thaghadh airson an fhrithealaiche gu h-iomlan leis na paramadairean ainmichte aige.

Mar thoradh air an dòigh-obrach seo, is urrainn dhuinn ìomhaigh sònraichte a chruthachadh airson dearbhadh dà-fhactaraidh agus a shònrachadh chan ann don h-uile neach-cleachdaidh, ach a-mhàin dhaibhsan a tha den bheachd gu bheil e riatanach sin a dhèanamh. Faodaidh seo a bhith buntainneach ma chleachdas tu seirbheisean PPP chan ann a-mhàin gus luchd-cleachdaidh deireannach a cheangal, ach aig an aon àm gus ceanglaichean làrach-gu-làraich a thogail.

Anns a’ phròifil shònraichte a chaidh a chruthachadh às ùr, bidh sinn a’ cleachdadh cur-ris fiùghantach seòladh agus eadar-aghaidh an neach-cleachdaidh ceangailte ris na liostaichean “liath” de sheòlaidhean agus eadar-aghaidh:

bogsa-buannachaidh
Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

còd a '
/ppp profile add address-list=2fa_jailed change-tcp-mss=no local-address=192.0.2.254 name=2FA interface-list=2fa only-one=yes remote-address=dhcp_pool1 use-compression=no use-encryption= required use-mpls=no use-upnp=no dns-server=172.31.1.1

Feumar an dà chuid liostaichean “seòladh-liosta” agus “liosta-eadar-aghaidh” a chleachdadh gus trafaic bho luchd-dèiligidh VPN neo-àrd-sgoile a lorg agus a ghlacadh anns an t-sreath dstnat (ro-ràdh).

Nuair a bhios an ullachadh deiseil, thèid slabhraidhean balla-teine ​​​​a bharrachd agus ìomhaigh a chruthachadh, sgrìobhaidh sinn sgriobt le uallach airson fèin-ghinealach de chòd 2FA agus riaghailtean balla-teine ​​​​fa leth.

Sgrìobhainnean wiki.mikrotik.com air PPP-Profile gar beairteachadh le fiosrachadh mu chaochladairean co-cheangailte ri tachartasan ceangail-dì-cheangail teachdaiche PPP msgstr "Cuir an gnìomh sgriobt air tachartas logadh a-steach luchd-cleachdaidh. Tha iad sin nan caochladairean rim faighinn a tha ruigsinneach airson sgriobt an tachartais: cleachdaiche, seòladh ionadail, seòladh iomallach, id neach-fios, id ris an canar, eadar-aghaidh". Tha cuid dhiubh gu math feumail dhuinn.

Còd air a chleachdadh sa phròifil airson tachartas ceangail air-suas PPP

#Логируем для отладки полученные переменные 
:log info (

quot;local-address")
:log info (


quot;remote-address")
:log info (


quot;caller-id")
:log info (


quot;called-id")
:log info ([/int pptp-server get (


quot;interface") name])
#Объявляем свои локальные переменные
:local listname "2fa_jailed"
:local viamodem false
:local modemport "usb2"
#ищем автоматически созданную запись в адрес-листе "2fa_jailed"
:local recnum1 [/ip fi address-list find address=(


quot;remote-address") list=$listname]

#получаем псевдослучайный код через random.org
#:local rnd1 [:pick ([/tool fetch url="https://www.random.org/strings/?num=1&len=7&digits=on&unique=on&format=plain&rnd=new" as-value output=user]->"data") 0 4] #либо получаем псевдослучайный код через локальный генератор
#:local rnd1 [pick ([/cert scep-server otp generate as-value minutes-valid=1]->"password") 0 4 ]

#Ищем и обновляем коммент к записи в адрес-листе. Вносим искомый код для отладки
/ip fir address-list set $recnum1 comment=$rnd1
#получаем номер телефона куда слать SMS
:local vphone [/ppp secret get [find name=$user] comment]

#Готовим тело сообщения. Если клиент подключается к VPN прямо с телефона ему достаточно
#будет перейти прямо по ссылке из полученного сообщения
:local msgboby ("Your code: ".$comm1."n Or open link http://gw.local/otp/".$comm1."/")

# Отправляем SMS по выбранному каналу - USB-модем или email-to-sms
if $viamodem do={
/tool sms send phone-number=$vphone message=$msgboby port=$modemport }
else={
/tool e-mail send server=a.b.c.d [email protected] [email protected] subject="@".$vphone body=$msgboby }

#Генерируем Layer7 regexp
local vregexp ("otp\/".$comm1)
:local vcomment ("2fa_".(


quot;remote-address"))
/ip firewall layer7-protocol add name=(


quot;vcomment") comment=(


quot;remote-address") regexp=(


quot;vregexp")

#Генерируем правило проверяющее по Layer7 трафик клиента в поисках нужного кода
#и небольшой защитой от брутфорса кодов с помощью dst-limit
/ip firewall filter add action=add-src-to-address-list address-list=2fa_approved address-list-timeout=none-dynamic chain=input_2fa dst-port=80,443,3128 layer7-protocol=(


quot;vcomment") protocol=tcp src-address=(


quot;remote-address") dst-limit=1,1,src-address/1m40s

Gu sònraichte dhaibhsan a tha dèidheil air leth-bhreac a dhèanamh de phasgadh, tha mi a ’toirt rabhadh dhut - tha an còd air a thoirt bhon dreach deuchainn agus dh’ fhaodadh gum bi beagan typos ann. Cha bhith e duilich do dhuine tuigseach faighinn a-mach càite dìreach.

Nuair a dhì-cheanglas neach-cleachdaidh, thèid tachartas “On-Down” a chruthachadh agus canar an sgriobt co-fhreagarrach le paramadairean. Is e obair an sgriobt seo na riaghailtean balla-teine ​​​​a chaidh a chruthachadh airson an neach-cleachdaidh gun cheangal a ghlanadh.

Còd air a chleachdadh sa phròifil airson tachartas ceangail air-sìos PPP

:local vcomment ("2fa_".(

quot;remote-address"))
/ip firewall address-list remove [find address=(


quot;remote-address") list=2fa_approved] /ip firewall filter remove [find chain="input_2fa" src-address=(


quot;remote-address") ] /ip firewall layer7-protocol remove [find name=$vcomment]
Faodaidh tu an uairsin luchd-cleachdaidh a chruthachadh agus a h-uile gin no cuid dhiubh a shònrachadh do phròifil dearbhaidh dà-fhactaraidh.

bogsa-buannachaidh
Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

còd a '
/ppp secrets set [find name=Petrov] profile=2FA

Mar a tha e a’ coimhead air taobh an neach-dèiligidh.

Nuair a thèid ceangal VPN a stèidheachadh, gheibh fòn / tablet Android / iOS le cairt SIM SMS mar seo:

SMS
Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

Ma thèid an ceangal a stèidheachadh gu dìreach bhon fhòn / tablet, faodaidh tu a dhol tro 2FA dìreach le bhith a ’cliogadh air a’ cheangal bhon teachdaireachd. Tha e cofhurtail.

Ma thèid an ceangal VPN a stèidheachadh bho PC, feumaidh an neach-cleachdaidh foirm facal-faire as ìsle a chuir a-steach. Thèid foirm bheag ann an cruth faidhle HTML a thoirt don neach-cleachdaidh nuair a bhios e a’ stèidheachadh an VPN. Faodar am faidhle a chuir tron ​​​​phost eadhon gus an sàbhail an neach-cleachdaidh e agus gun cruthaich e ath-ghoirid ann an àite goireasach. Tha e coltach ri seo:

Label air a’ bhòrd
Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

Cliogaidh an neach-cleachdaidh air an ath-ghoirid, fosglaidh foirm inntrigidh còd sìmplidh, a chuireas an còd a-steach don URL fosgailte:

Foirm sgrion
Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

Tha am foirm as prìomhadail air a thoirt seachad mar eisimpleir. Faodaidh an fheadhainn a tha ag iarraidh atharrachadh dhaibh fhèin.

2fa_login_mini.html

<html>
<head> <title>SMS OTP login</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head>
<body>
<form name="login" action="location.href='http://gw.local/otp/'+document.getElementById(‘text').value"  method="post"
 <input id="text" type="text"/> 
<input type="button" value="Login" onclick="location.href='http://gw.local/otp/'+document.getElementById('text').value"/> 
</form>
</body>
</html>

Ma bha an t-ùghdarras soirbheachail, chì an neach-cleachdaidh suaicheantas MikroTik sa bhrobhsair, a bu chòir dearbhadh soirbheachail a chomharrachadh:

Dearbhadh dà-fhactaraidh de luchd-cleachdaidh VPN tro MikroTik agus SMS

Thoir an aire gu bheil an ìomhaigh air a thilleadh bhon t-seirbheisiche lìn MikroTik a chaidh a thogail a-steach a’ cleachdadh WebProxy Deny Redirect.

Tha mi creidsinn gun gabh an ìomhaigh a ghnàthachadh le bhith a’ cleachdadh an inneal “hotspot”, a’ luchdachadh suas an dreach agad fhèin an sin agus a’ suidheachadh an URL àicheadh ​​air ais thuige le WebProxy.

Iarrtas mòr dhaibhsan a tha a’ feuchainn ris an “dèideag” Mikrotik as saoire a cheannach airson $20 agus router $500 a chuir na àite - na dèan sin. Tha CPU (smips) gu math lag aig innealan mar "hAP Lite" / "hAP mini" (àite inntrigidh dachaigh), agus tha e coltach nach bi iad a 'dèiligeadh ris an luchd anns a' ghnìomhachas.

Rabhadh! Tha aon eas-bhuannachd aig an fhuasgladh seo: nuair a bhios teachdaichean a’ ceangal no a’ dì-cheangal, bidh atharrachaidhean rèiteachaidh a’ tachairt, a bhios an router a’ feuchainn ri shàbhaladh na chuimhne neo-luaineach. Le àireamh mhòr de luchd-dèiligidh agus ceanglaichean tric agus dì-cheangail, faodaidh seo leantainn gu crìonadh ann an stòradh a-staigh an router.

PS: Faodar dòighean airson còd a lìbhrigeadh don neach-dèiligidh a leudachadh agus a leudachadh cho fada ‘s a tha na comasan prògramaidh agad gu leòr. Mar eisimpleir, faodaidh tu teachdaireachdan a chuir gu teileagram no ... roghainnean a mholadh!

Tha mi an dòchas gum bi an artaigil feumail dhut agus gun cuidich e gus lìonraidhean ghnìomhachasan beaga is meadhanach a dhèanamh beagan nas tèarainte.

Source: www.habr.com