LINUX.ORG.RU
решено ФорумAdmin

[freeradius], распледеление user-ов по группам


0

0

Вот помогаю другу и решил сделать репостинг с его имени на лоре
Оригинал http://www.opennet.ru/openforum/vsluhforumID1/87794.html

Версии ПО :
freeradius-1.1.7_4
mysql-server-5.1.39
FreeBSD 8.0-RELEASE

==Оригинал ==
Бьюсь вот уже второй день над тем что бы user во freeradiuse мог пренадлежать двум группам
одновременно. И постояно выходит какой-то глюк. user радотает на одной из групп на второй
радиус его не пропускает. Давая следущую ошибку. Если оставить usera в одной группе то все работает.
Может кто сталкивался и нашел решение. В сети есть люди которые уже сталкивались с этим но решения там не было.

http://readlist.com/lists/lists.freeradius.org/freeradius-us...

Помогите пожалуйста очень нужно.


rad_recv: Access-Request packet from host 10.254.1.14:1645, id=136, length=76
NAS-IP-Address = 10.254.1.14
NAS-Port = 1
NAS-Port-Type = Virtual
User-Name = «timur»
Calling-Station-Id = «10.201.63.1»
User-Password = «test»
Thu Jan 7 15:42:27 2010 : Debug: Processing the authorize section of radiusd.conf
Thu Jan 7 15:42:27 2010 : Debug: modcall: entering group authorize for request 11
Thu Jan 7 15:42:27 2010 : Debug: modsingle[authorize]: calling preprocess (rlm_preprocess) for request 11
Thu Jan 7 15:42:27 2010 : Debug: modsingle[authorize]: returned from preprocess (rlm_preprocess) for request 11
Thu Jan 7 15:42:27 2010 : Debug: modcall[authorize]: module «preprocess» returns ok for request 11
Thu Jan 7 15:42:27 2010 : Debug: modsingle[authorize]: calling sql (rlm_sql) for request 11
Thu Jan 7 15:42:27 2010 : Debug: radius_xlat: 'timur'
Thu Jan 7 15:42:27 2010 : Debug: rlm_sql (sql): sql_set_user escaped user --> 'timur'
Thu Jan 7 15:42:27 2010 : Debug: radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radcheck WHERE Username = 'timur' ORDER BY id'
Thu Jan 7 15:42:27 2010 : Debug: rlm_sql (sql): Reserving sql socket id: 2
Thu Jan 7 15:42:27 2010 : Debug: rlm_sql_mysql: query: SELECT id, UserName, Attribute, Value, op FROM radcheck WHERE Username = 'timur' ORDER BY id
Thu Jan 7 15:42:27 2010 : Debug: radius_xlat: 'SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op FROM radgroupcheck,usergroup WHERE usergroup.Username = 'timur' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id'
Thu Jan 7 15:42:27 2010 : Debug: rlm_sql_mysql: query: SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op FROM radgroupcheck,usergroup WHERE usergroup.Username = 'timur' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id
Thu Jan 7 15:42:27 2010 : Debug: radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radreply WHERE Username = 'timur' ORDER BY id'
Thu Jan 7 15:42:27 2010 : Debug: rlm_sql_mysql: query: SELECT id, UserName, Attribute, Value, op FROM radreply WHERE Username = 'timur' ORDER BY id
Thu Jan 7 15:42:27 2010 : Debug: radius_xlat: 'SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op FROM radgroupreply,usergroup WHERE usergroup.Username = 'timur' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id'
Thu Jan 7 15:42:27 2010 : Debug: rlm_sql_mysql: query: SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op FROM radgroupreply,usergroup WHERE usergroup.Username = 'timur' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id
Thu Jan 7 15:42:27 2010 : Debug: rlm_sql (sql): Released sql socket id: 2
Thu Jan 7 15:42:27 2010 : Info: rlm_sql (sql): No matching entry in the database for request from user [timur]
Thu Jan 7 15:42:27 2010 : Debug: modsingle[authorize]: returned from sql (rlm_sql) for request 11
Thu Jan 7 15:42:27 2010 : Debug: modcall[authorize]: module «sql» returns notfound for request 11
Thu Jan 7 15:42:27 2010 : Debug: modcall: leaving group authorize (returns ok) for request 11
Thu Jan 7 15:42:27 2010 : Debug: auth: No authenticate method (Auth-Type) configuration found for the request: Rejecting the user
Thu Jan 7 15:42:27 2010 : Debug: auth: Failed to validate the user.

mysql> select * from radcheck;
+----+----------+---------------+----+-------+
| id | UserName | Attribute | op | Value |
+----+----------+---------------+----+-------+
| 12 | timur | User-Password | == | test |
+----+----------+---------------+----+-------+

mysql> select * from radreply;
+----+----------+--------------+----+---------------------+
| id | UserName | Attribute | op | Value |
+----+----------+--------------+----+---------------------+
| 3 | timur | Service-Type | := | Administrative-User |
| 4 | timur | cisco-avpair | := | shell:priv-lvl=15 |
+----+----------+--------------+----+---------------------+


mysql> select * from usergroup;
+----------+--------------+----------+
| UserName | GroupName | priority |
+----------+--------------+----------+
| timur | NetworkGroup | 0 |
| timur | DSLAMGroup | 0 |
+----------+--------------+----------+

mysql> select * from radgroupcheck;
+----+--------------+----------------+----+-------------+
| id | GroupName | Attribute | op | Value |
+----+--------------+----------------+----+-------------+
| 8 | NetworkGroup | NAS-IP-Address | == | 10.254.1.13 |
| 9 | DSLAMGroup | NAS-IP-Address | == | 10.254.1.14 |
+----+--------------+----------------+----+-------------+

mysql> select * from radgroupreply;
+----+--------------+--------------+----+---------------------+
| id | GroupName | Attribute | op | Value |
+----+--------------+--------------+----+---------------------+
| 1 | NetworkGroup | cisco-avpair | := | shell:priv-lvl=15 |
| 4 | DSLAMGroup | cisco-avpair | := | shell:priv-lvl=15 |
| 7 | NetworkGroup | Service-Type | := | Administrative-User |
| 8 | DSLAMGroup | Service-Type | := | Administrative-User |
+----+--------------+--------------+----+---------------------+
==Оригинал

★★★★★

Решение - переделать базу, переписать запросы таким образом чтоб обрабатывались ваши группы и отдавались нужные атрибуты. В dialup.conf описано как должны отдаваться атрибуты.

ventilator ★★★ ()
Ответ на: комментарий от pinachet

Создать таблицы таким образом как тебе удобно для реализации твоей задумки, и запросы соответственно. Мне например удобны запросы радиуса как вызовы хранимых процедур постгреса. Если тебе главное завести, запусти руками запросы из лога, посмотри результаты и добавь атрибут Auth-Type который он от тебя хочет.

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