Как я понял избитая тема но всё же Radius + eDir + Шлюз

Обсуждение технических вопросов по продуктам Novell под Linux, а также *nix систем

Как я понял избитая тема но всё же Radius + eDir + Шлюз

Сообщение Андрей ака Linuxoid » 01 апр 2006, 14:58

Есть задумка обеспечить авторизацию пользователей шлюза в инет через eDir.
Почитав тут на форуме некотрые обсуждения понял что народ пытается это сделать или уже каким-то образом сделал.
Задумка такая:
1) Шлюзовой сервак в инет под линуксом на нём поднято:
a) PPTP server with radius plug-in
b) FreeRadius --with-edir
c) Traffic Collector (ipcad or ndsad or nacctd) > Billing system
d) transparant proxy (squid)
e) nat
тут всё понятно.

Непонятно тут:
2) FreeRadius общается с сервером на котором eDir и извлекает следующую инфу:
Имя и пароль это понятно
Но вот как-бы извлечь привязанный к пользователю ip который будет выдаваться в тунеле сервером PPTPD
- тут не могу додуматься.
Как это реализовать?
----------------------------------
Век живи - век учись!
Аватара пользователя
Андрей ака Linuxoid
 
Сообщения: 7
Зарегистрирован: 31 мар 2006, 10:08

Re: Как я понял избитая тема но всё же Radius + eDir + Шлюз

Сообщение Сергей.М. » 03 апр 2006, 05:55

Андрей ака Linuxoid писал(а):Есть задумка обеспечить авторизацию пользователей шлюза в инет через eDir.
Почитав тут на форуме некотрые обсуждения понял что народ пытается это сделать или уже каким-то образом сделал.
Задумка такая:
1) Шлюзовой сервак в инет под линуксом на нём поднято:
a) PPTP server with radius plug-in
b) FreeRadius --with-edir
c) Traffic Collector (ipcad or ndsad or nacctd) > Billing system
d) transparant proxy (squid)
e) nat
тут всё понятно.

Непонятно тут:
2) FreeRadius общается с сервером на котором eDir и извлекает следующую инфу:
Имя и пароль это понятно
Но вот как-бы извлечь привязанный к пользователю ip который будет выдаваться в тунеле сервером PPTPD
- тут не могу додуматься.
Как это реализовать?


Вообщето если Вы привязываетесь к имени/паролю, то логичней и биллинг вести по данным параметрам, а не привязываться к ip адресу.
Но если Вам так хочется, то присваивайте IP пользователю через радиус.
Аватара пользователя
Сергей.М.
 
Сообщения: 189
Зарегистрирован: 06 июн 2002, 08:14

pptpd

Сообщение skoltogyan » 03 апр 2006, 09:58

штатный pptpd поддерживает до 100 сессий
skoltogyan
 
Сообщения: 2037
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

IP

Сообщение Андрей ака Linuxoid » 03 апр 2006, 11:11

Мне хочется следующее:
завёл пользователя в eDir и он может залогироваться уже через pptpd или
skoltogyan писал(а):штатный pptpd поддерживает до 100 сессий

mpd, если хотите.
Не хочется каждый раз конфиг radiusa править.
Остаётся в биллинге завести соответсвующего пользователя.
----------------------------------
Век живи - век учись!
Аватара пользователя
Андрей ака Linuxoid
 
Сообщения: 7
Зарегистрирован: 31 мар 2006, 10:08

повторяю

Сообщение skoltogyan » 03 апр 2006, 18:24

То, что "Мне хочется следующее:..." оно работает.
Просто если использовать штатный pptpd, то будет не более 100 одновременных соединений держать pptpd
skoltogyan
 
Сообщения: 2037
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

ip

Сообщение Андрей ака Linuxoid » 04 апр 2006, 02:30

Каким образом в тунеле к пользоателю из еДир привязать ip?
Как это реализовать?
----------------------------------
Век живи - век учись!
Аватара пользователя
Андрей ака Linuxoid
 
Сообщения: 7
Зарегистрирован: 31 мар 2006, 10:08

мне подсказали

Сообщение Андрей ака Linuxoid » 04 апр 2006, 12:29

в конфиге радиуса есть такой параметр:
access_attr = "radiusFramedIPAddress"
radiusFramedIPAddress это аттрибут из OpenLDAP из схемы objectClass: radiusprofile
буду пытаться расширить схему nds
----------------------------------
Век живи - век учись!
Аватара пользователя
Андрей ака Linuxoid
 
Сообщения: 7
Зарегистрирован: 31 мар 2006, 10:08

Re: мне подсказали

Сообщение Михаил Григорьев » 05 апр 2006, 07:26

Андрей ака Linuxoid писал(а):в конфиге радиуса есть такой параметр:
access_attr = "radiusFramedIPAddress"
radiusFramedIPAddress это аттрибут из OpenLDAP из схемы objectClass: radiusprofile
буду пытаться расширить схему nds


Вообще говоря, access_attr может быть любого значения, вы можите придумать свою схему и назначить из неё нужные аттрибуты!

Просто в схеме radiusprofile из OpenLDAP за IP адрес, выдаваемый клиенту, отвечает поле radiusFramedIPAddress
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Re: pptpd

Сообщение Михаил Григорьев » 05 апр 2006, 10:26

skoltogyan писал(а):штатный pptpd поддерживает до 100 сессий


MPD тоже не более 99 сессий может создать!

А знаете почему?

Потому что ppp node назначается в виде "mpd<pid>-<name>"
А поскольку длина имени netgraph node ограничена 15 символами, а стандартное обозначение ppp node состоит из "mpdNNNNN-pptpXX", то более 99 нод создать нельзя. :(

Как лечить: Введем новоё именование ppp node, например "mpd-<name>"

тогда вот патчь:

mpd-318-no_limit_99node.diff

Код: Выделить всё
diff -urNb mpd-3.18.orig/src/ngfunc.c mpd-3.18/src/ngfunc.c
--- mpd-3.18.orig/src/ngfunc.c   Tue May  4 22:12:28 2004
+++ mpd-3.18/src/ngfunc.c   Fri May 14 13:43:59 2004
@@ -215,7 +215,7 @@
   newPpp = 1;

   /* Give it a name */
-  snprintf(nm.name, sizeof(nm.name), "mpd%d-%s", getpid(), b->name);
+  snprintf(nm.name, sizeof(nm.name), "mpd-%s", b->name);
   if (NgSendMsg(b->csock, MPD_HOOK_PPP,
       NGM_GENERIC_COOKIE, NGM_NAME, &nm, sizeof(nm)) < 0) {
     Log(LG_ERR, ("[%s] can't name %s node: %s",



А вообще лучше уже на MPD4 переходить!

Я на нем без всяких патчей запустил 1500 тунелей!

Но это опять же если Pid процесса <= 4 знака, а если Pid будет 5 знаков (например 23191) то 3-х значное колич. интерфейсов не поднимется, по описаной выше причине!

P.S. Хотя патчь для MPD4 я уже написал! Он немного подлинее чем для 3.18
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск


Вернуться в *nix

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

cron