Księgowanie RADIUS a udane logowanie: co dowodzi każde z nich
Access-Accept mówi, że sesja może się rozpocząć. Rekordy Start, Interim-Update i Stop mówią, co stało się później; identyfikator sesji łączy je.
W każdej rozmowie o rozliczaniu VPN mieszają się dwa pytania: czy temu użytkownikowi wolno się połączyć i co faktycznie zrobił. Na pierwsze odpowiada uwierzytelnianie. Drugie wymaga rekordów księgowych, które zaczynają się, aktualizują i kończą. Udane logowanie dowodzi pierwszego i nic nie mówi o drugim, dlatego działająca konfiguracja uwierzytelniania RADIUS wciąż może dać pusty raport użycia.
Dwa różne pytania
Uwierzytelnianie decyduje, czy połączenie może się rozpocząć, i zwraca werdykt wraz z atrybutami, takimi jak pula adresów czy grupa. Księgowanie zapisuje usługę, która nastąpiła, jako sekwencję zdarzeń powiązanych z jedną sesją.
Podróżują tym samym protokołem i zwykle do tego samego serwera, i właśnie dlatego ludzie zakładają, że jedno oznacza drugie.
Nic w żądaniu dostępu nie niesie czasu trwania sesji, a nic w rekordzie Stop nie rozstrzyga ponownie, czy użytkownik powinien zostać wpuszczony. Traktowanie ich jako osobnych umów uwidacznia pracę integracji: jedna ścieżka potrzebuje decyzji, druga cyklu życia z początkiem, środkiem i końcem.
Co dają trzy typy rekordów
Rekord Start otwiera sesję, Interim-Update zgłasza aktywność, dopóki jest otwarta, a Stop ją zamyka. Wszystkie trzy niosą identyfikator sesji, aby odbiorca mógł powiązać je z jednym zdarzeniem usługi.
Ten identyfikator jest jedynym wiarygodnym łączem między nimi, ponieważ ta sama nazwa użytkownika może mieć kilka sesji kolejno lub równolegle. Projektuj przechowywanie wokół niego, a nie wokół nazwy konta.
Potwierdzenie rekordu to coś innego niż dobre jego przechowanie. Specyfikacja księgowania zabrania potwierdzenia, gdy rekordu nie udało się zapisać, więc odpowiedź naprawdę mówi, że odbiorca wziął na siebie odpowiedzialność. Nie mówi jednak, że późniejsze zadanie raportowe, pulpit albo eksport rozliczeń wykorzystały go poprawnie.
Dlaczego nazwa użytkownika nie jest sesją
Jedna osoba łączy się rano z laptopa, a po południu z telefonu, i obie sesje noszą tę samą nazwę konta. Start, który przychodzi bez pasującego Stop, nie może zostać zamknięty przez wyszukanie nazwy i wybranie najstarszego otwartego wiersza.
Ten skrót jest sposobem, w jaki raporty użycia zyskują niemożliwe czasy trwania.
Trzymaj tożsamość serwera dostępu sieciowego obok identyfikatora sesji, ponieważ dwa serwery mogą nadać tę samą wartość w różnych kontekstach, a scalenie tylko po identyfikatorze może połączyć niepowiązane sesje. Gdy sesja kończy się niechlujnie, polityka uzgadniania musi zdecydować, jak ją zamknąć, a ta decyzja należy do projektu, a nie do ręcznej edycji bazy raz w miesiącu.
Gdzie PAM pasuje, a gdzie nie
Wtyczka uwierzytelniania OpenVPN wywołuje etapy uwierzytelniania i zarządzania kontami PAM. Etap konta sprawdza uprawnienia; jego nazwa nie oznacza księgowania użycia, a wtyczka nie steruje hakami otwierania i zamykania sesji PAM.
Niektóre moduły PAM RADIUS mogą wysyłać rekordy księgowe przez te haki sesji, i działa to tylko wtedy, gdy aplikacja rzeczywiście je wywołuje.
Dodanie takiego modułu do stosu uwierzytelniania nie tworzy zatem zdarzeń rozłączenia. Jeśli potrzebujesz pełnego cyklu życia, wybierz integrację, która go posiada: wtyczkę lub obsługiwaną kompilację, która emituje Start, Interim-Update i Stop, gdy połączenie zmienia stan. Sprawdź jej status utrzymania i udokumentowane zachowanie, gdy odbiorca jest niedostępny, ponieważ wtyczka, która po cichu gubi rekordy, wygląda identycznie jak ta, która nigdy ich nie wysłała. Specyfikacja księgowania określa semantykę rekordów, której integracja musi przestrzegać.
Przebieg odbiorczy, który dowodzi umowy
Przetestuj normalne połączenie i rozłączenie, potem ponowne połączenie na tym samym koncie, potem klienta, który znika bez rozłączania.
Śledź jeden identyfikator sesji od utworzenia przez potwierdzenie aż do przechowywania, i sprawdź kierunek, jednostki i interfejs liczników. Nieoznaczonej liczby bajtów nie da się później zaudytować.
Na koniec potwierdź, że sesja, którą serwer musiał zakończyć z powodu przekroczenia czasu, jest przedstawiona w sposób, który raport rozumie. Umowa obejmująca tylko grzeczne rozłączenia to umowa, która zawodzi w dniach, gdy najbardziej jej potrzebujesz.