Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

lug-bg: pppoe -pppd - freeradius - mysql - PAM


  • Subject: lug-bg: pppoe -pppd - freeradius - mysql - PAM
  • From: peyo <peyo@xxxxxxxxx>
  • Date: Thu, 24 Jun 2004 13:42:19 +0300

Здрасти на всички!

Преди всичко останало се чувствам длъжен да отбележа, че се рових доста 
подробно в рани маил-листи, гууглета, как-да-та и прочее. Уви, най-вероятно 
поради ограниченият си мозъчен капацитет не успях да си създам представа къде 
може да възникне проблема. 
Та на въпроса.

Опитвам се да си създам  pppoe тунел до офиса. За целта направих следното:
1) изнамерих си pppd, закърпих ядрото с mppe кръпката. Прекомпилирах ядрото с 
поддръжката на всичко дето пише по добрите стари "как-да" - BSD compression, 
PPP ,mppe.... (ядро 2.4.26 да не пропусна)
2) Естествено това го направих на двете машини - и дома и в офиса.
3) rp-ppoe се оказа чудесното решение за pppoe сървър и клиент. 

...Междувременно....

След като направих всичко това с подобаващата конфигурация на програмите, 
(CHAPmsv2, chap-secrets паролите и т.н), всичко си отлепи супер.

... Обаче....

Поради ръчкащата ме природа, реших вместо да използвам стандартната процедура, 
да видя как ще се реализира същото това с помощта на Freeradius 0.93 и Mysql.

4) Отново се забих в маститите документации, четейки и мажейки наред...
5) Резултата беше повече от окуражаващ - всичко си стана по книга. Чудно.
6) Обаче, както е известно, CHAP != MD5 . С други думи, в базата трябва да 
държа пароли в чист текст, което хич не ме ентусиазира. Затова реших да 
използвам PAP, което ще ми позволи аутентификацията (не ми се четат предни 
спорове отношение на превода) да става с MD5 записани в базата пароли. 
Хм. Ете тук доъде голиамата секира.
Накратко.

1) В клиентския pap-secrets прилежно си описах user/password
2) В клиентския options.pppd (например) му слагам require-pap. Същото го правя 
и в сървърския. 
3) В конфигурацията на freeradius:

modules{
        pap {
                authtype=MD5
                encryption_scheme = md5

        }
	...
}
authorize {
        preprocess
        suffix
        sql
}
authenticate {

        authtype MD5 {
                pap
        }
	...
}

В mysql:

table radcheck:
+----+----------+-----------+----+------------------------------------+
| id | UserName | Attribute | op | Value                              |
+----+----------+-----------+----+------------------------------------+
|  3 | peyo     | Password  | == | $1$Nnvt82IB$G0nuLsg822a/9Gc1ARiwi1 |
+----+----------+-----------+----+------------------------------------+

mysql> select * from radreply;
+----+----------+-------------------+----+--------------------------+
| id | UserName | Attribute         | op | Value                    |
+----+----------+-------------------+----+--------------------------+
|  1 | peyo     | Framed-IP-Address | := | 10.0.0.112               |
|  2 | peyo     | Framed-Route      | := | 10.0.0.0/24 10.0.0.254 1 |
|  3 | peyo     | Framed-IP-Netmask | := | 255.255.255.0            |
+----+----------+-------------------+----+--------------------------+

mysql> select * from radgroupcheck;
+----+-----------+-----------+----+-------+
| id | GroupName | Attribute | op | Value |
+----+-----------+-----------+----+-------+
|  1 | user      | Auth-Type | := | MD5   |
+----+-----------+-----------+----+-------+

mysql> select * from radgroupreply;
+----+-----------+--------------+----+-------------+------+
| id | GroupName | Attribute    | op | Value       | prio |
+----+-----------+--------------+----+-------------+------+
|  1 | user      | Auth-Type    | := | Local       |    0 |
|  2 | user      | Service-Type | := | Framed-User |    0 |
+----+-----------+--------------+----+-------------+------+

mysql> select * from usergroup;
+----+----------+-----------+
| id | UserName | GroupName |
+----+----------+-----------+
|  1 | peyo     | user      |
+----+----------+-----------+

Пак всичко е по книга. Обаче, когато пробвам да се вържа, в дебъга на  
freeradius излиза следното:

rlm_sql (sql): sql_set_user escaped user --> 'peyo'
radius_xlat:  'SELECT id,UserName,Attribute,Value,op FROM radcheck WHERE 
Username = 'peyo' ORDER BY id'
rlm_sql (sql): Reserving sql socket id: 4
radius_xlat:  'SELECT 
radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op  
FROM radgroupcheck,usergroup WHERE usergroup.Username = 'peyo' AND 
usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id'
radius_xlat:  'SELECT id,UserName,Attribute,Value,op FROM radreply WHERE 
Username = 'peyo' ORDER BY id'
radius_xlat:  'SELECT 
radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op  
FROM radgroupreply,usergroup WHERE usergroup.Username = 'peyo' AND 
usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id'
rlm_sql (sql): No matching entry in the database for request from user [peyo]
rlm_sql (sql): Released sql socket id: 4
  modcall[authorize]: module "sql" returns notfound for request 0
modcall: group authorize returns ok for request 0
auth: No authenticate method (Auth-Type) configuration found for the request: 
Rejecting the user
auth: Failed to validate the user.

Имайки опит с дебъгване обаче, разгледах и какво съобщава pppd (с пуснат pppoe 
модул) на сървъра:

Jun 24 13:38:49 nekade pppd[30363]: Plugin rp-pppoe.so loaded.
Jun 24 13:38:49 nekade pppd[30363]: RP-PPPoE plugin version 3.3 compiled 
against pppd 2.4.2
Jun 24 13:38:49 nekade pppd[30363]: Plugin radius.so loaded.
Jun 24 13:38:49 nekade pppd[30363]: RADIUS plugin initialized.
Jun 24 13:38:49 nekade pppd[30363]: pppd 2.4.2 started by root, uid 0
Jun 24 13:38:49 nekade pppd[30363]: using channel 398
Jun 24 13:38:49 nekade pppd[30363]: Using interface ppp0
Jun 24 13:38:49 nekade pppd[30363]: Connect: ppp0 <--> /dev/pts/3
Jun 24 13:38:50 nekade pppd[30363]: rcvd [LCP ConfReq id=0x1 <mru 1492> <magic 
0xcac17cf4>]
Jun 24 13:38:50 nekade pppd[30363]: sent [LCP ConfReq id=0x1 <auth chap MD5> 
<magic 0xf7c9c60a>]
Jun 24 13:38:50 nekade pppd[30363]: sent [LCP ConfAck id=0x1 <mru 1492> <magic 
0xcac17cf4>]
Jun 24 13:38:50 nekade pppd[30363]: rcvd [LCP ConfNak id=0x1 <auth chap 
MS-v2>]
Jun 24 13:38:50 nekade pppd[30363]: sent [LCP ConfReq id=0x2 <auth pap> <magic 
0xf7c9c60a>]
Jun 24 13:38:50 nekade pppd[30363]: rcvd [LCP ConfAck id=0x2 <auth pap> <magic 
0xf7c9c60a>]
Jun 24 13:38:50 nekade pppd[30363]: sent [LCP EchoReq id=0x0 magic=0xf7c9c60a]
Jun 24 13:38:50 nekade pppd[30363]: rcvd [LCP EchoReq id=0x0 magic=0xcac17cf4]
Jun 24 13:38:50 nekade pppd[30363]: sent [LCP EchoRep id=0x0 magic=0xf7c9c60a]
Jun 24 13:38:50 nekade pppd[30363]: rcvd [PAP AuthReq id=0x1 user="peyo" 
password="private"]
Jun 24 13:38:52 nekade pppd[30363]: sent [PAP AuthNak id=0x1 ""]
Jun 24 13:38:52 nekade pppd[30363]: PAP peer authentication failed for peyo
Jun 24 13:38:52 nekade pppd[30363]: sent [LCP TermReq id=0x3 "Authentication 
failed"]
Jun 24 13:38:52 nekade pppd[30363]: rcvd [LCP EchoRep id=0x0 magic=0xcac17cf4]
Jun 24 13:38:52 nekade pppd[30363]: rcvd [LCP TermReq id=0x2 "Failed to 
authenticate ourselves to peer"]
Jun 24 13:38:52 nekade pppd[30363]: sent [LCP TermAck id=0x2]
Jun 24 13:38:52 nekade pppd[30363]: rcvd [LCP TermAck id=0x3]
Jun 24 13:38:52 nekade pppd[30363]: Connection terminated.

С други думи, очевидно заявката е PAP, но идея си нямам какво трябва да върне 
радиуса. Или въобще що за безумие съм сътворил и как да го направя работещо?
Хм...
auth: No authenticate method (Auth-Type) configuration found for the request: 
Rejecting the user

Ама нали уж съм му го казал какъв да е?
Къде бъркам в схемата с PAP?

Всякаква помоща май ще ми бъде от полза:)
Благодаря за вниманието. 

-- 
---
"Времето е еднопосочно. 
Няма начин да се върнеш назад,
за да си допиеш."
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.