RouterOS może dotrzeć do NPS z logowaniem OpenVPN i mimo to zostać odrzucony, a zwykłą przyczyną są dwa ustawienia, których nazwy oba brzmią jak uwierzytelnianie. Jedno wybiera skrót kryptograficzny tunelu; drugie decyduje, jak dane logowania użytkownika są przedstawiane RADIUS. Zmiana skrótu nigdy nie zamieni żądania PAP w MS-CHAPv2, niezależnie od liczby restartów usługi. Poniższa lista kontrolna rozdziela oba, a następnie śledzi jedno nieudane logowanie przez politykę NPS, która je oceniła.

Krok 1: przeczytaj oba ustawienia, zanim zmienisz którekolwiek

Wydrukuj obowiązującą konfigurację serwera OpenVPN na routerze kończącym tunel, a nie z kopii zapasowej ani skopiowanego wpisu z forum. Dwa interesujące cię pola zwykle znajdują się w tym samym menu i czytają się tak, jakby były alternatywami. Nie są: jedno dotyczy kanału danych, drugie wymiany danych logowania.

/interface ovpn-server server print
/interface ovpn-server server export

Pole auth wymienia skróty, takie jak sha1 i sha256, i steruje HMAC, który uwierzytelnia pakiety tunelu. Pole user-auth-method wybiera pap lub mschap2 i decyduje, jak router przedstawia dane logowania użytkownika RADIUS. Zmiana skrótu nie może zmienić drugiego zachowania, dlatego to samo odrzucenie przeżywa każdą korektę pierwszego.

Zatrzymaj się tutaj, jeśli twoje wydanie w ogóle nie udostępnia user-auth-method. Starsze kompilacje RouterOS mogą go nie oferować na serwerze OpenVPN, a poprawka należy do wydania, które możesz wspierać, a nie do polecenia skopiowanego z nowszego.

Krok 2: znajdź politykę, która naprawdę odrzuciła logowanie

Po stronie NPS żądanie połączenia jest oceniane według polityk sieciowych, a metoda uwierzytelniania wskazana w pasującej polityce musi być tą, którą klient rzeczywiście zaoferował. Skoreluj jedno nieudane logowanie według czasu i użytkownika, zamiast czytać zbiorczą liczbę. Dziennik zabezpieczeń zapisuje żądania przyznane i odrzucone z kodem przyczyny, co mówi znacznie więcej niż ogólny wiersz błędu routera.

Get-WinEvent -LogName Security -MaxEvents 200 |
  Where-Object { $_.Id -in 6272,6273 } |
  Format-List TimeCreated,Id,Message

Przeczytaj trzy rzeczy w zdarzeniu: nazwę pasującej polityki, metodę uwierzytelniania i kod przyczyny. Polityka wymagająca MS-CHAPv2 odrzuca żądanie PAP nawet przy poprawnym haśle, a polityka wymagająca konta domenowego odrzuca konto lokalne. Wpis klienta RADIUS musi również odpowiadać adresowi źródłowemu routera, inaczej żądanie jest odrzucane, zanim jakakolwiek polityka zostanie sprawdzona. Nic z tego nie pojawia się w dzienniku OpenVPN.

Zatrzymaj się tutaj, jeśli żądanie nigdy nie dociera do NPS. To problem wspólnego sekretu, adresu klienta lub UDP 1812, a zmiana metod uwierzytelniania go nie naprawi.

Krok 3: zmień jedną metodę, po obu stronach

Jeśli zatwierdzonym projektem jest MS-CHAPv2, ustaw go na routerze i potwierdź, że pasująca polityka go akceptuje. Zmień jedną stronę, przetestuj ponownie, a następnie zmień drugą; zmiana obu naraz uniemożliwia stwierdzenie, która miała znaczenie.

/interface ovpn-server server set user-auth-method=mschap2
/interface ovpn-server server print
/log print where topics~"radius"

Nie włączaj na NPS każdej słabszej metody, aby błąd zniknął. Zaplecze musi mieć materiał, który wybrana metoda może zweryfikować: MS-CHAPv2 wymaga dostępu do hasła lub domeny, a polityka nie może tego materiału wymyślić. Rozszerzanie polityki rozszerza też to, czego atakujący może spróbować wobec tego samego konta. Zapisz razem metodę, nazwę polityki i odniesienie zmiany, aby następna osoba odziedziczyła decyzję, a nie przypuszczenie.

Pozostaw walidację certyfikatu tunelu dokładnie taką, jaka była. Metoda danych logowania nie zastępuje tożsamości serwera, a obniżanie kontroli TLS, aby test przeszedł, zamienia jeden problem na gorszy.

Krok 4: przetestuj trzy logowania i jedno uprawnienie

Przetestuj dozwolonego użytkownika, błędne hasło i wykluczonego użytkownika, każdego w nowej sesji. Pierwsze dowodzi ścieżki, drugie dowodzi, że sprawdzanie danych logowania jest prawdziwe, a trzecie dowodzi, że polityka nadal wyklucza tych, których powinna. Sesja w pamięci podręcznej może ukryć wszystkie trzy, więc rozłączaj się między próbami.

/log print where topics~"ovpn"
/radius monitor 0

Skuteczne uwierzytelnienie nie jest końcem listy kontrolnej. Sprawdź adres, który otrzymał klient, oraz zasoby, do których ten adres może dotrzeć, ponieważ użytkownik może uwierzytelnić się poprawnie i mimo to trafić do niewłaściwej puli. Jeśli przypisany adres jest błędny, problem leży w profilu lub atrybutach odpowiedzi RADIUS, a nie w metodzie. Potwierdź oba przed zamknięciem zgłoszenia.

Lista kontrolna jest gotowa, gdy ustawienie routera i polityka NPS nazywają tę samą metodę, dozwolony użytkownik łączy się w nowej sesji, błędne hasło jest odrzucane, wykluczony użytkownik pozostaje wykluczony, a przypisany adres odpowiada zamierzonej puli. Cokolwiek mniej pozostawia następne logowanie przypadkowi.

Powiązane artykuły