RADIUS отчитане срещу успешен вход: какво доказва всяко
Access-Accept казва, че сесия може да започне. Записите Start, Interim-Update и Stop казват какво се случи след това; идентификатор на сесията ги свързва.
Два въпроса се смесват във всеки разговор за таксуване на VPN: дали на този потребител е било разрешено да се свърже и какво всъщност е направил. На първия отговаря удостоверяването. Вторият изисква записи за отчитане, които започват, обновяват и завършват. Успешният вход доказва първото и не казва нищо за второто, затова работеща настройка за удостоверяване с RADIUS може да произведе празен отчет за използването.
Два различни въпроса
Удостоверяването решава дали връзката може да започне, и връща присъда плюс атрибути като адресен пул или група. Отчитането записва услугата, която е последвала, като последователност от събития, свързани с една сесия.
Те пътуват по един и същ протокол и обикновено до един и същ сървър, поради което хората предполагат, че едното предполага другото.
Нищо в заявката за достъп не носи продължителността на сесията и нищо в запис Stop не решава наново дали потребителят е трябвало да бъде допуснат. Когато ги третирате като отделни договори, работата по интеграцията става видима: единият път се нуждае от решение, другият от жизнен цикъл с начало, среда и край.
Какво ви дават трите типа записи
Запис Start отваря сесия, Interim-Update отчита активност, докато тя е отворена, а Stop я затваря. И трите носят идентификатор на сесията, за да може получателят да ги свърже с едно събитие на услугата.
Този идентификатор е единствената надеждна връзка между тях, защото едно и също потребителско име може да има няколко сесии последователно или паралелно. Проектирайте съхранението около него, а не около името на акаунта.
Потвърждаването на запис е отделен въпрос от доброто му съхранение. Спецификацията за отчитане забранява потвърждаването, когато записът не е могъл да бъде записан, така че отговорът ви казва, че получателят е поел отговорност. Той не ви казва, че по-късната задача за отчети, таблото или експортът за таксуване са го използвали правилно.
Защо потребителското име не е сесията
Един човек се свързва от лаптоп сутринта и от телефон следобед, а двете сесии носят едно и също име на акаунт. Запис Start, който пристига без съответстващия Stop, не може да бъде затворен чрез търсене на името и избиране на най-стария отворен ред.
Този пряк път е начинът, по който отчетите за използване придобиват невъзможни продължителности.
Пазете идентичността на сървъра за мрежов достъп до идентификатора на сесията, защото два сървъра могат да зададат една и съща стойност в различни контексти и обединяване само по идентификатора може да свърже несвързани сесии. Когато сесия приключи некоректно, политиката за съгласуване трябва да реши как да я затвори, и това решение принадлежи на дизайна, а не на ръчна редакция на базата данни веднъж месечно.
Къде PAM пасва и къде не
Плъгинът за удостоверяване на OpenVPN извиква етапите за удостоверяване и управление на акаунти на PAM. Етапът на акаунта проверява допустимостта; името му не означава отчитане на използването и плъгинът не управлява куките за отваряне и затваряне на сесия в PAM.
Някои модули PAM RADIUS могат да изпращат записи за отчитане през тези куки за сесия, и това работи само когато приложението действително ги извиква.
Затова добавянето на такъв модул към стек за удостоверяване не създава събития за прекъсване. Ако ви трябва пълният жизнен цикъл, изберете интеграция, която го притежава: плъгин или поддържана сборка, която излъчва Start, Interim-Update и Stop, когато връзката смени състояние. Проверете статуса му на поддръжка и документираното му поведение, когато получателят е недостъпен, защото плъгин, който безшумно изпуска записи, изглежда идентично на такъв, който никога не ги е изпращал. Спецификацията за отчитане определя семантиката на записите, която интеграцията трябва да спазва.
Приемно изпитание, което доказва договора
Тествайте нормално свързване и прекъсване, после повторно свързване под същия акаунт, после клиент, който изчезва без да прекъсне.
Проследете един идентификатор на сесия от генерирането през потвърждението до съхранението и проверете посоката, единиците и интерфейса на броячите. Брой байтове без етикет е невъзможен за одит по-късно.
Накрая потвърдете, че сесия, която сървърът е трябвало да прекрати по изчакване, е представена по начин, който отчетът разбира. Договор, който покрива само коректните прекъсвания, е договор, който се проваля в дните, когато ви е най-нужен.