á°áá á£áá°ášáŠáœ! áá¬á£ á "ášáááµ áµá«" ááªá« á«áá ášáµáá³áááµ á¥áá«á¬ áµáᜠá²áááµá£ á á¥ááá á áµá°á³á³áªáᜠášá°á«á°ááœá ášáááµ áá³ášá» áá° á®ááá¬áµ á áá³ášáášá¥ ášááááµ á°áá£á á ážááááᣠᚠVPN á°á
áááµá á áá»á»á ášášá
á áá áááŽá ášáá«ááá áµ áá ááᢠáá
áá£á¥á á áá ááœá á áááá IPSec IKEv2 á¥á xAuthᢠáµáááµ áµááááá£áµ ááá¢
áᬠMikroTik PPP-VPN ášá°á áá ááá«á "ášá°á áá" á¢ááá á¥ááŽáµ á¥áá°áá á¥á
á¥ááááá³ááᢠáá
á¥á
áµ ášá°áá áጠášá áá± áá á²á°ááááᣠâá°á
áᣠá áá áá á á£áá ááµá¥ áá!â á áááµ áááŸá³áá¢
ááŽá ášáá á ášááá á ááááá¶áœá á áá ááá. á°áá£á®á¹ ášáášááááµ á á«áá°á á á«á± áá. ááááááµ á°áá á ááá á᪠ášááᢠááŽá áááá±á áá² á°áá áᜠá¥á á°ááá³áᜠáá³áªá«áᜠáá°á«á.
á á ááá ášáášáášá« ááŽá á¥áá°áášá°áá áá-
- á á°á³á« ááá³ ášáªáá€á á áááá áá ášá°ááá á°á áá ášááµá¥ á áá á áµá«á» á á«áµ-á°á áá«á« áááᥠááµá¥ ááá£áá¢
- ášáááááµ ááµá°á± á«ááµ ááŽáᜠá áá±á á áá áá áá°á ááá ášááá ášá ááµ áá á®áµ á á«áµ-á°á á«ááá«áá¢
- á áá áááá ááµá¥ á«á á áµá«á»áᜠášá ááµ áá ášááá á®áµ áááá á ášáá á¥áá "á ášááá" á áááááµ á áµá°áá áá á«á£á¢á«á á áá³ášáášá¥ áá¥á¶áœ ášá°áá°á áá³ášá» á áážá.
- á®á±á á«áášá á áá á°á ááá ášá áá³áš áášá¡ ááµá£á áá¥á¶áœá ááááµ ááœááá¢
ášááááªá«á á«áá áá áµáá¹ áœáá ášá°á áááá áš 2FA á®áµ áááá ášá¥ááá« áášá áášáážáµ áá áᢠá ááá®á²á ááµá¥ ášá°á áááᜠáá ášáááá± ášáááá° ášáášá ááµá®áœá ááá á ášááá»á á ááá áá£á© âá áµá°á«ášáµâ ááµá á¥á á áá ááá
/ppp ááµá¥á®áœ áµá á«áá = ááµá®á ášááá áá=4M@ngr! á áµá°á«ášáµ="89876543210"
ááá°áá áœáá© ášá áá ášá£áµ áá - ášáááá±á ááá« á¥á á®á±á ášááµášáµ ááŽá¢ á¶áµáµ ááááá¥á®áœ á á áá áá á°áá£á«á áážá á) á€áµá€áá€áµ á á©á€áµá¢-áá°á á) á¢-áá á) á€áµá€áá€áµ á á¢áá ááá áŽááá áŠáá¬á°á á®ááá¬áµ á°áá áᜠááááá¢
á áᣠášá€áµá€áá€áµ á¥á
á¶áœ ááªááœá á«áá£á. ááá áá ášá°ááášá±, "á°á
áááµ áááá áµá áááᥠáá" (á).
á¥á á áá á¢-áá á«ááá á¥á
áµ á ááá°ááᢠášááá¥ááµ á áááá© áá°áá áá á¥áá²ášááᥠáµááá«áµáááá á áá°áá - ášáµá«áá áášááá áœáá á áá°ááᢠááá ááᣠá ááµ á°áá á á ááŽááœááµ ááá±áá áªáá€á á¥á á¢áá ášááá áááœá á á á³á¹ ááµá¥ á«áµááá á¥á ááá¶á ášá á á á¥áá ášá®ááá¬áµ ááµáááá áá á áá ááááµ ááœááá¢
áµááá , á°ááµáá - ášá€áµá€áá€áµ ááááá¶áœá á áá áá ášá ááµ áá á®áµ á¥áá°áá³áá.
áŠáµá°áá áœáá© ášáµ áá á ááá®á²á ááµá¥ á2FA ášáážáµ-ášáááá° á®áµ á¥ááŽáµ áááášáµ á¥áá°áá»á. á RouterOS áµááªááµ ááá ááµá¥ ášáááá°() á°áá£á á ááá ášááᣠá¥á ášáá á ááµ á áá«á³ ášáá«áᜠáµááªááµ ášáážáµ-ášáááá° áá¥á áááá«ááœá á áá»ááᢠá áá³ážááá á á°áá«á© áááá«á¶áœ á ááá°áµá³ážááá¢
á á¥ááá±á£ á ááá®á²á ááµá¥ ášáážáµ-ášáááá° á°ášá³á³á ááá¬á°á á á! á /á°áá°áá¬á¶áœ sep-server á ááµ ááµá¥ ášáá«á á¥áá³ á°á°á¥ááᢠášááááªá«á ááááµ ášá ááµ áá ášááá áá ááááµ ááá á¥á ááá áá - á áµá¥áá / ášááµáá áášáá¶áœ sep-server otp á«ááá«á. ááá á°áááá ášáá°á£ ááá ášá á«áᣠá áá á áµááªáá¶áœ ááµá¥ á¥á á áá ááá ášááœá ášáµááµá á¥áŽáµ á¥áááááá¢
ááá°áá ááááµ ášá ááµ áá ášááá áá ááááµ áá
á á¥áá²á ááá áá ááá áá - áá«á á áááááµá á áá áá
á®áµ
: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 á°áááá ááµá¥ á£á áµáµáµáµ á áá áá¥ášááá ááá ááᢠášáášá°áá "á áµááá¥" áµááá á ááá á ááá®á²á á®áá¶á ááµá¥ á«ááá á°áááá á«á³á«á.
á á«á°áá áœáá á áá¥ááµ ááá³áµ ášáá ášá áµ - áá ášá°áááá á°áá á á ááá°áá ášáášááá« á°ášá áá ášá ááµ áá á®áµ á¥ááŽáµ á¥á ášáµ á¥áá°áá«áµá°ááá ááá¢
á ááá®á²á á«áá°á áá á®á±á á°áá¥á ášá°áá°á á°áá á áá ášááááµ á áááááµ ááá á áá áµá¢ ášáášá á á®áµ ášá°á á áá áá ášááááµ ášáá, ášá°áá áá á áµá«á» á á°áá°á "áá" áááá ááµá¥ áá«á°áµ á áá áµ, á áµá«á»áᜠášá©á£áá«á ááµá£á á áá³ášáášá¥ á¥áá²áá¡ ááááµáážáá.
á á ááááá¶á¹ á°á«á ááá« áááá«áµ áá° ááá®á²á ášá°á°á«áá áᥠáá®áá² á áá áá á http á á©á á®á¶áœá áááá á á°ááµááᢠá¥á áášááá ášá°áááá ášá áá á áµá«á»áᜠáááá®áœ áá áá°á« áµáááœá ášá®á±á ááá ášáá«ášáááá áášááá áá, ášá°áá áá á áá áá á ááááµ á¥á Layer7 regexp á áá áá áá° "áá" áááá ááµá¥ áášáá«á. á«áá°á© á«á± ááá³á ášá² á€á á€áµ áµá "gw.local" á°á°á¥á·áᣠá áá© áá áPPP á°áá áᜠášáá°á¥ ášááááá³ááµ A-áááᥠá°áá¥á¯áá¡-
á² á€á á€áµ
/IP dns static add name=gw.local address=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
á áµááááá¹á ášáá á á á«ááµ á¥áášáá«ááá¡-
- á ááááœ-áááá "2fa" - á°áááá ášá°áá á á ááááŸáœ áááá, á 2FA ááµá¥ áá°áµá ášáááá áµá«áá;
- ášá áµá«á» áááá "2fa_jailed" - "áá«á«" ášáªáá€á á°áá áᜠáá» IP á áµá«á»áᜠáááá;
- address_list "2fa_approved" - "áá" á£á áááµ á°ášá áášááá« á á°á³á« ááá³ á«áá ášáªáá€á á°áá áᜠáá» IP á áµá«á»áᜠááááá¢
- ášáášááá á°áá°ááµ "input_2fa" - ášáááµ á®áµ ááá©á áš tcp áá¬ááœá áááµá»á á¥á ášá®áµ ááªáá ášá áá á áµá«á» ášááááá áá á«ááá³áᢠá á°áá°áá± ááµá¥ á«ááµ á°ááŠáœ á á°ááááááµ á°ášáášáá á¥á áááá³á.
ááá á«á ášáá¬áµ áááá£á áªá« áá á³ áá á áááµááá¢
ááá°ááá ášáášááá« á°ášá á«ááááµ áš "áá«á«" áááá ááµá¥ ášá°áá áᜠáá° Layer7 ášáµá«áá áá°á» áááá£áµ á áá°á á áš "áá€áµ" á°áá°ááµ ááµá¥ á°áᥠá°áá¥á¯á á¢
á®áµ
/ip firewall filter add chain=input !src-address-list=2fa_approved action=jump jump-target=input_2fa
á áá áá áá áá áá¥áµ ášááá á áááááµ áá áá«á«á á¥ááááᢠMikroTik áµááªáá¶áœá á áá®áááᜠ(ppp-profile) á¥áá²á áá á¥á ášppp áááááµá ááááµášáµ á¥á áááášáµ ááµá°á¶áœ á¥áá²ááµá¡ ááá áµááá³áᢠášppp-áááá« á áá á¶áœ á á á ááá á á.á.á á áááá ááá á ááá°á¥ á°á áááᜠáá áá°áá á© ááœááᢠá á°áá³á³á áá, áá°á ááá ášá°áá°á á áááá« á áµáá« á áá, áá áááá© á á á ááá ášá°áášá áá ášáááá« áááªá«áᜠá á°ááá¹áµ áááááᜠááœá«á.
á áá á áá«ášá¥ áááá«áµ, ááááµ-á°ášá áášááá« áá© áááá« ááá á á¥á áááá á°á áááᜠááá°á¥ á¥ááœááá, ááá áá áá á ááµášá á áµááá á¥áá°áá áááá¥á©áµ á¥á» áá. ášáášášá» á°á ááááœá ááááááµ á¥á» á³ááá á á°áá³á³á áá ášá£á¢á«-áá°-á£á¢á« ááááá¶áœá ááááá£áµ ášPPP á ááááá¶áœá ášá°á áá áá á áá ááá ááœááá¢
á á²áµ á á°áá ášá áá© áááá« ááµá¥ ášá áµá«á»áá á¥á ášá°ááááá á°á áá á áááᜠáá° "áá«á«" ášá áµá«á» áááá®áœ á¥á á ááááŸáœ á°áááá áášááá á¥áá áááá-
á®áµ
/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 (prerouting) á°áá°ááµ ááµá¥ á«ááá áµá«áá áááá á¥á ááá«á ááá±áá "á áµá«á»-áááá" á¥á "á áááᜠáááá" áááá®áœá áá áá á«áµááááá¢
ááá á± á²á ááá , á°ášá᪠ášáášááá á°áá°áá¶áœ á¥á áááá«áᜠááá á«á, áš 2FA á®áµ á¥á ášááá°á¥ áášááá á°ááŠáœá á á«áµ-á°á ááááášáµ áááááµ á«áá áµááªááµ á¥ááœááá.
áááá áááááµ ááµá°áµ áááá« ááµá¥ á¥á á áá ášáá á®áµ
#ÐПгОÑÑеЌ ÐŽÐ»Ñ ÐŸÑлаЎкО пПлÑÑеММÑе пеÑеЌеММÑе :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
á á°áá á³á«áµá¡áµ á®á ááá á áááá±á£ á áµá áá ááœááá - á®á± ášáášá«á áµáªáµ ášá°áá°á° á¥á á¥áá á áµá á°á¶áœá ááá ááœááᢠá áµá°áá á°á ášáµ á¥áá°áá á áµááá áááá á áµážá᪠á ááááá¢á°á ááá á²áášá¥ "á á³áœ" ááµá°áµ ááá á«á á¥á áá€á¶áœ á«áá á°ááá áµááªááµ áá£áá. ášáá áµááªááµ á áá áá°áášá á á°á áá ášá°áá ášáá ášáášááá á áá ááœá³áµ ááá¢
áááá áááá áááááµ ááµá°áµ á áááá« ááµá¥ á¥á á áá ášáá á®áµ
: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]
ášáá« á°á ááááœá ááá á á¥á áááá ááá ášá°áá°ááµá áá° á£á áááµ á°ášá ášáášááá« áááá« ááá°á¥ ááœááá¢áááŠááµ
á®áµ
/ppp secrets set [find name=Petrov] profile=2FA
á á°áá áá á á©á á¥ááŽáµ á¥áá°áá³áá¢
ášáªáá€á áááááµ á²áá á á ááµá®ááµ/á ááŠá€áµ áµáá/á³á¥ááµ á²á á«ááµ á«áá á€áµá€áá€áµ ááá ááá¢
á€áµá€áá€áµ
ááááá± á áá¥á³ ášáµáá/á³á¥áá± ášá°ááá ášáá ášááá¥áá± ášááááá ááá á áá«á á ááá á 2FA ááá ááœááᢠáá¹ ááá¢
ášáªáá€á ááááá± ášáá² ášá°ááá ášáá á°á ááá á ááµá°á ášááá áá á ᜠá¥áá²á«áµáᣠáá ášááᢠáªáá€á á²á«ááá¥á áµáᜠá ᜠá á€áœá²á€áá€á ááá ááá áá°á ááá áá°á£áᢠááá á°á ááá á¥áá²á«áµááá á á¥á áá¹ á áá áŠá³ áá á áá«á ááááµ á¥áá²áá¥á á ááµá³ á¥áá³á ááá ááœááᢠáá á áááµááá¢
á á ášáŽáá áá ááááµ á«áµáá
á°á ááá á áá«á© áá á á á«á°áááᣠááá ášá®áµ áá€áµ á ᜠáášáá³áᣠá¥á±á á®á±á á á°ášáá°á á©á áá€á ááµá¥ ááá¥ááá¡
ášáá« áᜠá áœ
á á£á á¥áá³áá á ᜠá¥áá° áá³á á°á°á¥á·á. ášáááá áá áá«á³ážá áááᥠááœááá¢
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 á áá á á á³á¹ ááµá¥ á«á«áᣠáá á ášá°á³á« áášááá«á á«áááá³áá¡
ááµá á WebProxy Deny Redirect á áá áá á á¥á® ášá°á°á«á ášááá®á²á áᥠá áááá ášá°ááá° áááá áᥠáá áá¢
ááµá áš"ááµáµááµ" áá³áªá«á á áá ááᣠášá¥á«áµáá á¥áµá á¥áá« áá á ááµáá á¥á áš Deny Redirect URLá á WebProxy á áááá á ááµá°á«ášá ášááœá áááµáááá¢
á á£á áá«á¹á "á á»ááááµ" ááá®á²áá á 20 á¶áá áááááµ á¥á áš 500 á¶áá á«áá°áá á á¥á± ááá°á«áµ ááááá© á°áᜠáµáá á¥á«á - á«áá á á³áµáá. á¥áá° "hAP Lite" / "hAP mini" (ášá€áµ áá³ášá» áá¥á¥) á«á áá³áªá«áᜠá á£á á°á«á á²áá© (áµáááµ) á áážá, á¥á áááá£áµ á áááµ ááá ááµá¥ á«ááá ážáá áááá á ááœáá.
ááµá áááá«! áá áááµá á ááµ áá³áµ á áá: á°áá áᜠá²ááá ááá á²á«ááá¡ ášáá ášáµ áááŠáœ áášá°á³á, áá á á«áá°á á áááááᥠáá á°áš áµááµá³á ááµá¥ áááµááᥠáááá«á. á¥á áá¥á á«áážá á°áá áᜠá¥á á°á°ááá ááááá¶áœ á¥á ááááá¶áœ áá á á«áá°á ááµá¥ á«ááá ášááµá¥ áášáá» áá áážáµ áá«áµášáµá ááœáá.
PS: á®áµ áá°áá áá ášááµášáµ ááŽáᜠášáá®áá«á áœáá³ááœá á á á¥áµášáá áµášáµ áá°á á¥á áášáá© ááœááᢠááá³áᣠáá° áŽááá«á ááá¥ááµ ááá ááá ... á áá«á®áœá áá áá áµáœááá !
áœáá áá¥ááµá á áá á¥áá°ááá á°áµá á á°áááá á¥á ášá ááµá°á á¥á áá«ášáá áá á á«áážá ááá¶áœá á áá³áš áášáŠáœ áµáᜠášá áá á áµá°ááá áááµášá áášá³á.
ááá: hab.com