Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

ЗдравствуйтС ΠΊΠΎΠ»Π»Π΅Π³ΠΈ! БСгодня, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΊΠ°Π» страстСй Π²ΠΎΠΊΡ€ΡƒΠ³ Β«ΡƒΠ΄Π°Π»Ρ‘Π½ΠΊΠΈΒ» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ спал, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΎΠ² ΠΏΠΎΠ±Π΅Π΄ΠΈΠ»ΠΎ Π·Π°Π΄Π°Ρ‡Ρƒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа сотрудников ΠΊ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ сСти, ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΌΠΎΠ΅ΠΉ Π΄Π°Π²Π½Π΅ΠΉ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ бСзопасности VPN. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄Π½Ρ‹Ρ… Π½Ρ‹Π½Π΅ IPSec IKEv2 ΠΈ xAuth. Π Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ построСнии систСмы Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (2FA) ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN, ΠΊΠΎΠ³Π΄Π° MikroTik выступаСт Π² качСствС VPN-сСрвСра. А ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ «классичСскиС» ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Ρ‚ΠΈΠΏΠ° PPP.

Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

БСгодня я расскаТу ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ MikroTik PPP-VPN Π΄Π°ΠΆΠ΅ Π² случаС Β«ΡƒΠ³ΠΎΠ½Π°Β» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚ΠΊΠΈ. Когда эта схСма Π±Ρ‹Π»Π° Π²Π½Π΅Π΄Ρ€Π΅Π½Π° ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΌΠΎΠΈΡ… Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠ², ΠΎΠ½ ΠΎΡ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π» Π΅Π³ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ Β«Π½Ρƒ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прямо ΠΊΠ°ΠΊ Π² Π±Π°Π½ΠΊΠ΅!Β».

ΠœΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвисов-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². Π—Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ срСдствами самого ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. Π‘Π΅Π· Π·Π°Ρ‚Ρ€Π°Ρ‚ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Бпособ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² PC, Ρ‚Π°ΠΊ ΠΈ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств.

ΠžΠ±Ρ‰Π°Ρ схСма Π·Π°Ρ‰ΠΈΡ‚Ρ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  1. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ IP-адрСс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ ΠΊ Π² VPN-сСрвСру, автоматичСски ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² «сСрый» список.
  2. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСсылаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· доступных способов.
  3. АдрСсам, находящимся Π² этом спискС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ доступ ΠΊ рСсурсам локальной сСти, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ сСрвиса Β«Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Β», ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°-пароля.
  4. ПослС ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ открываСтся доступ ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ рСсурсам сСти.

ΠŸΠ΅Ρ€Π²Π°Ρ самая малСнькая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ, это Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ для пСрСсылки Π΅ΠΌΡƒ ΠΊΠΎΠ΄Π° 2FA. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π² ΠΌΠΈΠΊΡ€ΠΎΡ‚ΠΈΠΊΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСльзя, Π±Ρ‹Π»ΠΎ использовано ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»Π΅ Β«commentΒ»:

/ppp secrets add name=Petrov password=4M@ngr! comment=Β«89876543210Β»

Вторая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° оказалась ΠΏΠΎΡΠ΅Ρ€ΡŒΡ‘Π·Π½Π΅Π΅ β€” Π²Ρ‹Π±ΠΎΡ€ ΠΏΡƒΡ‚ΠΈ ΠΈ способа доставки ΠΊΠΎΠ΄Π°. Π’ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Ρ€ΠΈ схСмы: Π°) SMS Ρ‡Π΅Ρ€Π΅Π· USB-ΠΌΠΎΠ΄Π΅ΠΌ Π±) e-mail Π²) SMS via e-mail доступный для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² красного сотового ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π”Π°, схСмы с SMS приносят Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹. Но Ссли Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ это всСгда ΠΏΡ€ΠΎ дСньги» (с).
Π‘Ρ…Π΅ΠΌΠ° с e-mail Π»ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ Π½Π΅ нравится. НС ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ доступности ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ сСрвСра для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° β€” это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Однако, Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚ бСспСчно сохранял ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π½Π° ΠΈ Π½Π° vpn ΠΈ Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ потСрял свой Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ, Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ с Π½Π΅Π³ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ сСти.

Π˜Ρ‚Π°ΠΊ, Ρ€Π΅ΡˆΠ΅Π½ΠΎ β€” доставляСм ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ SMS-сообщСний.

Π’Ρ€Π΅Ρ‚ΡŒΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° Π² Ρ‚ΠΎΠΌ, Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ Π² MikroTik ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ псСвдослучайный ΠΊΠΎΠ΄ для 2FA. Π’ скриптовом языкС RouterOS Π½Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ random() ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅ я Π²ΠΈΠ΄Π΅Π» нСсколько ΠΊΠΎΡΡ‚Ρ‹Π»ΡŒΠ½Ρ‹Ρ… скриптовых Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² псСвдослучайных чисСл. Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΌΠ½Π΅ Π½Π΅ понравился ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ.

На самом Π΄Π΅Π»Π΅, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ псСвдослучайных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π² MikroTik Π•Π‘Π’Π¬! ΠŸΡ€ΠΈΠΏΡ€ΡΡ‚Π°Π½ ΠΎΠ½ ΠΎΡ‚ повСрхностного взгляда Π² контСкстС /certificates scep-server. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π»Π΅Π³ΠΎΠΊ ΠΈ прост β€” ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ /certificates scep-server otp generate. Если Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ присвоСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° array, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² дальнСйшСм Π² скриптах.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ получСния ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ пароля ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ β€” использованиС внСшнСго сСрвиса 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.

ЧСтвСртая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ β€” это ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ ΠΊΡƒΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ свой ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ стадии Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

На Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π΅ MikroTik Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ слуТба способная ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. ΠŸΡ€ΠΈ совпадСнии прСдоставлСнного ΠΊΠΎΠ΄Π° с ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ адрСс ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π½Π΅ΠΊΠΈΠΉ Β«Π±Π΅Π»Ρ‹ΠΉΒ» список, адрСсам ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ доступ ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ сСти ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Π’Π²ΠΈΠ΄Ρƒ Π½Π΅Π±ΠΎΠ³Π°Ρ‚ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° слуТб, Π±Ρ‹Π»ΠΎ принято Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄Ρ‹ ΠΏΠΎ http ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ встроСнного Π² ΠΌΠΈΠΊΡ€ΠΎΡ‚ΠΈΠΊ webproxy. А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„Π°Π΅Ρ€Π²ΠΎΠ» ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с динамичСскими списками IP-адрСсов, Ρ‚ΠΎ поиск ΠΊΠΎΠ΄Π°, сопоставлСниС Π΅Π³ΠΎ с клиСнтским IP ΠΈ внСсСниС Π² Β«Π±Π΅Π»Ρ‹ΠΉΒ» список выполняСт ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„Π°Π΅Ρ€Π²ΠΎΠ» посрСдством Layer7 regexp. Π‘Π°ΠΌΠΎΠΌΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ присвоСно условноС DNS-имя Β«gw.localΒ», Π½Π° Π½Π΅ΠΌ создана статичСская А-запись для Π²Ρ‹Π΄Π°Ρ‡ΠΈ PPP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ:

DNS
/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. Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ клиСнтский Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π° страничку ΠΈΠ»ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΈΠ·Π²Π΅Ρ‰Π°ΡŽΡ‰ΡƒΡŽ ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

Proxy config
/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. interface-list Β«2faΒ» β€” динамичСский список клиСнтских интСрфСйсов, Ρ‚Ρ€Π°Ρ„ΠΈΠΊ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… 2FA;
  2. address-list Β«2fa_jailedΒ» β€” «сСрый» список Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒΠ½Ρ‹Ρ… IP-адрСсов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² VPN;
  3. address_list Β«2fa_approvedΒ» β€” Β«Π±Π΅Π»Ρ‹ΠΉΒ» список Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒΠ½Ρ‹Ρ… IP-адрСсов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² VPN, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ.
  4. Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Ρ„Π°Π΅Ρ€Π²ΠΎΠ»Π° Β«input_2faΒ» β€” Π² Π½Π΅ΠΉ происходит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° tcp-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ совпадСниС IP-адрСса отправитСля ΠΊΠΎΠ΄Π° с Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ. ΠŸΡ€Π°Π²ΠΈΠ»Π° Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ динамичСски.

УпрощСнная Π±Π»ΠΎΠΊ-схСма ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° выглядит Ρ‚Π°ΠΊ:

Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

Для попадания Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΏΠΎ Layer7 Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· «сСрого» списка Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… Π²Ρ‚ΠΎΡ€ΠΎΠΉ этап Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π² стандартной Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Β«inputΒ» создано ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ всё это богатство ΠΊ сСрвису PPP. MikroTik позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипты Π² профилях (ppp-profile) ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° события установки ΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²Π° ppp-соСдинСния. Настройки ppp-profile ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ для PPP-сСрвСра Π² Ρ†Π΅Π»ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠŸΡ€ΠΈ этом Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ profile ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ пСрСкрывая своими Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ profile Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ для сСрвСра Π² Ρ†Π΅Π»ΠΎΠΌ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ для Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ считаСм Π½ΡƒΠΆΠ½Ρ‹ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² случаС Ссли слуТбы PPP Ρƒ вас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ для построСния site-to-site соСдинСний.

Π’ΠΎ вновь созданном ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ динамичСскоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ адрСса ΠΈ интСрфСйса ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² «сСрыС» списки адрСсов ΠΈ интСрфСйсов:

winbox
Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

Код
/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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ совмСстно списки Β«address-listΒ» ΠΈ Β«interface-listΒ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΎΡ‚ Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΡƒΡŽ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ VPN-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ dstnat (prerouting).

Когда ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Ρ„Π°Π΅Ρ€Π²ΠΎΠ»Π° ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ созданы, напишСм скрипт ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π°Π²Ρ‚ΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π° 2FA ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» Ρ„Π°Π΅Ρ€Π²ΠΎΠ»Π°.

ДокумСнтация wiki.mikrotik.com Π½Π° PPP-Profile ΠΎΠ±ΠΎΠ³Π°Ρ‰Π°Π΅Ρ‚ нас ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, связанных с событиями ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ-ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ PPP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Β«Execute script on user login-event. These are available variables that are accessible for the event script: user, local-address, remote-address, caller-id, called-id, interfaceΒ». НСкоторыС ΠΈΠ· Π½ΠΈΡ… Π½Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ пригодятся.

Код, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ для события ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ PPP on-up

#Π›ΠΎΠ³ΠΈΡ€ΡƒΠ΅ΠΌ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ 
: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

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ Π±Π΅Π·Π΄ΡƒΠΌΠ½ΠΎ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽ β€” ΠΊΠΎΠ΄ взят с тСстовой вСрсии ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ очСпятки. Π Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Ρ‚Ρ€ΡƒΠ΄Π° Π½Π΅ составит.

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ гСнСрируСтся событиС Β«On-DownΒ» ΠΈ вызываСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ скрипт с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π—Π°Π΄Π°Ρ‡Π° этого скрипта β€” ΠΏΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π·Π° собой ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ„Π°Π΅Ρ€Π²ΠΎΠ»Π°, созданныС для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Код, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ для события ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ PPP on-down

: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]
ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ всСм ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ с Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ.

winbox
Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

Код
/ppp secrets set [find name=Petrov] profile=2FA

Как это выглядит Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠŸΡ€ΠΈ установкС VPN-соСдинСния, Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½/ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄/iOS с сим-ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ SMS ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°:

SMSΠΊΠ°
Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

Если соСдинСниС установлСно нСпосрСдствСнно с Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°/ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ 2FA просто ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² ΠΏΠΎ ссылкС ΠΈΠ· сообщСния. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Если VPN-соСдинСниС устанавливаСтся с PC, Ρ‚ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ потрСбуСтся минимальная Ρ„ΠΎΡ€ΠΌΠ° Π²Π²ΠΎΠ΄Π° пароля. НСбольшая Ρ„ΠΎΡ€ΠΌΠ° Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π° HTML пСрСдаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΈ настройкС VPN. Π€Π°ΠΉΠ»ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΠΎ ΠΏΠΎΡ‡Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сохранил Π΅Π³ΠΎ Ρƒ сСбя ΠΈ создал ярлык Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ мСстС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ это выглядит:

Π―Ρ€Π»Ρ‹ΠΊ Π½Π° столС
Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Ρ‘Π»ΠΊΠ°Π΅Ρ‚ ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΏΠΎ ярлыку, открываСтся простая Ρ„ΠΎΡ€ΠΌΠ° Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠ΄Π°, которая вставит ΠΊΠΎΠ΄ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ URL:

Π‘ΠΊΡ€ΠΈΠ½ Ρ„ΠΎΡ€ΠΌΡ‹
Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

Π€ΠΎΡ€ΠΌΠ° самая примитивная, Π΄Π°Π½Π° для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. Π–Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ сСбя.

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, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ сигналом ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

Двухфакторная аутСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ VPN посрСдством MikroTik ΠΈ SMS

Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° возвращаСтся ΠΈΠ· встроСнного web-сСрвСра MikroTik с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WebProxy Deny Redirect.

Полагаю, ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΡΡ‚ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнт Β«hotspotΒ», Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ² Ρ‚ΡƒΠ΄Π° свой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈ Π·Π°Π΄Π°Π² Π½Π° Π½Π΅Π³ΠΎ Deny Redirect URL с WebProxy.

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ ΠΏΡ€ΠΎΡΡŒΠ±Π° ΠΊ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ пытаСтся ΠΊΡƒΠΏΠΈΠ² самый Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ Β«ΠΈΠ³Ρ€ΡƒΡˆΠ΅Ρ‡Π½Ρ‹ΠΉΒ» ΠΌΠΈΠΊΡ€ΠΎΡ‚ΠΈΠΊ Π·Π° $20, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π·Π° $500 β€” Π½Π΅ Π½Π°Π΄ΠΎ Ρ‚Π°ΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ. Устройства Ρ‚ΠΈΠΏΠ° Β«hAP LiteΒ»/Β«hAP miniΒ» (home access point) ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ слабый CPU(smips), ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ вСроятно Π½Π΅ справятся с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π² бизнСс-сСгмСнтС.

Warning! Π£ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ минус: ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ-ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² происходят измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ пытаСтся ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² своСй энСргонСзависимой памяти. ΠŸΡ€ΠΈ большом количСствС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ частых ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ…-ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ…, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ накопитСля Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅.

P.S.: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доставки ΠΊΠΎΠ΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Ρ‹ насколько Ρ…Π²Π°Ρ‚ΠΈΡ‚ Π²Π°ΡˆΠΈΡ… возмоТностСй Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния Π² telegram или… ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΉΡ‚Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹!

НадСюсь ΡΡ‚Π°Ρ‚ΡŒΡ окаТСтся Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сСти ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΈ срСднСго бизнСса Π΅Ρ‰Π΅ Ρ‡ΡƒΡ‚ΡŒ бСзопаснСС.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com