Hi All!
Понадобился мне VPN с авторизацией через Радиус (FreeRadius) и Mysql.
Сначала настроил всё без mysql. Работало и по PAP и по MS-CHAP. Подключил
Mysql, использовал PAP. работало.
Hо гонять пароли по сети в открытом виде не хочется. Изменяю на MS-CHAP - и
всё, болт. Радиус не хочет авторизовывать на основе данных из базы. При этом,
если не использовать базу а просто в файде users указать:
test Auth-Type:=MS-CHAP, User-Password == "test1"
то соединение устанавливается и всё нормально!
Есть ощущение что я записываю неправильные данные в таблицу radcheck. Сейчас
там так:
mysql> SELECT id,UserName,Attribute,Value,op FROM radcheck WHERE Username =
'test' ORDER BY id;
+----+----------+---------------+-------+----+
| id | UserName | Attribute | Value | op |
+----+----------+---------------+-------+----+
| 1 | test | User-Password | test1 | == |
+----+----------+---------------+-------+----+
наверное поля Attribute и Value должны быть для MS-CHAP другие, но какие?
перерыл всё, но упоминаний нигде не нашёл.
Если будет полезной, вот вывод радиуса при попытке авторизоваться по MS-CHAP
Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1:1049, id=82, length=124
Service-Type = Framed-User
Framed-Protocol = PPP
User-Name = "test"
MS-CHAP-Challenge = 0xf9f08e82531502bf
MS-CHAP-Response =
0x51010000000000000000000000000000000000000000000000008900ce5efa095a0d32635536f
8f41ec02fab62c93267
NAS-IP-Address = 192.168.0.4
NAS-Port = 0
rlm_sql (cake_sql): Reserving sql socket id: 29
rlm_sql_mysql: query: SELECT id,UserName,Attribute,Value,op FROM radcheck
WHERE Username = 'test' ORDER BY id;
rlm_sql (cake_sql): Released sql socket id: 29
Login incorrect: [test/<no User-Password attribute>] (from client localhost
port 0)
rad_recv: Access-Request packet from host 127.0.0.1:1049, id=82, length=124
Sending Access-Reject of id 82 to 127.0.0.1:1049