Как повысить надежность RADIUS (FreeRADIUS) при использовании для аутентификации TOTP (LinOTP) с возможной потерей пакетов?

Мы используем AWS SSO с TOTP через RADIUS. Наш RADIUS-сервер — это FreeRADIUS с linotp-auth-freeradius-perl.

Проблема в том, что соединение между AWS SSO и FreeRADIUS не совсем надежное — бывают периоды, когда между ними наблюдается значительная потеря пакетов.

RADIUS использует UDP, а это означает, что даже потеря одного обратного пакета может привести к сбою аутентификации. Затем через некоторое время AWS SSO пытается снова, но TOTP RFC запрещает использовать одно и то же значение токена дважды, а первая попытка израсходовала TOTP.

Итак, есть много журналов, таких как:

2022/05/24 - 05:59:49 WARNI {140508089116416} [linotp.tokens.totptoken][checkOtp #429] [checkOTP] a previous OTP value was used again!
 former tokencounter: 55112395, presented counter 55112395

И многие пользователи не могут войти в AWS SSO даже с нескольких попыток.

Я ищу идеи о том, как повысить надежность этого. Я не смог найти способ заставить FreeRADIUS отправлять несколько ответных пакетов с некоторой задержкой (например, 10 пакетов каждую 1 секунду), что значительно уменьшило бы вероятность потери каждого ответного пакета.

Но, может быть, у ядра Linux есть способ дублировать такие ответные пакеты несколько раз с возрастающими задержками. Если есть, то как? Избегая повторного дублирования этих дубликатов, что, хотя и смешно думать, скорее нежелательно…

Я не думаю, что AWS SSO поддерживает какой-либо другой протокол для использования TOTP, кроме RADIUS (с UDP), но я могу ошибаться. Пожалуйста, поправьте меня, если это так.

udp freeradius totp

0

Добавить комментарий

Ваш адрес email не будет опубликован.