Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

Lumela basebetsi-'moho! Kajeno, ha matla a litabatabelo tse mabapi le "mosebetsi o hole" a kokobela hanyane, boholo ba balaoli ba hapile mosebetsi oa ho fihlella basebetsi hole le marang-rang a khoebo, ke nako ea ho arolelana boiphihlelo ba ka ba nako e telele ba ho ntlafatsa ts'ireletso ea VPN. Sengoliloeng sena se ke ke sa ba fesheneng hona joale IPSec IKEv2 le xAuth. E mabapi le ho haha ​​tsamaiso. netefatso ea lintlha tse peli (2FA) Basebelisi ba VPN ha MikroTik e sebetsa joalo ka seva sa VPN. E leng, ha ho sebelisoa liprothokholo tsa "classic" joalo ka PPP.

Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

Kajeno ke tla u bolella mokhoa oa ho sireletsa MikroTik PPP-VPN le haeba ak'haonte ea mosebelisi e "koetsoe". Ha morero ona o tsebisoa e mong oa bareki ba ka, o ile a hlalosa ka bokhutšoanyane e le "hantle, joale ho tšoana le bankeng!".

Mokhoa ha o sebelise lits'ebeletso tsa netefatso ea kantle. Mesebetsi e etsoa ka hare ke router ka boeona. Ha ho litšenyehelo bakeng sa moreki ea hokelang. Mokhoa ona o sebetsa ho basebelisi ba PC le lisebelisoa tsa mehala.

Sekema se akaretsang sa tshireletso ke se latelang:

  1. Aterese ea ka hare ea IP ea mosebelisi ea atlehileng ho hokela seva ea VPN e thathamisitsoe ka boputsoa ka bo eona.
  2. Ketsahalo ea khokahano e iketsetsa khoutu ea nako e le 'ngoe e romelloang ho mosebelisi a sebelisa e' ngoe ea mekhoa e teng.
  3. Liaterese lethathamong lena li na le phihlello e fokolang ea lisebelisoa tsa marang-rang tsa lehae, ntle le ts'ebeletso ea "authenticator", e emetse ho fumana paskhoutu ea nako e le 'ngoe.
  4. Ka mor'a ho hlahisa khoutu, mosebedisi o khona ho fumana mehloli ea ka hare ea marang-rang.

Ea pele bothata bo bonyenyane boo ke neng ke tlameha ho tobana le bona e ne e le ho boloka tlhahisoleseling mabapi le mosebelisi ho mo romella khoutu ea 2FA. Kaha ho ke ke ha khoneha ho theha libaka tsa data tse sa lumellaneng tse tsamaellanang le basebelisi ba Mikrotik, ho sebelisitsoe tšimo ea "maikutlo" e teng:

/ liphiri tsa ppp eketsa lebitso=Petrov password = 4M @ ngr! maikutlo = "89876543210"

Ea bobeli bothata bo ile ba fetoha bo tebileng haholoanyane - khetho ea tsela le mokhoa oa ho fana ka khoutu. Merero e meraro e kentsoe tšebetsong hajoale: a) SMS ka USB-modem b) e-mail c) SMS ka lengolo-tsoibila e fumanehang bakeng sa bareki ba khoebo ba opareitara e khubelu ea cellular.

E, merero ea SMS e tlisa litšenyehelo. Empa ha u sheba, "ts'ireletso e lula e le ka chelete" (c).
'Na ka bonna ha ke rate morero ona oa e-mail. Eseng hobane e hloka hore seva ea mangolo e be teng hore moreki a netefatsoe - ha se bothata ho arola sephethephethe. Leha ho le joalo, haeba moreki a ne a boloka li-password tsa vpn le tsa imeile ka bohlasoa ho sebatli mme a lahleheloa ke laptop, mohlaseli o ne a tla fumana phihlello e felletseng ea marang-rang a khoebo ho tsoa ho eona.

Kahoo, ho entsoe qeto - re fana ka khoutu ea nako e le 'ngoe re sebelisa melaetsa ea SMS.

Ea boraro Bothata e ne e le hore na hokae mokhoa oa ho hlahisa khoutu ea pseudo-random bakeng sa 2FA ho MikroTik. Ha ho na analogue ea ts'ebetso ea random() puong ea ho ngola ea RouterOS, 'me ke bone lijenereithara tse ngata tsa crutch script pseudo-random number pele. Ke ne ke sa rate le e 'ngoe ea tsona ka mabaka a sa tšoaneng.

Ebile, ho na le jenereithara ea tatellano ea pseudo-random ho MikroTik! E patiloe ponong e kaholimo ho moelelo oa /litifikeiti tsa scep-server. Tsela ea pele ho fumana phasewete ea nako e le 'ngoe ho bonolo ebile ho bonolo - ka taelo /setifikeiti scep-server otp hlahisa. Haeba re etsa ts'ebetso e bonolo ea kabelo, re tla fumana boleng bo ka sebelisoang hamorao mangolong.

Tsela ea bobeli ho fumana phasewete ea nako e le 'ngoe eo hape ho leng bonolo ho e sebelisa - ho sebelisa tšebeletso ea kantle lehlohonolo.org ho hlahisa mofuta o batloang oa tatellano ea linomoro tsa pseudo-random. Ke ena e nolofalitsoeng cantilevered mohlala oa ho kenya data ho feto-fetoha:

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

Kopo e hlophisitsoeng bakeng sa console (ho phonyoha litlhaku tse khethehileng ho tla hlokoa 'meleng oa script) e amohela khoele ea linomoro tse tšeletseng ho $rnd1 e feto-fetohang. Taelo e latelang ea "beha" e bonts'a phetoho ho khomphutha ea MikroTik.

Bothata ba bone e neng e tlameha ho rarolloa kapele - ena ke mokhoa le moo moreki ea hokahaneng a tla fetisetsa khoutu ea hae ea nako e le 'ngoe sethaleng sa bobeli sa netefatso.

Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

Ho tlameha ho ba le ts'ebeletso ho router ea MikroTik e ka amohelang khoutu ebe e e bapisa le moreki ea itseng. Haeba khoutu e fanoeng e lumellana le e lebelletsoeng, aterese ea moreki e lokela ho kenyelletsoa lethathamong le itseng "le tšoeu", liaterese tseo ho tsona ho lumelloang ho fihlella marang-rang a ka hare a k'hamphani.

Ka lebaka la khetho e mpe ea litšebeletso, ho ile ha etsoa qeto ea ho amohela li-code ka http ho sebelisa webproxy e hahiloeng ho Mikrotik. 'Me kaha firewall e ka sebetsa ka manane a matla a liaterese tsa IP, ke firewall e etsang patlo ea khoutu, e e bapisa le IP ea bareki ebe e e kenyelletsa lethathamong la "white" le sebelisa Layer7 regexp. Router ka boeona e filoe lebitso la DNS le nang le maemo "gw.local", rekoto ea A e sa fetoheng e entsoe ho eona bakeng sa ho fa bareki ba PPP:

DNS
/ip dns static add name=gw.local address=172.31.1.1

Ho ts'oara sephethephethe sa bareki ba sa netefatsoang ho proxy:
/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

Tabeng ena, proxy e na le mesebetsi e 'meli.

1. Bula likhokahano tsa tcp le bareki;

2. Haeba tumello e atlehile, fetisetsa sebatli leqepheng kapa setšoantšong se tsebisang ka netefatso e atlehileng:

Sebopeho sa 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

Ke tla thathamisa lintlha tsa bohlokoa tsa tlhophiso:

  1. interface-lethathamo "2fa" - lenane le matla la li-interface tsa bareki, sephethephethe se hlokang ho sebetsa ka har'a 2FA;
  2. lethathamo la aterese "2fa_jailed" - "grey" lethathamo la liaterese tsa IP tsa bareki ba VPN;
  3. address_list "2fa_approved" - "white" lethathamo la liaterese tsa IP tsa kotopo tsa bareki ba VPN ba atlehileng ho feta netefatso ea lintlha tse peli.
  4. ketane ea firewall "input_2fa" - e hlahloba lipakete tsa tcp bakeng sa boteng ba khoutu ea tumello mme e tsamaisana le aterese ea IP ea motho ea rometseng khoutu le e hlokahalang. Melao ka ketane ea eketsoa le ho tlosoa ka matla.

Phallo e nolofalitsoeng ea ts'ebetso ea lipakete e shebahala tjena:

Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

Ho kena ka har'a cheke ea Layer7 ea sephethephethe ho tsoa ho bareki ho tsoa lenaneng la "grey" le e-so fete mohato oa bobeli oa netefatso, ho entsoe molao ka ketane e tloaelehileng ea "input":

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

Joale ha re qaleng ho tiisa leruo lena kaofela tšebeletsong ea PPP. MikroTik e u lumella ho sebelisa lingoloa ho profil (ppp-profile) le ho li abela liketsahalo tsa ho theha le ho senya khokahano ea ppp. Litlhophiso tsa boemo ba ppp li ka sebelisoa ho seva sa PPP ka kakaretso le ho basebelisi ka bomong. Ka nako e ts'oanang, profil e fuoeng mosebelisi e na le eona e tlang pele, ho feta liparamente tsa profil e khethiloeng bakeng sa seva ka kakaretso le li-parameter tsa eona tse boletsoeng.

Ka lebaka la mokhoa ona, re ka etsa profil e khethehileng bakeng sa netefatso ea lintlha tse peli mme ha re e abele basebelisi bohle, empa ke feela ba nkang hore ho hlokahala ho etsa joalo. Sena se ka ba sa bohlokoa haeba u sebelisa litšebeletso tsa PPP eseng feela ho hokela basebelisi ba ho qetela, empa ka nako e ts'oanang ho aha likhokahano tsa sebaka le sebaka.

Boemong bo ikhethileng bo sa tsoa etsoa, ​​​​re sebelisa tlatsetso e matla ea aterese le sebopeho sa mosebelisi ea hokahaneng lethathamong la "grey" la liaterese le li-interfaces:

winbox
Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

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

Hoa hlokahala ho sebelisa manane a "lethathamo la liaterese" le "lethathamo la li-interface" ho bona le ho hapa sephethephethe ho tsoa ho bareki bao e seng ba bobeli ba VPN ka ketane ea dstnat (prerouting).

Ha boitokiso bo phethiloe, liketane tse ling tsa li-firewall le profil lia bōptjoa, re tla ngola lengolo le ikarabellang bakeng sa ho iketsetsa khoutu ea 2FA le melao ea motho ka mong ea firewall.

Litokomane wiki.mikrotik.com ho PPP-Profile e re matlafatsa ka tlhahisoleseling mabapi le mefuta-futa e amanang le liketsahalo tsa ho hokela tsa bareki ba PPP "Phetha script ketsahalong ea ho kena ha mosebelisi. Tsena ke mefuta e fumanehang e fumanehang bakeng sa sengoloa sa ketsahalo: mosebelisi, aterese ea lehae, aterese e hole, id-id, bit-id, interface". Tse ling tsa tsona li molemo haholo ho rona.

Khoutu e sebelisitsoeng profilaneng bakeng sa ketsahalo ea khokahano ea 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

Haholo-holo ho ba ratang ho kopitsa ka mokhoa o sa nahaneleng, kea u lemosa - khoutu e nkiloe phetolelong ea teko 'me e ka' na ea e-ba le litlhaku tse nyenyane. Ho ke ke ha e-ba thata hore motho ea utloisisang a tsebe hantle hore na ke hokae.

Ha mosebelisi a hakolla, ketsahalo ea "On-Down" e hlahisoa 'me mongolo o tsamaellanang le li-parameter o bitsoa. Morero oa mongolo ona ke ho hloekisa melao ea firewall e etselitsoeng mosebelisi ea khaotsoeng.

Khoutu e sebelisitsoeng profilaneng bakeng sa ketsahalo ea khokahano e tlase ea 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]
Joale o ka theha basebelisi mme oa abela bohle kapa ba bang ba bona profaele ea netefatso ea lintlha tse peli.

winbox
Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

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

E shebahala joang ka lehlakoreng la bareki.

Ha khokahano ea VPN e thehiloe, mohala / tablet ea Android/iOS e nang le SIM card e fumana SMS e kang ena:

SMS
Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

Haeba khokahano e thehiloe ka kotloloho ho tsoa mohala / tablet, o ka feta 2FA feela ka ho tobetsa sehokelo se tsoang molaetseng. E phutholohile.

Haeba khokahano ea VPN e thehiloe ho tsoa ho PC, joale mosebelisi o tla kopuoa ho kenya foromo e nyane ea password. Foromo e nyane ka mokhoa oa faele ea HTML e fuoa mosebelisi ha a theha VPN. Faele e ka ba ea romelloa ka poso e le hore mosebelisi a e boloke mme a thehe tsela e khuts'oane sebakeng se loketseng. E shebahala tjena:

Ngola tafoleng
Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

Mosebelisi o tobetsa tsela e khuts'oane, ho bula foromo e bonolo ea ho kenya khoutu, e tla beha khoutu ho URL e butsoeng:

Foromo ea skrine
Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

Foromo ea khale ka ho fetisisa e fanoa e le mohlala. Ba lakatsang ba ka itlhophisa.

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>

Haeba tumello e atlehile, mosebelisi o tla bona logo ea MikroTik ho sebatli, e lokelang ho bonts'a netefatso e atlehileng:

Netefatso ea lintlha tse peli ea basebelisi ba VPN ka MikroTik le SMS

Hlokomela hore setšoantšo se khutlisetsoa ho tsoa ho seva sa marang-rang sa MikroTik se hahiloeng ho sebelisoa WebProxy Deny Redirect.

Ke nahana hore setšoantšo se ka etsoa ka mokhoa o ikhethileng ho sebelisoa sesebelisoa sa "hotspot", ho kenya mofuta oa hau moo le ho beha URL ea Latola Redirect ho eona ka WebProxy.

Kopo e kholo ho ba lekang ho reka "toy" e theko e tlaase Mikrotik bakeng sa $ 20 le ho nkela router ea $ 500 sebaka ka eona - u se ke ua etsa joalo. Lisebelisoa tse kang "hAP Lite" / "hAP mini" (sebaka sa ho fihlella lapeng) li na le CPU e fokolang haholo (li-smips), 'me ho ka etsahala hore li ke ke tsa sebetsana le mojaro karolong ea khoebo.

Temoso! Tharollo ena e na le drawback e le 'ngoe: ha bareki ba kopanya kapa ba khaola, liphetoho tsa tlhophiso li etsahala, tseo router e lekang ho li boloka mohopolong oa eona o sa tsitsang. Ka palo e kholo ea bareki le likhokahano tsa khafetsa le ho khaoha, sena se ka lebisa ho senyeha ha polokelo ea kahare ho router.

PS: Mekhoa ea ho fana ka khoutu ho moreki e ka atolosoa le ho eketsoa ho fihlela bokhoni ba hau ba ho etsa mananeo bo lekane. Mohlala, o ka romella melaetsa ho thelekramo kapa ... fana ka maikutlo a likhetho!

Ke tšepa hore sehlooho sena se tla ba molemo ho uena 'me se tla thusa ho etsa hore marang-rang a likhoebo tse nyenyane le tse mahareng a sireletsehe haholoanyane.

Source: www.habr.com