Помогите разобраться, плз.
Стоит связка
freeradius-1.0.1
radiusclient-0.4.8
ppp-2.4.3-r1
pptpd-1.2.1
mysql-4.0.20
gentoo linux
Логины/пароли клиентов должны храниться в sql базе.
на ppp и ядро наложен патч, чтобы они понимали mppe/mppc.
Настраивал все это по вот этим двум документам:
http://www.opennet.me/base/net/freeradius_mpd_vpn.txt.html
http://poptop.sourceforge.net/dox/radius_mysql.html
Проблема в следующем - при попытке авторизироваться на vpn сервере с виндовой машины
(пароли в radius/sql) - получаем "invalid user/password".
Если отключаем radius.so плагин в options.pptpd, то авторизируемся нормально.
В базе заведен user1/pass1.
radtest работает:
radtest user1 pass1 localhost 1812 tmppass
Sending Access-Request of id 132 to 127.0.0.1:1812
User-Name = "user1"
User-Password = "pass1"
NAS-IP-Address = vpnsrv
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=132, length=32
Framed-IP-Address = 192.168.10.55
Framed-IP-Netmask = 255.255.255.255
Но при попытке подключения к vpn pptpd в логах радиуса видим:
<....>
Module: Loaded MS-CHAP
mschap: use_mppe = yes
mschap: require_encryption = no
mschap: require_strong = no
mschap: with_ntdomain_hack = no
mschap: passwd = "(null)"
mschap: authtype = "MS-CHAP"
mschap: ntlm_auth = "(null)"
Module: Instantiated mschap (mschap)
<...>
rad_recv: Access-Request packet from host 127.0.0.1:54792, id=126, length=65
Service-Type = Framed-User
Framed-Protocol = PPP
User-Name = "user1"
Calling-Station-Id = "192.168.30.17"
NAS-IP-Address = 10.0.0.1
NAS-Port = 0
Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 4
modcall[authorize]: module "preprocess" returns ok for request 4
modcall[authorize]: module "mschap" returns noop for request 4
rlm_realm: No '@' in User-Name = "user1", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[authorize]: module "suffix" returns noop for request 4
radius_xlat: 'user1'
rlm_sql (sql): sql_set_user escaped user --> 'user1'
radius_xlat: 'SELECT id,UserName,Attribute,Value,op FROM radcheck WHERE Username = 'user1' ORDER BY id'
rad_recv: Access-Request packet from host 127.0.0.1:54792, id=126, length=65
rlm_sql_mysql: query: SELECT id,UserName,Attribute,Value,op FROM radcheck WHERE Username = 'user1' ORDER BY id
radius_xlat: 'SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op FROM radgroupcheck,usergroup WHERE usergroup.Username = 'user1' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id'
rlm_sql_mysql: query: SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op FROM radgroupcheck,usergroup WHERE usergroup.Username = 'user1' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id
radius_xlat: 'SELECT id,UserName,Attribute,Value,op FROM radreply WHERE Username = 'user1' ORDER BY id'
rlm_sql_mysql: query: SELECT id,UserName,Attribute,Value,op FROM radreply WHERE Username = 'user1'ORDER BY id
radius_xlat: 'SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op FROM radgroupreply,usergroup WHERE usergroup.Username = 'user1' AND usergro
up.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id'rlm_sql_mysql: query: SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgr
oupreply.Value,radgroupreply.op FROM radgroupreply,usergroup WHERE usergroup.Username = 'user1' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.idrlm_sql (sql): Released sql socket id: 0 modcall[authorize]: module "sql" returns ok for request 4
modcall: group authorize returns ok for request 4
auth: type Local
auth: No User-Password or CHAP-Password attribute in the request
auth: Failed to validate the user.
Login incorrect: [user1/<no User-Password attribute>] (from client localhost port 0 cli 192.168.30.17)
Delaying request 4 for 1 seconds
Finished request 4
На мой взгляд, проблема тут:
rad_recv: Access-Request packet from host 127.0.0.1:54792, id=126, length=65
Service-Type = Framed-User
Framed-Protocol = PPP
User-Name = "user1"
Calling-Station-Id = "192.168.30.17"
NAS-IP-Address = 10.0.0.1
NAS-Port = 0
тут не пишется, что аутентификация проходит по ms-chap.
Но как это исправить, мне неясно.
Помогите, плз, уже мозги дымяться - непонятно, в какую сторону копать :(