На стороне WIFI точки доступа используется EAP-PEAP, MSCHAPv2 (можно и EAP-TTLS в данном случае не принципиально), радиус запрос отправляется на Cisco ASR, где на основе него создается ISG IP сессия.
На ASR используется subscriber l2-connected, initator radius-proxy.
При тестировании на стенде была выявлена проблема:
При авторизации имеются 2 Access-Request'а
1. во время EAP-Challenge.
Код:
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-3] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Access-Request
Identifier: 214
Authenticator: {78 E2 2F FE D8 28 22 25 81 1A 7A A8 5F 66 8C 38}
Attributes:
User-Name=testtest
NAS-Identifier=BRAS - 1 - FIX WIFI
Message-Authenticator={AD 16 E0 E3 74 51 47 A1 EB 18 81 F9 62 FA 47 AD}
NAS-Port=0
State={85 BF DB D2 EA 27 A7 B2 EF 60 E1 35 75 8B 51 A0}
Connect-Info=CONNECT 0Mbps 802.11
EAP-Message={02 06 00 80 19 00 17 03 01 00 18 4A 63 69 E3 69 B2 40 D7 96 BE 8D 62 75 F5 D8 0D F2 0E A9 1A AA 87 DC 42 17 03 01 00 58 54 D7 ED 22 F5 93 F7 17 FA B5 EE 9E A3 3C 58 04 99 1B 9A F4 38 8B 9A AD AF 30 F7 5F 2C 6E 05 3F 4D 30 28 92 A6 38 06 66 EC 11 08 2F 29 7F 51 95 43 8D 4D 99 30 AF 72 FC 89 4C 80 AC 60 A4 44 27 5A EA 36 8E 4B C9 04 A4 2D 72 43 24 AD 75 8B FB D7 72 D4 7C 76 3D 38 3B}
Framed-MTU=1400
NAS-Port-Type=19
Calling-Station-Id=9021.55d8.ab2c
Called-Station-Id=00-27-22-C4-F9-4F:TEST
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-3] InetNas - Search by username=testtest
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-3] InetRadiusProcessor - [username=testtest] Authenticated as inetServId:19
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-3] InetApplication - inetServ[id=19] balance ok: -5829.57 [-6000.00]
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-3] InetApplication - TariffOptionMap: {}
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-3] InetRadiusProcessor - Set ip from pool
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-3] InetRadiusProcessor - Return code=0
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-3] InetRadiusListenerWorker - RESPONSE:
Packet type: Access-Challenge
Identifier: 214
Authenticator: {47 98 65 48 97 B5 F2 6F 01 4A F9 6E A6 95 AE 83}
Attributes:
Acct-Interim-Interval=1200
Message-Authenticator={00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
Framed-IP-Address=10.14.0.149
State={85 BF DB D2 EA 27 A7 B2 EF 60 E1 35 75 8B 51 A0}
EAP-Message={01 07 00 53 19 00 17 03 01 00 48 33 46 8B E7 2F 41 A1 F7 0A C3 4E 36 99 B9 5E FD B5 81 ED BA 30 54 9A 2E 0D C6 4E 13 FD C0 69 47 21 AB F7 23 EE 4B 5E E8 F6 74 59 CA 57 2F 94 C2 F9 7F 9C 13 6A 43 CA 28 76 73 54 4D C4 AD C6 FA 73 20 AA 65 99 FF D2 DC}
Idle-Timeout=600
cisco-avpair=subscriber:accounting-list=INET-ISG-WIFI-FIX
2. во время обмена ключами MSСHAP
Код:
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-8] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Access-Request
Identifier: 216
Authenticator: {6A 02 93 E5 D4 9D 43 1E 57 7D 8F 63 37 C0 0D 5D}
Attributes:
User-Name=testtest
NAS-Identifier=BRAS - 1 - FIX WIFI
Message-Authenticator={1D 3D 0E 2D F8 AB 6A F5 50 66 B0 1D EB 31 5D DA}
NAS-Port=0
State={85 BF DB D2 EA 27 A7 B2 EF 60 E1 35 75 8B 51 A0}
Connect-Info=CONNECT 0Mbps 802.11
EAP-Message={02 08 00 48 19 00 17 03 01 00 18 83 6C 53 14 17 DC C2 90 0C 82 5A 8D 53 62 7A 19 55 D5 24 96 70 33 D2 C1 17 03 01 00 20 B1 E5 72 EB D0 2D 98 10 68 9A 76 6F 50 01 16 56 8C 35 7C 4D 52 0C 14 E9 E9 EA 68 2C CF 85 F7 7C}
Framed-MTU=1400
NAS-Port-Type=19
Calling-Station-Id=9021.55d8.ab2c
Called-Station-Id=00-27-22-C4-F9-4F:TEST
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-8] InetDhcpHelperProcessor - Skip userName: testtest
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-8] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS:
Packet type: Access-Accept
Identifier: 216
Authenticator: {}
Attributes:
User-Name=testtest
Message-Authenticator={00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
EAP-Message={03 08 00 04}
MS-MPPE-Recv-Key={D9 B1 17 A6 EB 03 3D B1 42 F8 5C F6 32 B8 7D DC 11 53 6D FA D9 7D 21 FC 04 A5 BA 83 B9 81 C4 4D B4 75 3F B3 61 21 FC 12 76 71 01 F0 6B 1D C3 49 34 A7}
MS-MPPE-Send-Key={A7 67 25 64 78 FE 83 28 EC 23 97 0C 99 C8 4A 35 58 75 A9 B3 E1 F4 E6 08 43 37 33 4B 20 59 C9 F2 10 C8 75 14 0B A3 AB A4 DD 99 09 C6 10 65 D3 95 EA FD}
Process time auth: 4
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-8] HourlyDataLogEntry - Create dataLog file: /bglogs/access/data/radius/source_19/2013/2013-03/2013-03-18/log_2013-03-18-11.000.bgdl
radius 03-18/11:56:31 INFO [rdsLstnr-p-9-t-8] InetRadiusListenerWorker - RESPONSE:
Packet type: Access-Accept
Identifier: 216
Authenticator: {60 31 54 5C 12 07 28 F2 A9 00 79 79 35 4B F5 F7}
Attributes:
User-Name=testtest
Message-Authenticator={00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
State={85 BF DB D2 EA 27 A7 B2 EF 60 E1 35 75 8B 51 A0}
EAP-Message={03 08 00 04}
MS-MPPE-Recv-Key={D9 B1 17 A6 EB 03 3D B1 42 F8 5C F6 32 B8 7D DC 11 53 6D FA D9 7D 21 FC 04 A5 BA 83 B9 81 C4 4D B4 75 3F B3 61 21 FC 12 76 71 01 F0 6B 1D C3 49 34 A7}
MS-MPPE-Send-Key={A7 67 25 64 78 FE 83 28 EC 23 97 0C 99 C8 4A 35 58 75 A9 B3 E1 F4 E6 08 43 37 33 4B 20 59 C9 F2 10 C8 75 14 0B A3 AB A4 DD 99 09 C6 10 65 D3 95 EA FD}
Ответ на первый Access-Request, ASR проксирует в сторону точки доступа даже не заглядывая в его тело. Но именно в нем радиус отдает необходимые атрибуты (сервисы, акаунтинг, итд)
В связи с чем, нужно, чтобы радиус отправлял те же атрибуты и в ответ на второй Access-Request. Именно его смотрит ASR для получения необходимых атрибутов. (проверено при помощи тестовой конфигурации freeradius)
Полный лог в атаче.