Есть Два freebsd NAS-а 7.1 и 7.3 MPD 5.3 и MPD 5.5 соответственно.
После перестартовки радиуса (freeradius 1.7.7) появляются проблемы только с MPD 5.5
После раскопок я склонен к тому, что не совпадают MD5 hash. Порылся в изменениях, но не нашел ничего.
Лог радиуса:
Received Accounting-Request packet from 1.1.1.22 with invalid signature! (Shared secret is incorrect.) Dropping packet without response.
Лог MPD 5.5:
mpd: RADIUS: rad_send_request for user 'ira' failed: No valid RADIUS responses received
Конфиги mpd 5.3 и mpd 5.5. одинаковы полностью. Подскажите что изменилось с 5.3 до 5.5
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Продолжая расследование данной проблемы:
Как я и догадывался дело в подсчете MD5 сумм, которые генерируются по нехитрому алгоритму:
freeradius 1.1.8/src/lib/radius.c
….
static int calc_acctdigest(RADIUS_PACKET *packet, const char *secret)
….
MD5Init(&context);
MD5Update(&context, packet->data, packet->data_len);
MD5Update(&context, (const uint8_t *) secret, strlen(secret));
MD5Final(digest, &context);
/ * Return 0 if OK, 2 if not OK.
packet->verified = memcmp(digest, packet->vector, AUTH_VECTOR_LEN) ? 2 : 0;
DEBUG("calc_acctdigest: Digest:`%s` Vector:`%s`,packet-verified:%i", digest, packet->vector,packet->verified);
return packet->verified;
-----------------------------------------end------------------------------
А вот и дебаг с нулем от mpd 5.3 и с плохим результатом 2 от mpd 5.5
……
calc_acctdigest: Digest:`..l.É.{.B..J.Z.,..` Vector:`..l.É.{.B..J.Z.`,packet-verified:0
…….
calc_acctdigest: Digest:`…S……mM….,..` Vector:`..2?..c…….$``,packet-verified:2
Received Accounting-Request packet from 1.1.1.1 with invalid signature! (Shared secret is incorrect.)
Dropping packet without response.
Вот только не понятно. Получается, что эти ошибки появляются, когда перезапустился радиус, а клиент находился в этот момент "на линии" и продолжает слать live-updates. Но ошибка пропадает через несколько минут или если разорвать и установить заново соединение.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Есть Два freebsd NAS-а 7.1 и 7.3 MPD 5.3 и MPD 5.5 соответственно.
После перестартовки радиуса (freeradius 1.7.7) появляются проблемы только с MPD 5.5
После раскопок я склонен к тому, что не совпадают MD5 hash. Порылся в изменениях, но не нашел ничего.
Лог радиуса:
Received Accounting-Request packet from 1.1.1.22 with invalid signature! (Shared secret is incorrect.) Dropping packet without response.
Лог MPD 5.5:
mpd: RADIUS: rad_send_request for user 'ira' failed: No valid RADIUS responses received
Конфиги mpd 5.3 и mpd 5.5. одинаковы полностью. Подскажите что изменилось с 5.3 до 5.5
Продолжая расследование данной проблемы:
Как я и догадывался дело в подсчете MD5 сумм, которые генерируются по нехитрому алгоритму:
freeradius 1.1.8/src/lib/radius.c
….
static int calc_acctdigest(RADIUS_PACKET *packet, const char *secret)
….
MD5Init(&context);
MD5Update(&context, packet->data, packet->data_len);
MD5Update(&context, (const uint8_t *) secret, strlen(secret));
MD5Final(digest, &context);
/ * Return 0 if OK, 2 if not OK.
packet->verified = memcmp(digest, packet->vector, AUTH_VECTOR_LEN) ? 2 : 0;
DEBUG("calc_acctdigest: Digest:`%s` Vector:`%s`,packet-verified:%i", digest, packet->vector,packet->verified);
return packet->verified;
-----------------------------------------end------------------------------
А вот и дебаг с нулем от mpd 5.3 и с плохим результатом 2 от mpd 5.5
……
calc_acctdigest: Digest:`..l.É.{.B..J.Z.,..` Vector:`..l.É.{.B..J.Z.`,packet-verified:0
…….
calc_acctdigest: Digest:`…S……mM….,..` Vector:`..2?..c…….$``,packet-verified:2
Received Accounting-Request packet from 1.1.1.1 with invalid signature! (Shared secret is incorrect.)
Dropping packet without response.
Вот только не понятно. Получается, что эти ошибки появляются, когда перезапустился радиус, а клиент находился в этот момент "на линии" и продолжает слать live-updates. Но ошибка пропадает через несколько минут или если разорвать и установить заново соединение.
Раскопки привили меня в libradius. Проблема похоже связана с появлением
insert_message_authenticator