Python 인증 모듈을 만들었습니다. radtest 응답으로 테스트를 수행하려는 경우는 다음과 같습니다.
User-Password = "testing123"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
Message-Authenticator = 0x00
Cleartext-Password = "testing123"
Received Access-Accept Id 188 from 127.0.0.1:1812 to 0.0.0.0:0 length 48
ERX-Service-Activate:0 = "srs-local-ipoe"
보시다시피 ERX-Service-Activate에는 0으로 태그된 속성이 하나만 있습니다.
그러나 radiusd -X는 또 다른 출력을 보여줍니다.
authorize - 'reply:ERX-Service-Activate:1' = 'srs-local-ipoe'
authorize - 'reply:ERX-Service-Activate:2' = 'srs-localnet-ipoe(110000)'
authorize - 'reply:ERX-Service-Activate:3' = 'srs-foreignnet-ipoe(110000,110000)'
authorize - 'config:Auth-Type' = 'Accept'
authorize - 'config:Cleartext-Password' = 'testing123'
모든 ERX-Service-Activate 태그 속성을 가져오는 방법.
Python 구성 응답:
reply = (('Framed-IP-Address', str(client.ipv4)),
('ERX-Service-Activate:1', 'srs-local-ipoe'),
('ERX-Service-Activate:2',
'srs-localnet-ipoe(%s)' % str(client.s_localnet)),
('ERX-Service-Activate:3',
'srs-foreign-ipoe(%s,%s)' % (str(client.s_foreign),
str(client.s_localnet))),)
Wireshark의 PS 응답에는 ERX-Service-Activate 속성이 하나만 있습니다.
답변1
freeradius 버전 3.0.17에서 수정된 문제
또한 응답을 약간 수정해야 합니다.
reply = (('Framed-IP-Address', str(client.ipv4)), ('ERX-Service-Activate:1', 'srs-local-ipoe'), ('ERX-Service-Activate:2', '+=', 'srs-localnet-ipoe(%s)' % str(client.s_localnet)), ('ERX-Service-Activate:3', '+=', 'srs-foreign-ipoe(%s,%s)' % (str(client.s_foreign), str(client.s_localnet))),)