MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

హలో సహోద్యోగులారా! ఈ రోజు, “రిమోట్ వర్క్” చుట్టూ ఉన్న అభిరుచుల తీవ్రత కొద్దిగా తగ్గినప్పుడు, మెజారిటీ అడ్మిన్‌లు కార్పొరేట్ నెట్‌వర్క్‌కు ఉద్యోగుల రిమోట్ యాక్సెస్ యొక్క పనిని గెలుచుకున్నారు, VPN భద్రతను మెరుగుపరచడంలో నా దీర్ఘకాల అనుభవాన్ని పంచుకునే సమయం ఇది. ఈ కథనం ఇప్పుడు IPSec IKEv2 మరియు xAuth ఫ్యాషన్ కాదు. ఇది వ్యవస్థను నిర్మించడం గురించి. రెండు-కారకాల ప్రమాణీకరణ (2FA) MikroTik VPN సర్వర్‌గా పనిచేసినప్పుడు VPN వినియోగదారులు. అవి, PPP వంటి "క్లాసిక్" ప్రోటోకాల్‌లను ఉపయోగించినప్పుడు.

MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

వినియోగదారు ఖాతా "హైజాకింగ్" విషయంలో కూడా MikroTik PPP-VPNని ఎలా రక్షించాలో ఈ రోజు నేను మీకు చెప్తాను. ఈ పథకాన్ని నా కస్టమర్‌లలో ఒకరికి పరిచయం చేసినప్పుడు, అతను దానిని క్లుప్తంగా "అలాగే, ఇప్పుడు ఇది బ్యాంకులో లాగానే ఉంది!"

పద్ధతి బాహ్య ప్రమాణీకరణ సేవలను ఉపయోగించదు. విధులు రౌటర్ ద్వారా అంతర్గతంగా నిర్వహించబడతాయి. కనెక్ట్ చేసే క్లయింట్‌కు ఖర్చు లేదు. ఈ పద్ధతి PC క్లయింట్లు మరియు మొబైల్ పరికరాల కోసం పనిచేస్తుంది.

సాధారణ రక్షణ పథకం క్రింది విధంగా ఉంది:

  1. VPN సర్వర్‌కు విజయవంతంగా కనెక్ట్ చేయబడిన వినియోగదారు యొక్క అంతర్గత IP చిరునామా స్వయంచాలకంగా గ్రేలిస్ట్ చేయబడుతుంది.
  2. కనెక్షన్ ఈవెంట్ స్వయంచాలకంగా అందుబాటులో ఉన్న పద్ధతుల్లో ఒకదానిని ఉపయోగించి వినియోగదారుకు పంపబడే వన్-టైమ్ కోడ్‌ను ఉత్పత్తి చేస్తుంది.
  3. ఈ జాబితాలోని చిరునామాలు స్థానిక నెట్‌వర్క్ వనరులకు పరిమిత ప్రాప్యతను కలిగి ఉంటాయి, "ప్రామాణికత" సేవ మినహా, ఇది ఒక-పర్యాయ పాస్‌కోడ్‌ను స్వీకరించడానికి వేచి ఉంది.
  4. కోడ్‌ను ప్రదర్శించిన తర్వాత, వినియోగదారు నెట్‌వర్క్ యొక్క అంతర్గత వనరులకు ప్రాప్యతను కలిగి ఉంటారు.

మొదటిది వినియోగదారునికి 2FA కోడ్‌ని పంపడానికి సంప్రదింపు సమాచారాన్ని నిల్వ చేయడం నేను ఎదుర్కోవాల్సిన అతి చిన్న సమస్య. Mikrotikలోని వినియోగదారులకు అనుగుణంగా ఏకపక్ష డేటా ఫీల్డ్‌లను సృష్టించడం అసాధ్యం కాబట్టి, ఇప్పటికే ఉన్న “వ్యాఖ్య” ఫీల్డ్ ఉపయోగించబడింది:

/ppp రహస్యాలు పేరుని జోడించండి=పెట్రోవ్ పాస్‌వర్డ్=4M@ngr! వ్యాఖ్య="89876543210"

రెండవది సమస్య మరింత తీవ్రంగా మారింది - మార్గం యొక్క ఎంపిక మరియు కోడ్‌ను పంపిణీ చేసే పద్ధతి. ప్రస్తుతం మూడు పథకాలు అమలులో ఉన్నాయి: ఎ) USB-మోడెమ్ ద్వారా SMS b) ఇ-మెయిల్ c) రెడ్ సెల్యులార్ ఆపరేటర్ యొక్క కార్పొరేట్ క్లయింట్‌లకు అందుబాటులో ఉన్న ఇమెయిల్ ద్వారా SMS.

అవును, SMS పథకాలు ఖర్చులను తెస్తాయి. కానీ మీరు చూస్తే, "భద్రత ఎల్లప్పుడూ డబ్బుకు సంబంధించినది" (సి).
ఈ-మెయిల్‌తో కూడిన పథకం నాకు వ్యక్తిగతంగా ఇష్టం లేదు. క్లయింట్ ప్రామాణీకరించబడటానికి మెయిల్ సర్వర్ అందుబాటులో ఉండాల్సిన అవసరం ఉన్నందున కాదు - ట్రాఫిక్‌ను విభజించడం సమస్య కాదు. అయితే, క్లయింట్ నిర్లక్ష్యంగా vpn మరియు ఇమెయిల్ పాస్‌వర్డ్‌లను బ్రౌజర్‌లో సేవ్ చేసి, ఆపై వారి ల్యాప్‌టాప్‌ను పోగొట్టుకున్నట్లయితే, దాడి చేసే వ్యక్తి దాని నుండి కార్పొరేట్ నెట్‌వర్క్‌కు పూర్తి ప్రాప్యతను పొందుతాడు.

కాబట్టి, ఇది నిర్ణయించబడింది - మేము SMS సందేశాలను ఉపయోగించి వన్-టైమ్ కోడ్‌ని బట్వాడా చేస్తాము.

మూడో సమస్య ఎక్కడ ఉంది MikroTikలో 2FA కోసం సూడో-రాండమ్ కోడ్‌ను ఎలా రూపొందించాలి. RouterOS స్క్రిప్టింగ్ భాషలో యాదృచ్ఛిక() ఫంక్షన్ యొక్క అనలాగ్ లేదు మరియు నేను ఇంతకు ముందు అనేక క్రచ్ స్క్రిప్ట్ సూడో-రాండమ్ నంబర్ జనరేటర్‌లను చూశాను. వివిధ కారణాల వల్ల నాకు వాటిలో ఏవీ నచ్చలేదు.

నిజానికి, MikroTik లో ఒక సూడో-రాండమ్ సీక్వెన్స్ జెనరేటర్ ఉంది! ఇది /సర్టిఫికేట్‌ల స్కెప్-సర్వర్ సందర్భంలో ఉపరితలం నుండి దాచబడింది. మొదటి మార్గం వన్-టైమ్ పాస్‌వర్డ్‌ను పొందడం సులభం మరియు సులభం - ఆదేశంతో / సర్టిఫికెట్లు scep-server otp ఉత్పత్తి. మేము ఒక సాధారణ వేరియబుల్ అసైన్‌మెంట్ ఆపరేషన్‌ను చేస్తే, మేము స్క్రిప్ట్‌లలో తర్వాత ఉపయోగించగల అర్రే విలువను పొందుతాము.

రెండవ మార్గం వన్-టైమ్ పాస్‌వర్డ్‌ను పొందడం, ఇది దరఖాస్తు చేయడం కూడా సులభం - బాహ్య సేవను ఉపయోగించడం random.org నకిలీ యాదృచ్ఛిక సంఖ్యల యొక్క కావలసిన రకమైన క్రమాన్ని రూపొందించడానికి. ఇక్కడ ఒక సరళీకృతమైనది కాంటిలివర్డ్ డేటాను వేరియబుల్‌లోకి తీసుకురావడానికి ఉదాహరణ:

కోడ్
: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

కన్సోల్ కోసం ఫార్మాట్ చేయబడిన అభ్యర్థన (స్క్రిప్ట్ బాడీలో ప్రత్యేక అక్షరాలు తప్పించుకోవడం అవసరం) $rnd1 వేరియబుల్‌లోకి ఆరు అంకెల స్ట్రింగ్‌ను అందుకుంటుంది. కింది "put" కమాండ్ మైక్రోటిక్ కన్సోల్‌లో వేరియబుల్‌ను ప్రదర్శిస్తుంది.

నాల్గవ సమస్య ఇది త్వరగా పరిష్కరించబడాలి - ప్రామాణీకరణ యొక్క రెండవ దశలో కనెక్ట్ చేయబడిన క్లయింట్ దాని వన్-టైమ్ కోడ్‌ను ఎలా మరియు ఎక్కడ బదిలీ చేస్తుంది.

MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

MikroTik రౌటర్‌లో తప్పనిసరిగా కోడ్‌ని ఆమోదించే మరియు నిర్దిష్ట క్లయింట్‌తో సరిపోల్చగల సేవ ఉండాలి. అందించిన కోడ్ ఆశించిన దానితో సరిపోలితే, క్లయింట్ యొక్క చిరునామా నిర్దిష్ట "తెలుపు" జాబితాలో చేర్చబడాలి, కంపెనీ అంతర్గత నెట్‌వర్క్‌కు యాక్సెస్ అనుమతించబడే చిరునామాలు.

సేవల యొక్క పేలవమైన ఎంపిక కారణంగా, మైక్రోటిక్‌లో నిర్మించిన వెబ్‌ప్రాక్సీని ఉపయోగించి http ద్వారా కోడ్‌లను ఆమోదించాలని నిర్ణయించారు. మరియు ఫైర్‌వాల్ IP చిరునామాల యొక్క డైనమిక్ జాబితాలతో పని చేయగలదు కాబట్టి, ఇది కోడ్ కోసం శోధనను నిర్వహించే ఫైర్‌వాల్, దానిని క్లయింట్ IPతో సరిపోల్చడం మరియు Layer7 regexpని ఉపయోగించి "వైట్" జాబితాకు జోడించడం. రూటర్‌కు షరతులతో కూడిన DNS పేరు "gw.local" కేటాయించబడింది, PPP క్లయింట్‌లకు జారీ చేయడం కోసం దానిపై స్టాటిక్ A-రికార్డ్ సృష్టించబడింది:

DNS
/ip dns స్టాటిక్ యాడ్ పేరు=gw.local చిరునామా=172.31.1.1

ప్రాక్సీలో ధృవీకరించబడని క్లయింట్‌ల ట్రాఫిక్‌ని సంగ్రహించడం:
/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

ఈ సందర్భంలో, ప్రాక్సీకి రెండు విధులు ఉంటాయి.

1. క్లయింట్‌లతో tcp కనెక్షన్‌లను తెరవండి;

2. విజయవంతమైన ప్రామాణీకరణ విషయంలో, క్లయింట్ బ్రౌజర్‌ని విజయవంతమైన ప్రామాణీకరణ గురించి తెలియజేసే పేజీ లేదా చిత్రానికి దారి మళ్లించండి:

ప్రాక్సీ కాన్ఫిగరేషన్
/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

నేను ముఖ్యమైన కాన్ఫిగరేషన్ అంశాలను జాబితా చేస్తాను:

  1. ఇంటర్‌ఫేస్-జాబితా "2fa" - క్లయింట్ ఇంటర్‌ఫేస్‌ల యొక్క డైనమిక్ జాబితా, దీని నుండి ట్రాఫిక్ 2FA లోపల ప్రాసెసింగ్ అవసరం;
  2. చిరునామా-జాబితా “2fa_jailed” — VPN క్లయింట్ల టన్నెల్ IP చిరునామాల “బూడిద” జాబితా;
  3. address_list "2fa_approved" - రెండు-కారకాల ప్రమాణీకరణను విజయవంతంగా ఆమోదించిన VPN క్లయింట్ల టన్నెల్ IP చిరునామాల "తెలుపు" జాబితా.
  4. ఫైర్‌వాల్ చైన్ "input_2fa" - ఇది అధికార కోడ్ ఉనికి కోసం tcp ప్యాకెట్‌లను తనిఖీ చేస్తుంది మరియు కోడ్ పంపినవారి IP చిరునామాను అవసరమైన దానితో సరిపోల్చుతుంది. గొలుసులోని నియమాలు జోడించబడతాయి మరియు డైనమిక్‌గా తీసివేయబడతాయి.

ప్యాకెట్ ప్రాసెసింగ్ యొక్క సరళీకృత ఫ్లోచార్ట్ ఇలా కనిపిస్తుంది:

MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

రెండవ దశ ప్రమాణీకరణను ఇంకా దాటని "గ్రే" జాబితా నుండి క్లయింట్‌ల నుండి లేయర్ 7 ట్రాఫిక్ తనిఖీని పొందడానికి, ప్రామాణిక "ఇన్‌పుట్" చైన్‌లో ఒక నియమం సృష్టించబడింది:

కోడ్
/ip firewall filter add chain=input !src-address-list=2fa_approved action=jump jump-target=input_2fa

ఇప్పుడు ఈ సంపద మొత్తాన్ని PPP సేవకు చేర్చడం ప్రారంభిద్దాం. MikroTik మిమ్మల్ని ప్రొఫైల్‌లలో (ppp-ప్రొఫైల్) స్క్రిప్ట్‌లను ఉపయోగించడానికి మరియు వాటిని ppp కనెక్షన్‌ని స్థాపించే మరియు విచ్ఛిన్నం చేసే ఈవెంట్‌లకు కేటాయించడానికి మిమ్మల్ని అనుమతిస్తుంది. ppp-ప్రొఫైల్ సెట్టింగ్‌లు మొత్తం PPP సర్వర్‌కు లేదా వ్యక్తిగత వినియోగదారులకు వర్తించవచ్చు. అదే సమయంలో, వినియోగదారుకు కేటాయించిన ప్రొఫైల్ ప్రాధాన్యతను కలిగి ఉంటుంది, మొత్తంగా సర్వర్ కోసం ఎంచుకున్న ప్రొఫైల్ యొక్క పారామితులను దాని పేర్కొన్న పారామితులతో భర్తీ చేస్తుంది.

ఈ విధానం ఫలితంగా, మేము రెండు-కారకాల ప్రామాణీకరణ కోసం ఒక ప్రత్యేక ప్రొఫైల్‌ను సృష్టించవచ్చు మరియు దానిని వినియోగదారులందరికీ కేటాయించకూడదు, కానీ అలా చేయడం అవసరమని భావించే వారికి మాత్రమే కేటాయించవచ్చు. మీరు తుది వినియోగదారులను కనెక్ట్ చేయడానికి మాత్రమే కాకుండా, అదే సమయంలో సైట్-టు-సైట్ కనెక్షన్‌లను రూపొందించడానికి PPP సేవలను ఉపయోగిస్తే ఇది సంబంధితంగా ఉండవచ్చు.

కొత్తగా సృష్టించబడిన ప్రత్యేక ప్రొఫైల్‌లో, మేము చిరునామాలు మరియు ఇంటర్‌ఫేస్‌ల "బూడిద" జాబితాలకు కనెక్ట్ చేయబడిన వినియోగదారు యొక్క చిరునామా మరియు ఇంటర్‌ఫేస్ యొక్క డైనమిక్ జోడింపును ఉపయోగిస్తాము:

విన్‌బాక్స్
MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

కోడ్
/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

dstnat (ప్రీరౌటింగ్) చైన్‌లోని నాన్-సెకండరీ VPN క్లయింట్‌ల నుండి ట్రాఫిక్‌ను గుర్తించడానికి మరియు సంగ్రహించడానికి "చిరునామా-జాబితా" మరియు "ఇంటర్‌ఫేస్-జాబితా" రెండింటినీ ఉపయోగించడం అవసరం.

తయారీ పూర్తయినప్పుడు, అదనపు ఫైర్‌వాల్ గొలుసులు మరియు ప్రొఫైల్ సృష్టించబడినప్పుడు, మేము 2FA కోడ్ మరియు వ్యక్తిగత ఫైర్‌వాల్ నియమాల స్వీయ-ఉత్పత్తికి బాధ్యత వహించే స్క్రిప్ట్‌ను వ్రాస్తాము.

డాక్యుమెంటేషన్ wiki.mikrotik.com PPP-ప్రొఫైల్‌లో PPP క్లయింట్ కనెక్ట్-డిస్‌కనెక్ట్ ఈవెంట్‌లతో అనుబంధించబడిన వేరియబుల్స్ గురించి సమాచారాన్ని మాకు అందిస్తుంది "యూజర్ లాగిన్ ఈవెంట్‌లో స్క్రిప్ట్‌ను అమలు చేయండి. ఇవి ఈవెంట్ స్క్రిప్ట్ కోసం యాక్సెస్ చేయగల అందుబాటులో ఉన్న వేరియబుల్స్: వినియోగదారు, స్థానిక-చిరునామా, రిమోట్-చిరునామా, కాలర్-ఐడి, కాల్-ఐడి, ఇంటర్‌ఫేస్". వాటిలో కొన్ని మనకు బాగా ఉపయోగపడతాయి.

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

ప్రత్యేకించి బుద్ధిహీనంగా కాపీ-పేస్ట్ చేయడానికి ఇష్టపడే వారి కోసం, నేను మిమ్మల్ని హెచ్చరిస్తున్నాను - కోడ్ పరీక్ష వెర్షన్ నుండి తీసుకోబడింది మరియు చిన్న అక్షరదోషాలు ఉండవచ్చు. అర్థం చేసుకునే వ్యక్తికి సరిగ్గా ఎక్కడ గుర్తించడం కష్టం కాదు.

వినియోగదారు డిస్‌కనెక్ట్ చేసినప్పుడు, “ఆన్-డౌన్” ఈవెంట్ రూపొందించబడుతుంది మరియు పారామితులతో సంబంధిత స్క్రిప్ట్ అంటారు. ఈ స్క్రిప్ట్ యొక్క ఉద్దేశ్యం డిస్‌కనెక్ట్ చేయబడిన వినియోగదారు కోసం సృష్టించబడిన ఫైర్‌వాల్ నియమాలను శుభ్రపరచడం.

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]
అప్పుడు మీరు వినియోగదారులను సృష్టించవచ్చు మరియు వారిలో అందరినీ లేదా కొన్నింటిని రెండు-కారకాల ప్రమాణీకరణ ప్రొఫైల్‌కు కేటాయించవచ్చు.

విన్‌బాక్స్
MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

కోడ్
/ppp secrets set [find name=Petrov] profile=2FA

క్లయింట్ వైపు ఇది ఎలా కనిపిస్తుంది.

VPN కనెక్షన్ ఏర్పాటు చేయబడినప్పుడు, SIM కార్డ్‌తో ఉన్న Android/iOS ఫోన్/టాబ్లెట్ ఇలా SMSని అందుకుంటుంది:

SMS
MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

కనెక్షన్ ఫోన్ / టాబ్లెట్ నుండి నేరుగా ఏర్పాటు చేయబడితే, మీరు సందేశం నుండి లింక్‌పై క్లిక్ చేయడం ద్వారా 2FA ద్వారా వెళ్ళవచ్చు. ఇది సౌకర్యంగా ఉంది.

VPN కనెక్షన్ PC నుండి ఏర్పాటు చేయబడితే, వినియోగదారు కనీస పాస్‌వర్డ్ ఫారమ్‌ను నమోదు చేయాల్సి ఉంటుంది. VPNని సెటప్ చేసేటప్పుడు వినియోగదారుకు HTML ఫైల్ రూపంలో ఒక చిన్న రూపం ఇవ్వబడుతుంది. ఫైల్‌ను మెయిల్ ద్వారా కూడా పంపవచ్చు, తద్వారా వినియోగదారు దానిని సేవ్ చేసి అనుకూలమైన ప్రదేశంలో సత్వరమార్గాన్ని సృష్టిస్తారు. ఇది ఇలా కనిపిస్తుంది:

టేబుల్ మీద లేబుల్
MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

వినియోగదారు సత్వరమార్గంపై క్లిక్ చేస్తే, ఒక సాధారణ కోడ్ ఎంట్రీ ఫారమ్ తెరవబడుతుంది, ఇది కోడ్‌ను తెరిచిన URLలో అతికిస్తుంది:

స్క్రీన్ రూపం
MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

అత్యంత ప్రాచీనమైన రూపం ఉదాహరణగా ఇవ్వబడింది. కావలసిన వారు తమను తాము సవరించుకోవచ్చు.

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>

అధికారం విజయవంతమైతే, వినియోగదారు బ్రౌజర్‌లో MikroTik లోగోను చూస్తారు, ఇది విజయవంతమైన ప్రామాణీకరణను సూచిస్తుంది:

MikroTik మరియు SMS ద్వారా VPN వినియోగదారుల యొక్క రెండు-కారకాల ప్రమాణీకరణ

WebProxy నిరాకరణ దారిమార్పును ఉపయోగించి అంతర్నిర్మిత MikroTik వెబ్ సర్వర్ నుండి చిత్రం అందించబడిందని గమనించండి.

చిత్రాన్ని "హాట్‌స్పాట్" సాధనాన్ని ఉపయోగించి అనుకూలీకరించవచ్చు, అక్కడ మీ స్వంత సంస్కరణను అప్‌లోడ్ చేసి, WebProxyతో దానికి మళ్లింపు URLని తిరస్కరించవచ్చు.

చౌకైన "బొమ్మ" Mikrotik ను $20కి కొనుగోలు చేసి దానితో $500 రూటర్‌ని భర్తీ చేయాలని ప్రయత్నిస్తున్న వారికి ఒక పెద్ద అభ్యర్థన - అలా చేయవద్దు. "hAP లైట్" / "hAP మినీ" (హోమ్ యాక్సెస్ పాయింట్) వంటి పరికరాలు చాలా బలహీనమైన CPU (స్మిప్‌లు) కలిగి ఉంటాయి మరియు అవి వ్యాపార విభాగంలోని భారాన్ని తట్టుకోలేవు.

హెచ్చరిక! ఈ పరిష్కారానికి ఒక లోపం ఉంది: క్లయింట్లు కనెక్ట్ అయినప్పుడు లేదా డిస్‌కనెక్ట్ చేసినప్పుడు, కాన్ఫిగరేషన్ మార్పులు సంభవిస్తాయి, రూటర్ దాని అస్థిర మెమరీలో సేవ్ చేయడానికి ప్రయత్నిస్తుంది. పెద్ద సంఖ్యలో క్లయింట్లు మరియు తరచుగా కనెక్షన్‌లు మరియు డిస్‌కనెక్ట్‌లతో, ఇది రూటర్‌లోని అంతర్గత నిల్వ క్షీణతకు దారి తీస్తుంది.

PS: క్లయింట్‌కు కోడ్‌ని బట్వాడా చేసే పద్ధతులు మీ ప్రోగ్రామింగ్ సామర్థ్యాలు సరిపోయేంత వరకు విస్తరించబడతాయి మరియు అనుబంధంగా ఉంటాయి. ఉదాహరణకు, మీరు టెలిగ్రామ్‌కు సందేశాలను పంపవచ్చు లేదా ... ఎంపికలను సూచించండి!

వ్యాసం మీకు ఉపయోగకరంగా ఉంటుందని మరియు చిన్న మరియు మధ్య తరహా వ్యాపారాల నెట్‌వర్క్‌లను మరింత సురక్షితంగా ఉంచడంలో సహాయపడుతుందని నేను ఆశిస్తున్నాను.

మూలం: www.habr.com