Перейти до

Разработка модуля Vpn (radius) для Stg 2.4


Рекомендованные сообщения

Внимание с данного дня пошёл месяц на сбор новых фишек.

Прошу рассмотреть возможность добавления mschapv2.

Без нее плохо. (((

я тоже прошу.

 

Обращение к разработчикам VPN модуля :

 

ПОЖАЛУЙСТО!! сделайте описание модуля - и что он может, а что нет!

Как сделал Alferov с STG-WEB. Я намучался - мне хватило, так зачем что бы остальные мучались.

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 80
  • Створено
  • Остання відповідь

Top Posters In This Topic

сделайте описание модуля - и что он может, а что нет!

А чего там описывать то? Это ж стандартный радиус. Почитай RFC.

:argh: а что он может , а что нет!

где было написанно что он ещё не держит mschapv2 ????

Ссылка на сообщение
Поделиться на других сайтах
Сначала благодарность разработчикам, за прекрасный модуль.

Потом, обида на них, за отсутствие какой либо помощи ( думал что за спонсорство этого модуля поможет, разработчики - хоть как то будут помогать -  но ошибся !!! ).

 

а теперь вопрос - в логах статистики светится всего лишь 0.0.0.0 - это правильно? или это я ещё не докопался до истины.

странно...

Я же в асе написал, вам всё, для понимания работы необходимо читать RFC радиуса!

Мне не понятно что за обиды на нас? i.gif

Что именно из того что обещали мы не выполнили? Тот путь первый бросит в меня камень!

Ссылка на сообщение
Поделиться на других сайтах
Внимание с данного дня пошёл месяц на сбор новых фишек.

Прошу рассмотреть возможность добавления mschapv2.

Без нее плохо. (((

ок! сделаем!

Ссылка на сообщение
Поделиться на других сайтах
сделайте описание модуля - и что он может, а что нет!

А чего там описывать то? Это ж стандартный радиус. Почитай RFC.

ага! я ему в асю тоже написал.... :rrr:

Вообще правильный подход должен подразумевать хотя бы беглое ознакомление с технологией с которой собираетесь работать, а не услышать ВПН и разу бросаться на него. Если бы вы ознакомились должным образом с технологией, то задавали бы уточняющие вопросы на которые я отчечу без проблем, а не фундаментальные, на котрые отвечать нет не сил, ни времени, ни желания!

Ссылка на сообщение
Поделиться на других сайтах
сделайте описание модуля - и что он может, а что нет!

А чего там описывать то? Это ж стандартный радиус. Почитай RFC.

:argh: а что он может , а что нет!

где было написанно что он ещё не держит mschapv2 ????

а где написано в RFC что он должен это уметь?

http://www.unix.org.ua/rfc/rfc2058.html самый низ, видим PAP и CHAP, по желаниям трудящихся сделали EAP.

Ссылка на сообщение
Поделиться на других сайтах

и вообще читайте внимательней данный топик, и обязательно сначала!

Для тех кто в танке: http://local.com.ua/forum/index.php?showtopic=8241&st=0 читать до просветления :)

Ссылка на сообщение
Поделиться на других сайтах
а теперь вопрос - в логах статистики светится всего лишь 0.0.0.0 - это правильно? или это я ещё не докопался до истины.

На сколько я помню сегодня я вам в асе ответил по данному вопросу, но для тех кто в танке, а так же для тех кто не всё ещё не догадался прочитать RFC (RADIUS), повторю: ВПН сервер отдаёт стату о трафике радиус-серверу по протокул радиус, в виде общего количества байт переданных за сессию, и только. Это означает что данные о dst и src стг не передаются. Вопросы есть?

Ссылка на сообщение
Поделиться на других сайтах

Уважаемые ВСЕ! я с вас смеюсь!!!

Вы что специально прикидываитеся??? только не нежно делать вид что вы не поняли мои вопросы. Что вы блин за люди, пытаетесь всё усложнить.

Отсылать доку может и правильно, но я от куда знаю на сколько доделан модуль - может он только может быть модулем и всё т.е просто загружаться и нечего не делать.

Повторяю ещё раз - спасибо большое за разработки. Честь и хвала вам! Если вы считаете ч вопрос глупым - не отвечайте, но люди будут продолжать мучатся.

Обиды не на вас - а на положение всей системы и мануала к ней - есть система, а вот как ей пользоваться - ХЗ.

MAX:

Прежде чем на меня наежать - сверьте время вопроса форума - и начало разговора в аси ( ну представил что разговор это 5 сообщений в 5 минут ).

Ссылка на сообщение
Поделиться на других сайтах

странно как то видеть сначала это:

а теперь вопрос - в логах статистики светится всего лишь 0.0.0.0 - это правильно? или это я ещё не докопался до истины.

 

потом рекомендацию почитать стандарт, где все(!!!) написано

 

а потом опять вопрос:

Отсылать доку может и правильно, но я от куда знаю на сколько доделан модуль - может он только может быть модулем и всё т.е просто загружаться и нечего не делать.

 

Если нет понимания как работает радиус, то зачем вообще заморачиваться этим?

В Вашем случае вариантов ровно два.

1. почитать таки RFC.

2. ничего не делать.

 

В любом случае считаю необоснованными любые обиды по причине "отсутствия мануала". Документации в инете полно. Как в первозданном виде, так и переводы RFC. Обижаться надо на себя - за лень! С чего Вы решили, что кто то будет Вам читать лекции по радиусу? Я так понимаю, мы тут биллинг обсуждаем, а не ликбезом занимаемся. :)

ИМХО.

 

RTFM.

Ссылка на сообщение
Поделиться на других сайтах
а теперь вопрос - в логах статистики светится всего лишь 0.0.0.0 - это правильно? или это я ещё не докопался до истины.

 

потом рекомендацию почитать стандарт, где все(!!!) написано

а где там будет написано, что можно использовать другой модуль STG для захвата трафика ??? даже на оффсайте этого нету!! не где этого нету !

 

Ладно, мы так и не поняли друг друга. Я не просил не от кого лекций. Я в первый раз работаю с Linux , чего-то ещё не понял - а время поджимает. Попросил помощи - у тех кто на этом пингвина съел, но зря – услышал только насмешки, и так не получил её. Перебрать всю доку за короткие сроки сильно сложно.

Да и какая тут может быть лень??? я за эти дни чуть с ума не сошёл от избытка инфы !!!

 

Жду релиза модуля. :)=)

Ссылка на сообщение
Поделиться на других сайтах
А при чем тут linux?

Вроде о радиусе речь идет? Это абсолютно разные вещи, живущие отдельно друг от друга.

ладно довайте закроем этот разгвор т.к мы не одни на этом форуме. Так спорить можно много и долго.

Ссылка на сообщение
Поделиться на других сайтах

Не, я вот считаю, что хотябы легкую доку надо бы сварганить для этого дела, ну хотя бы в режиме: настраиваем pppd+pptp и называем все это NAS, настраиваем radius и так его и называем..... прикручиваем к radius модуль stg и никак его не называем.... бла бла бла - бо ну не понятно пока нифига как это работает. Непонятно что будет с детальной статистикой, непонятно как это отразится на модуле mysql

Вобщем дока нужна.... я понимаю что автор не обязан тут распинаться если ему это не хочется, но может найдется доброволец, которому будет не в западло объяснить хоть что-то.... ведь не все здесь родились с клавой в руках и многие учатся на своих ошибках, хотя можно было бы учиться на чужих. Спасибо если дочитали до конца.

Ссылка на сообщение
Поделиться на других сайтах

Не будет там детальной статистики. Потому как НАС просто считает пакеты, прошедшие через него и отдает этот счетчик в радиус (биллинг).

Все это написано в RFC. :)

Ссылка на сообщение
Поделиться на других сайтах
Не будет там детальной статистики. Потому как НАС просто считает пакеты, прошедшие через него и отдает этот счетчик в радиус (биллинг).

Все это написано в RFC. :)

Я где-то как-то догадался ) т.к. чуть-чуть читаю всетаки. Но неудовлетворенность осталась.

Ссылка на сообщение
Поделиться на других сайтах

непонятно какую доку вам нада?

Просто схем работы радиуса много! И с ВПН, и со свитчами (dot1x), и с цысками умеющими радиус, да хоть с модемными пулами... всё расписывать устанет рука (темболее что идёт привязка к производителю)! В инете полно доков по настройке данных связок. И если после их прочтения останутся вопросы - ответим.

Важно понимать что модуль радиуса для наса выступает полноценным радиус сервером. И уже плесать нада от этого!

А доки пишутся на коммерческие продукты, данный модуль изначально не коммерческий.

Ссылка на сообщение
Поделиться на других сайтах
Важно понимать что модуль радиуса для наса выступает полноценным радиус сервером. И уже плесать нада от этого!

Собственно это все что от вас требовалось!!!!!!!

а какого рода доку - я описал см. выше...

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

Пара вопросов.

1) Можно ли использовать модуль только для авторизации (без аккаунтинга), а траф считать как обычно ?

2) В каком состоянии модуль ? Набрана ли нужная сумма или нужно ещё помочь ?

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах
Пара вопросов.

1) Можно ли использовать модуль только для авторизации (без аккаунтинга), а траф считать как обычно ?

2) В каком состоянии модуль ? Набрана ли нужная сумма или нужно ещё помочь ?

Спасибо.

1) да можно, всё решается опциями конфига

2) На данный момент жалоб от тестеров не поступало если не ошибаюсь гдето месяца 2, значит можно назвать стабле

Сумма нужна всегда, минимум 10 баксов, максимум не ограничиваем :)

Ссылка на сообщение
Поделиться на других сайтах

Привет Всем.

 

Народ всетаки сложностей в настройке модуля ВПН нет.

Того что описали в плане настройки модуля мне хватило для того чтоб настроить модуль, я чесно говоря толком пока не вникал как работает сам протокол radius но все получилось практически с первого пинка.

Оговорюсь сразу модуль использую совместно с TotalControl NetServer (это готовый диал-ап сервер от US-Robotics).

Ссылка на сообщение
Поделиться на других сайтах

Решил написать небольшой патч для привязки аккаунтов к CallingStationID.

 

Используется поле UserData0 (можно поменять на любое другое), добавлять новое поле не стал, так как надо менять конфигуратор тогда.

 

В поле можно вписывать любые значения через запятую или пробел (для pppoe передается MAC для pptp IP) при наличии полного соответствия доступ разрешается, если оставить поле пустым проверка не производится.

 

--- radius_ia.cpp.proto 2007-04-10 22:21:51.000000000 +0400
+++ radius_ia.cpp       2007-08-24 13:39:06.000000000 +0400
@@ -108,7 +108,7 @@
//----------------------------------------------------------------

const string RADIUS_IA::GetVersion() const{
-    return "Radius modul version 0.72alpha";
+    return "Radius authorizator&accounter version 0.82alpha with CallingStationID check";
};
//----------------------------------------------------------------
void RADIUS_IA::SetUsers(USERS * u){
@@ -337,6 +336,34 @@
        return 0;
    };

+    //Calling station ID check (MAC or IP)
+    if(ui->property.userdata0.Get().size())
+    {
+        if(RequestPacket.FindAttribute(CallingStationId))
+        {
+           string station_id=RequestPacket.GetStringField(CallingStationId).c_str();
+            printfd(__FILE__,"CallingStationId: %s\n",station_id.c_str());
+
+           char * str = new char[ui->property.userdata0.Get().size() + 1];
+           strcpy(str,ui->property.userdata0.Get().c_str());
+           char * pstr = str;
+           char * c_id;
+
+           while ((c_id = strtok(pstr, ", ")))
+           {
+               pstr = NULL;
+               if(c_id==station_id)
+                   break;
+           }
+
+            if (!c_id)
+                SendReject(RequestPacket,"Invalid CallingStationID",cliaddr);
+           delete[] str;
+        }
+       else
+            SendReject(RequestPacket,"NOT found CallingStationID attr",cliaddr);
+    }
+
    //PAP
    if (RequestPacket.FindAttribute(UserPassword)) {
        printfd(__FILE__,"Find PAP password!!! attr\n");

 

П.С. По хорошему надо юзать уже сделанную автором систему USER_IPS но для патча на коленках сойдет, если идея заинтересует разработчиков модуля то ее можно переписать красиво с добавлением новых полей и созданием нормальной функции проверки.

Ссылка на сообщение
Поделиться на других сайтах

Тогда лучше отдайте вот этот, тут еще добавлена проверка NASIPAddress чтобы клиент авторизовался именно на том NAS который указан у него в конфиге, без такой проверки довольно легко нарушить работу системы с несколькими НАСами и скриптами OnConnect/OnDisconnect

 

--- radius_ia.cpp.proto 2007-04-10 22:21:51.000000000 +0400
+++ radius_ia.cpp       2007-08-24 17:20:37.000000000 +0400
@@ -108,7 +108,7 @@
//----------------------------------------------------------------

const string RADIUS_IA::GetVersion() const{
-    return "Radius modul version 0.72alpha";
+    return "Radius authorizator&accounter version 0.81beta with CallingStationID&NASIP check";
};
//----------------------------------------------------------------
void RADIUS_IA::SetUsers(USERS * u){
@@ -337,6 +336,64 @@
        return 0;
    };

+    //NAS IP check
+
+    if(ui->property.nas.Get().size())
+    {
+        if(RequestPacket.FindAttribute(NASIPAddress))
+        {
+           unsigned int nas_ip=RequestPacket.GetIntField(NASIPAddress);
+
+           printfd(__FILE__,"NASIPAddress: %u\n",nas_ip);
+
+            if(htonl(nas_ip)!=inet_addr(ui->property.nas.Get().c_str()))
+           {
+                SendReject(RequestPacket,"Request from invalid NAS",cliaddr);
+               printfd(__FILE__,"Request from invalid NAS\n");
+           }
+        }
+       else
+       {
+            SendReject(RequestPacket,"NOT found NASIPAddress attr",cliaddr);
+           printfd(__FILE__,"NOT found NASIPAddress attr\n");
+       }
+    }
+
+    //Calling station ID check (MAC or IP)
+    if(ui->property.userdata0.Get().size())
+    {
+        if(RequestPacket.FindAttribute(CallingStationId))
+        {
+           string station_id=RequestPacket.GetStringField(CallingStationId).c_str();
+            printfd(__FILE__,"CallingStationId: %s\n",station_id.c_str());
+
+           char * str = new char[ui->property.userdata0.Get().size() + 1];
+           strcpy(str,ui->property.userdata0.Get().c_str());
+           char * pstr = str;
+           char * c_id;
+
+           while ((c_id = strtok(pstr, ", ")))
+           {
+               pstr = NULL;
+               if(c_id==station_id)
+                   break;
+           }
+
+            if (!c_id)
+           {
+                SendReject(RequestPacket,"Invalid CallingStationID",cliaddr);
+               printfd(__FILE__,"Invalid CallingStationID: %s\n",station_id.c_str());
+           }
+
+           delete[] str;
+        }
+       else
+       {
+            SendReject(RequestPacket,"NOT found CallingStationID attr",cliaddr);
+           printfd(__FILE__,"NOT found CallingStationID attr\n");
+       }
+    }
+
    //PAP
    if (RequestPacket.FindAttribute(UserPassword)) {
        printfd(__FILE__,"Find PAP password!!! attr\n");

 

Патчи тестились и написаны под последнюю бету выложенную автором и модуль радиуса 0.81бета.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...