Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Kaabo awọn ẹlẹgbẹ! Loni, nigbati kikankikan ti awọn ifẹkufẹ ni ayika “iṣẹ isakoṣo latọna jijin” dinku diẹ, pupọ julọ awọn admins bori iṣẹ-ṣiṣe ti iraye si latọna jijin ti awọn oṣiṣẹ si nẹtiwọọki ile-iṣẹ, o to akoko lati pin iriri igba pipẹ mi ni imudarasi aabo VPN. Nkan yii kii yoo jẹ asiko ni bayi IPSec IKEv2 ati xAuth. O jẹ nipa kikọ eto kan. ìfàṣẹ̀sí ẹ̀ka méjì (2FA) Awọn olumulo VPN nigbati MikroTik n ṣiṣẹ bi olupin VPN kan. Eyun, nigbati awọn ilana "Ayebaye" gẹgẹbi PPP ti lo.

Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Loni Emi yoo sọ fun ọ bi o ṣe le daabobo MikroTik PPP-VPN paapaa ti akọọlẹ olumulo ba jẹ “jija”. Nigbati a ṣe agbekalẹ ero yii si ọkan ninu awọn alabara mi, o ṣapejuwe ni ṣoki bi “daradara, ni bayi o dabi ni banki kan!”.

Ọna naa ko lo awọn iṣẹ olujeri ita. Awọn iṣẹ-ṣiṣe ni a ṣe ni inu nipasẹ olulana funrararẹ. Ko si idiyele fun alabara sisopọ. Ọna naa ṣiṣẹ fun awọn alabara PC mejeeji ati awọn ẹrọ alagbeka.

Eto aabo gbogbogbo jẹ bi atẹle:

  1. Adirẹsi IP inu ti olumulo kan ti o ti sopọ ni aṣeyọri si olupin VPN jẹ akojọ greyly laifọwọyi.
  2. Iṣẹlẹ asopọ naa n ṣe ipilẹṣẹ koodu igba kan ti o firanṣẹ si olumulo ni lilo ọkan ninu awọn ọna to wa.
  3. Awọn adirẹsi ninu atokọ yii ni iraye si opin si awọn orisun nẹtiwọọki agbegbe, ayafi ti iṣẹ “oludari”, eyiti o nduro lati gba koodu iwọle kan-akoko kan.
  4. Lẹhin fifi koodu naa han, olumulo ni iwọle si awọn orisun inu ti nẹtiwọọki.

Ni igba akọkọ ti Iṣoro ti o kere julọ ti Mo ni lati koju ni fifipamọ alaye olubasọrọ nipa olumulo lati fi koodu 2FA ranṣẹ si i. Niwọn igba ti ko ṣee ṣe lati ṣẹda awọn aaye data lainidii ti o baamu si awọn olumulo ni Mikrotik, aaye “ọrọ asọye” ti o wa tẹlẹ ni a lo:

/ppp asiri fi orukọ = Petrov ọrọigbaniwọle=4M@ngr! asọye = "89876543210"

Ekeji iṣoro naa ti jade lati jẹ pataki diẹ sii - yiyan ti ọna ati ọna ti jiṣẹ koodu naa. Awọn eto mẹta ti wa ni imuse lọwọlọwọ: a) SMS nipasẹ USB-modem b) imeeli c) SMS nipasẹ imeeli ti o wa fun awọn alabara ajọ ti oniṣẹ cellular pupa.

Bẹẹni, awọn ero SMS mu awọn idiyele wa. Ṣugbọn ti o ba wo, "aabo nigbagbogbo nipa owo" (c).
Emi tikalararẹ ko fẹran ero naa pẹlu imeeli. Kii ṣe nitori pe o nilo olupin meeli lati wa fun alabara ni ijẹrisi - kii ṣe iṣoro lati pin ijabọ naa. Bibẹẹkọ, ti alabara kan ba fi aibikita pamọ mejeeji vpn ati awọn ọrọ igbaniwọle imeeli ninu ẹrọ aṣawakiri kan ati lẹhinna padanu kọǹpútà alágbèéká wọn, ikọlu naa yoo ni iraye si ni kikun si nẹtiwọọki ajọ lati ọdọ rẹ.

Nitorinaa, o ti pinnu - a firanṣẹ koodu akoko kan ni lilo awọn ifiranṣẹ SMS.

Kẹta Iṣoro naa ni ibo bi o lati se ina apseudo-ID koodu fun 2FA ni MikroTik. Ko si afọwọṣe ti ID () iṣẹ ni RouterOS ede kikọ, ati ki o Mo ti ri orisirisi crutch akosile afarape-ID nọmba Generators ṣaaju ki o to. Emi ko fẹ eyikeyi ninu wọn fun orisirisi idi.

Ni otitọ, olupilẹṣẹ ọkọọkan atansọ kan wa ni MikroTik! O ti wa ni pamọ lati kan Egbò kokan ni awọn ipo ti / awọn iwe-ẹri scep-server. Ọna akọkọ gbigba ọrọ igbaniwọle akoko kan rọrun ati rọrun - pẹlu aṣẹ naa / awọn iwe-ẹri sep-server otp ina. Ti a ba ṣe iṣẹ iyansilẹ ti o rọrun, a yoo gba iye orun ti o le ṣee lo nigbamii ni awọn iwe afọwọkọ.

Ọna keji gbigba ọrọ igbaniwọle igba kan ti o tun rọrun lati lo - lilo iṣẹ ita random.org lati se ina awọn ti o fẹ ni irú ti ọkọọkan ti pseudo-ID awọn nọmba. Eyi ni irọrun kan cantilevered apẹẹrẹ ti gbigba data sinu oniyipada kan:

Koodu
: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

Ibeere ti a ṣe akoonu fun console (salọ awọn ohun kikọ pataki yoo nilo ninu ara iwe afọwọkọ) gba okun ti awọn nọmba mẹfa sinu oniyipada $rnd1. Aṣẹ “fi” atẹle n ṣe afihan oniyipada ni console MikroTik.

Iṣoro kẹrin eyiti o ni lati yanju ni kiakia - eyi ni bii ati nibiti alabara ti o sopọ yoo gbe koodu akoko-ọkan rẹ ni ipele keji ti ijẹrisi.

Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Iṣẹ kan gbọdọ wa lori olulana MikroTik ti o le gba koodu naa ki o baamu pẹlu alabara kan pato. Ti koodu ti a pese ba baamu ọkan ti a nireti, adirẹsi alabara yẹ ki o wa ninu atokọ “funfun” kan, awọn adirẹsi lati eyiti a gba laaye wọle si nẹtiwọọki inu ile-iṣẹ naa.

Nitori yiyan awọn iṣẹ ti ko dara, o pinnu lati gba awọn koodu nipasẹ http ni lilo aṣoju wẹẹbu ti a ṣe sinu Mikrotik. Ati pe niwọn igba ti ogiriina le ṣiṣẹ pẹlu awọn atokọ agbara ti awọn adirẹsi IP, ogiriina ti o ṣe wiwa koodu naa, baamu pẹlu IP alabara ati ṣafikun rẹ si atokọ “funfun” nipa lilo Layer7 regexp. Olulana ara rẹ ti ni iyasọtọ orukọ DNS ni àídájú “gw.local”, a ti ṣẹda igbasilẹ A-aimi lori rẹ fun ipinfunni si awọn alabara PPP:

DNS
/ip dns aimi kun orukọ = gw.agbegbe adirẹsi = 172.31.1.1

Yiya awọn ijabọ ti awọn onibara ti ko ni idaniloju lori aṣoju:
/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

Ni idi eyi, aṣoju ni awọn iṣẹ meji.

1. Ṣii awọn asopọ tcp pẹlu awọn onibara;

2. Ni ọran ti aṣẹ aṣeyọri, tunda ẹrọ aṣawakiri alabara lọ si oju-iwe kan tabi aworan ti n sọfunni nipa ijẹrisi aṣeyọri:

Aṣoju konfigi
/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

Emi yoo ṣe atokọ awọn eroja iṣeto pataki:

  1. ni wiwo-akojọ "2fa" - a ìmúdàgba akojọ ti awọn ose atọkun, ijabọ lati eyi ti nbeere processing laarin 2FA;
  2. atokọ adirẹsi “2fa_jailed” - “awọ grẹy” atokọ ti awọn adirẹsi IP oju eefin ti awọn alabara VPN;
  3. address_list "2fa_approved" - "funfun" akojọ ti awọn adiresi IP oju eefin ti awọn onibara VPN ti o ti ṣaṣeyọri ni idaniloju idaniloju ifosiwewe meji.
  4. ogiriina pq "input_2fa" - o ṣayẹwo awọn apo-iwe tcp fun wiwa koodu aṣẹ kan ati pe o baamu adiresi IP ti olufi koodu pẹlu ọkan ti o nilo. Awọn ofin ti o wa ninu pq ti wa ni afikun ati yọkuro ni agbara.

Aworan sisan ti o rọrun ti sisẹ pakẹti dabi eyi:

Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Lati wọle si ayẹwo Layer7 ti ijabọ lati ọdọ awọn alabara lati atokọ “grẹy” ti ko ti kọja ipele keji ti ijẹrisi, ofin kan ti ṣẹda ninu pq “input” boṣewa:

Koodu
/ip firewall filter add chain=input !src-address-list=2fa_approved action=jump jump-target=input_2fa

Bayi jẹ ki ká bẹrẹ lati fasten gbogbo oro si awọn PPP iṣẹ. MikroTik faye gba o lati lo awọn iwe afọwọkọ ni awọn profaili (ppp-profaili) ati fi wọn si awọn iṣẹlẹ ti iṣeto ati fifọ asopọ ppp kan. Awọn eto profaili ppp le ṣee lo si olupin PPP mejeeji lapapọ ati si awọn olumulo kọọkan. Ni akoko kanna, profaili ti a yàn si olumulo ni o ni pataki, ti o bori awọn aye ti profaili ti a yan fun olupin ni apapọ pẹlu awọn paramita pàtó rẹ.

Bi abajade ti ọna yii, a le ṣẹda profaili pataki kan fun ijẹrisi ifosiwewe meji ati fi si gbogbo awọn olumulo, ṣugbọn fun awọn ti o ro pe o ṣe pataki lati ṣe bẹ. Eyi le ṣe pataki ti o ba lo awọn iṣẹ PPP kii ṣe lati sopọ awọn olumulo ipari nikan, ṣugbọn ni akoko kanna lati kọ awọn asopọ aaye-si-ojula.

Ninu profaili pataki ti a ṣẹda tuntun, a lo afikun agbara ti adirẹsi ati wiwo olumulo ti o sopọ si awọn atokọ “grẹy” ti awọn adirẹsi ati awọn atọkun:

winbox
Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Koodu
/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

O jẹ dandan lati lo mejeeji “akojọ-adirẹsi” ati awọn atokọ “akojọ atọwọdọwọ” lati ṣawari ati mu awọn ijabọ lati ọdọ awọn alabara VPN ti kii ṣe ile-ẹkọ giga ni pq dstnat (prerouting).

Nigbati igbaradi ba ti pari, awọn ẹwọn ogiriina afikun ati profaili kan ni a ṣẹda, a yoo kọ iwe afọwọkọ kan ti o ni iduro fun ipilẹṣẹ adaṣe ti koodu 2FA ati awọn ofin ogiriina kọọkan.

Iwe wiki.mikrotik.com lori PPP-Profaili mu wa pọ si pẹlu alaye nipa awọn oniyipada ti o ni nkan ṣe pẹlu awọn iṣẹlẹ asopọ asopọ alabara PPP "Ṣiṣe iwe afọwọkọ lori iṣẹlẹ wiwọle olumulo. Iwọnyi wa awọn oniyipada ti o wa fun iwe afọwọkọ iṣẹlẹ: olumulo, adirẹsi agbegbe, adirẹsi latọna jijin, olupe-id, id-ipe, wiwo”. Diẹ ninu wọn wulo pupọ fun wa.

Koodu ti a lo ni profaili fun iṣẹlẹ isopọ-soke 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

Paapa fun awọn ti o nifẹ lati daakọ-lẹẹmọ lainidii, Mo kilọ fun ọ - koodu naa ti mu lati ẹya idanwo ati pe o le ni awọn titẹ kekere ninu. Kii yoo ṣoro fun eniyan ti o ni oye lati mọ pato ibiti.

Nigbati olumulo kan ba ge asopọ, iṣẹlẹ “Lori-isalẹ” ti ipilẹṣẹ ati pe iwe afọwọkọ ti o baamu pẹlu awọn paramita ni a pe. Iṣẹ-ṣiṣe ti iwe afọwọkọ yii ni lati nu awọn ofin ogiriina ti a ṣẹda fun olumulo ti ge asopọ.

Koodu ti a lo ni profaili fun iṣẹlẹ asopọ si isalẹ 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]
O le lẹhinna ṣẹda awọn olumulo ati fi gbogbo tabi diẹ ninu wọn si profaili ijẹrisi ifosiwewe meji.

winbox
Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Koodu
/ppp secrets set [find name=Petrov] profile=2FA

Bi o ti wulẹ lori awọn ose ẹgbẹ.

Nigbati asopọ VPN ba ti fi idi mulẹ, foonu Android/iOS/tabulẹti pẹlu kaadi SIM gba SMS bii eyi:

SMS
Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Ti asopọ ba ti fi idi mulẹ taara lati foonu / tabulẹti, lẹhinna o le lọ nipasẹ 2FA nirọrun nipa tite ọna asopọ lati ifiranṣẹ naa. O ni itunu.

Ti asopọ VPN ba ni idasilẹ lati PC kan, lẹhinna olumulo yoo nilo lati tẹ fọọmu igbaniwọle pọọku kan. Fọọmu kekere ni irisi faili HTML ni a fun olumulo nigbati o ṣeto VPN. Faili naa le paapaa firanṣẹ nipasẹ meeli ki olumulo le fipamọ ati ṣẹda ọna abuja ni aaye ti o rọrun. O dabi eleyi:

Aami lori tabili
Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Olumulo naa tẹ ọna abuja, fọọmu titẹsi koodu ti o rọrun kan ṣii, eyiti yoo lẹẹmọ koodu naa sinu URL ti o ṣii:

Fọọmu iboju
Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Fọọmu akọkọ julọ ni a fun bi apẹẹrẹ. Awọn ti o fẹ le yipada fun ara wọn.

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>

Ti aṣẹ naa ba ṣaṣeyọri, olumulo yoo rii aami MikroTik ninu ẹrọ aṣawakiri, eyiti o yẹ ki o ṣe afihan ijẹrisi aṣeyọri:

Ijeri ifosiwewe meji ti awọn olumulo VPN nipasẹ MikroTik ati SMS

Ṣe akiyesi pe aworan naa ti pada lati inu olupin wẹẹbu MikroTik ti a ṣe sinu rẹ nipa lilo WebProxy Deny Redirect.

Mo ro pe aworan naa le ṣe adani ni lilo ohun elo “hotspot”, ikojọpọ ẹya tirẹ nibẹ ati ṣeto URL Deny Redirect si rẹ pẹlu WebProxy.

Ibeere nla kan si awọn ti o n gbiyanju lati ra Mikrotik "isere" ti o kere julọ fun $20 ki o rọpo olulana $ 500 pẹlu rẹ - maṣe ṣe bẹ. Awọn ẹrọ bii “hAP Lite” / “hAP mini” (ojuami iwọle si ile) ni Sipiyu ti ko lagbara (smips), ati pe o ṣee ṣe pe wọn kii yoo koju ẹru naa ni apakan iṣowo naa.

Ikilo! Ojutu yii ni apadabọ kan: nigbati awọn alabara ba sopọ tabi ge asopọ, awọn ayipada atunto waye, eyiti olulana n gbiyanju lati fipamọ sinu iranti ti kii ṣe iyipada. Pẹlu nọmba nla ti awọn alabara ati awọn asopọ loorekoore ati awọn asopọ, eyi le ja si ibajẹ ti ibi ipamọ inu inu olulana naa.

PS: Awọn ọna fun jiṣẹ koodu si alabara le jẹ afikun ati afikun niwọn bi awọn agbara siseto rẹ ti to. Fun apẹẹrẹ, o le fi awọn ifiranṣẹ ranṣẹ si telegram tabi ... daba awọn aṣayan!

Mo nireti pe nkan naa yoo wulo fun ọ ati pe yoo ṣe iranlọwọ lati ṣe awọn nẹtiwọọki ti awọn iṣowo kekere ati alabọde ni aabo diẹ sii.

orisun: www.habr.com