Integracje · MikroTik
MikroTik 2FA: zatwierdzanie na telefonie dla VPN i logowań do routera
Dla zespołów, w których router MikroTik pełni rolę bramy VPN lub brzegu sieci. Każde połączenie VPN i każde logowanie administratora jest zatwierdzane jednym dotknięciem w Notakey Authenticator, a wystarczy do tego router, który już Państwo mają.
Jak przebiega połączenie
Dwie drogi wejścia, jedna aplikacja na telefonie
W przypadku VPN całą pracę wykonuje skrypt RouterOS. Użytkownik łączy się jak zwykle nazwą użytkownika i hasłem, ale firewall blokuje jego ruch, dopóki skrypt up z profilu PPP nie poprosi serwera Notakey o zatwierdzenie, a użytkownik nie dotknie Approve na telefonie. Odrzucenie lub brak reakcji powoduje, że skrypt zrywa sesję. W tym wariancie nie ma serwera RADIUS ani auth-proxy; skrypty pochodzą z repozytorium notakey/mikrotik-2fa-vpn i działają w RouterOS 6.46.4 lub nowszym, także w wersji 7.x.
W przypadku logowań do samego routera (WinBox, WebFig, SSH i API) router kieruje usługę login do RADIUS, a Notakey auth-proxy stoi przezroczyście na tej ścieżce RADIUS. Proxy przekazuje sprawdzenie hasła do Państwa serwera RADIUS (FreeRADIUS, Microsoft NPS, własnego User Managera MikroTika lub wtyczki RADIUS od Notakey), wysyła prośbę o zatwierdzenie na telefon administratora i odpowiada Access-Accept dopiero wtedy, gdy powiodą się oba kroki.
W obu wariantach użytkownicy VPN, ich hasła i konfiguracja routera, na której Państwo polegają, pozostają bez zmian. Zmienia się tylko jedno: samo hasło przestaje wystarczać do zalogowania.
Co warto wiedzieć przed rozpoczęciem
- Skryptowy wariant dla VPN obejmuje sieci VPN oparte na PPP (L2TP/IPsec, PPTP, SSTP). Limit czasu na zatwierdzenie w skrypcie wynosi 60 sekund.
- Domyślny limit czasu RADIUS w MikroTiku to 300 milisekund. Przy logowaniu do routera przez RADIUS należy ustawić timeout=30s, inaczej każde logowanie zakończy się niepowodzeniem, zanim telefon zawibruje.
- Należy zachować lokalne konto administratora. RouterOS najpierw sprawdza lokalną bazę użytkowników i pyta RADIUS tylko o nieznane nazwy, więc to konto jest Państwa drogą powrotu, gdyby proxy, RADIUS lub usługa Notakey okazały się niedostępne.
- Administratorzy uwierzytelniani przez RADIUS otrzymują uprawnienia wybranej default-group, chyba że serwer RADIUS zwraca dla każdego użytkownika atrybut Mikrotik-Group. Warto wybrać najniższe uprawnienia, które wystarczą.
- Jeśli telefon zatwierdzający żądanie jest jednocześnie klientem VPN, należy dodać regułę accept, aby oczekujący klienci mogli połączyć się z serwerem Notakey, podczas gdy reszta ruchu pozostaje zablokowana.
- Parser JSON w skrypcie nie radzi sobie z nawiasami i być może innymi znakami specjalnymi w treści prośby o zatwierdzenie. Tekst wiadomości powinien być prosty.
- Wariant ze skryptami to najszybsza droga dla pojedynczego routera. Przy wielu routerach, VPN innych producentów lub centralnej polityce lepiej sprawdzi się konfiguracja oparta na RADIUS.
Od zera do pierwszego zatwierdzenia
- 01
Utworzenie aplikacji w Notakey
W panelu Notakey należy utworzyć aplikację dla VPN lub routera, skopiować jej Access ID i zarejestrować telefony użytkowników w Notakey Authenticator. Nazwa użytkownika w Notakey musi dokładnie odpowiadać nazwie na routerze, ponieważ żądanie jest adresowane właśnie nazwą użytkownika.
- 02
Instalacja skryptów lub dodanie proxy jako serwera RADIUS
Dla VPN należy wkleić biblioteki JParseFunctions i NotakeyFunctions w System → Scripts, podpiąć skrypt up do profilu PPP, który umieszcza nowe sesje na liście adresów vpn_pending, i dodać regułę firewalla odrzucającą ruch z tej listy. Dla logowania do routera należy dodać auth-proxy w /radius z service=login i timeout=30s, a następnie włączyć use-radius w /user aaa.
- 03
Test na jednym użytkowniku, potem wdrożenie
Należy przypisać jeden PPP secret do profilu 2FA albo otworzyć drugą sesję WinBox z nazwą użytkownika z RADIUS i zatwierdzić powiadomienie push. Gdy wszystko działa, wystarczy ustawić profil 2FA jako domyślny profil serwera PPP, aby objąć wszystkich użytkowników bez edytowania każdego secretu z osobna.
Najczęściej zadawane pytania
- Czy 2FA dla VPN w MikroTiku wymaga serwera RADIUS?
- Nie. W przypadku VPN opartych na PPP (L2TP/IPsec, PPTP, SSTP) skrypt RouterOS prosi serwer Notakey o zatwierdzenie, a firewall wstrzymuje sesję, dopóki użytkownik nie dotknie Approve. RADIUS jest potrzebny tylko do logowań do routera (WinBox, WebFig, SSH) albo wtedy, gdy wiele routerów lub urządzenia innych producentów mają korzystać z jednej polityki.
- Które wersje RouterOS są obsługiwane?
- Skrypty z repozytorium notakey/mikrotik-2fa-vpn działają w RouterOS 6.46.4 lub nowszym, także w wersji 7.x.
- Dlaczego logowania przez RADIUS kończą się niepowodzeniem, zanim telefon zawibruje?
- Domyślny limit czasu RADIUS w MikroTiku wynosi 300 milisekund. Należy ustawić timeout=30s we wpisie /radius, aby router czekał na zatwierdzenie, zamiast od razu rezygnować.