LINUX.ORG.RU
ФорумAdmin

pptp + radius + ms-chap - не работает


0

0

Помогите разобраться, плз.

Стоит связка
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.ru/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


(в одно сообщение не влезает, продолжение - вследующем)
anonymous

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.V
alue,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.V
alue,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.V
alue,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.
Но как это исправить, мне неясно.

Помогите, плз, уже мозги дымяться - непонятно, в какую сторону копать :(

anonymous
()
Ответ на: комментарий от anonymous

Разобрался.

Как правильно подсказывал DarkDen, radiusclient-у не хватало microsoft-овских словарей. В гентушной поставке radiusclient-а (radiusclient-0.4.8) файл dictionary.microsoft отсутствует, как класс. Я нашел его в файле http://www.elminster.com/xoops/modules/mydownloads/visit.php?cid=2&lid=6 IPCop Addons/Customisations : PPP Radius Plugin: http://www.elminster.com/xoops/modules/mydownloads/viewcat.php?op=&cid=2

переписал в /etc/radiusclient и в файл /etc/radiusclient/dictionary добавил строчку INCLUDE /etc/radiusclient/dictionary.microsoft

После этого все завелось:

rad_recv: Access-Request packet from host 127.0.0.1:33261, id=146, length=147 Service-Type = Framed-User Framed-Protocol = PPP User-Name = "user1" MS-CHAP-Challenge = 0x2b666ec59ef847a0313e9a9d88a49893 MS-CHAP2-Response = 0x8000aa494ded1523159a0d2c61dc86ff67e20000000000000000e9ed1b3f35729a7d63241c0a7d ec c53b6da386e2036a7034 Calling-Station-Id = "192.168.30.17" NAS-IP-Address = 10.0.0.1 NAS-Port = 0

<...>

modcall[authorize]: module "sql" returns ok for request 11 modcall: group authorize returns ok for request 11 rad_check_password: Found Auth-Type MS-CHAP auth: type "MS-CHAP" Processing the authenticate section of radiusd.conf modcall: entering group Auth-Type for request 11 rlm_mschap: Told to do MS-CHAPv2 for user1 with NT-Password rlm_mschap: adding MS-CHAPv2 MPPE keys modcall[authenticate]: module "mschap" returns ok for request 11 modcall: group Auth-Type returns ok for request 11 Login OK: [user1] (from client localhost port 0 cli 192.168.30.17)

anonymous
()
Ответ на: комментарий от anonymous

опять это форматирование :(

Разобрался.

Как правильно подсказывал DarkDen, radiusclient-у не хватало microsoft-овских словарей.
В гентушной поставке radiusclient-а (radiusclient-0.4.8) файл dictionary.microsoft отсутствует, как класс. Я нашел его в файле 
http://www.elminster.com/xoops/modules/mydownloads/visit.php?cid=2&lid=6
IPCop Addons/Customisations : PPP Radius Plugin: http://www.elminster.com/xoops/modules/mydownloads/viewcat.php?op=&cid=2 

переписал в /etc/radiusclient и в файл /etc/radiusclient/dictionary добавил строчку 
INCLUDE /etc/radiusclient/dictionary.microsoft

После этого все завелось:


rad_recv: Access-Request packet from host 127.0.0.1:33261, id=146, length=147
        Service-Type = Framed-User
        Framed-Protocol = PPP
        User-Name = "user1"
        MS-CHAP-Challenge = 0x2b666ec59ef847a0313e9a9d88a49893
        MS-CHAP2-Response = 0x8000aa494ded1523159a0d2c61dc86ff67e20000000000000000e9ed1b3f35729a7d63241c0a7d
ec
c53b6da386e2036a7034
        Calling-Station-Id = "192.168.30.17"
        NAS-IP-Address = 10.0.0.1
        NAS-Port = 0

<...>

  modcall[authorize]: module "sql" returns ok for request 11
modcall: group authorize returns ok for request 11
  rad_check_password:  Found Auth-Type MS-CHAP
auth: type "MS-CHAP"
  Processing the authenticate section of radiusd.conf
modcall: entering group Auth-Type for request 11
  rlm_mschap: Told to do MS-CHAPv2 for user1 with NT-Password
rlm_mschap: adding MS-CHAPv2 MPPE keys
  modcall[authenticate]: module "mschap" returns ok for request 11
modcall: group Auth-Type returns ok for request 11
Login OK: [user1] (from client localhost port 0 cli 192.168.30.17)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.