Jump to content

MOD_RADIUS for Stargazer


Recommended Posts

...

core файл могу выложить если нужно

Можешь упаковать core-файл вместе со всеми бинарями и конфигом в архив? Хотя и так уже кое-что видно, но лишним не будет.

Link to post
Share on other sites
  • Replies 131
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Меня не настораживает. Все правильно. Текущий адрес перед отключением сбрасывается в 0.     По сравнению с 2.406 добавилась отложенная реакция на некоторые события. Надо бы собрать с дебагом и пос

Уже нашел ошибку. В плагине для мускула не проверяется вариант когда запрос не вернул ни одной строки. Считается что запрошенный логин всегда существует. Патч приведу позже. Может быть завтра.

Конечно отличаются. Во первых это отладочная сборка - они содержат в себе отладочную информацию. Во вторых при make install-bin копирование происходит средствами утилиты install которая делает strip в

...

core файл могу выложить если нужно

Можешь упаковать core-файл вместе со всеми бинарями и конфигом в архив? Хотя и так уже кое-что видно, но лишним не будет.

Уже нашел ошибку. В плагине для мускула не проверяется вариант когда запрос не вернул ни одной строки. Считается что запрошенный логин всегда существует. Патч приведу позже. Может быть завтра.

Link to post
Share on other sites

...

core файл могу выложить если нужно

Можешь упаковать core-файл вместе со всеми бинарями и конфигом в архив? Хотя и так уже кое-что видно, но лишним не будет.

выложил http://skyprox.net.ru/upload/stg_debug.tar.gz

 

кстати вопрос, модули и библиотеки которые при make install помещаются в /usr/lib отличаются по размеру от тех собираются при сборке стг, это нормально?

Link to post
Share on other sites

...

core файл могу выложить если нужно

Можешь упаковать core-файл вместе со всеми бинарями и конфигом в архив? Хотя и так уже кое-что видно, но лишним не будет.

выложил http://skyprox.net.ru/upload/stg_debug.tar.gz

 

кстати вопрос, модули и библиотеки которые при make install помещаются в /usr/lib отличаются по размеру от тех собираются при сборке стг, это нормально?

Конечно отличаются. Во первых это отладочная сборка - они содержат в себе отладочную информацию. Во вторых при make install-bin копирование происходит средствами утилиты install которая делает strip всем бинарникам "вычищая" лишнюю информацию из них.

Link to post
Share on other sites

Конечно отличаются. Во первых это отладочная сборка - они содержат в себе отладочную информацию. Во вторых при make install-bin копирование происходит средствами утилиты install которая делает strip всем бинарникам "вычищая" лишнюю информацию из них.

спасибо за информацию :)

патч приблизительно когда будет готов?

 

PS. напомню, авторизуется даже при отрицательном балансе

Link to post
Share on other sites

Конечно отличаются. Во первых это отладочная сборка - они содержат в себе отладочную информацию. Во вторых при make install-bin копирование происходит средствами утилиты install которая делает strip всем бинарникам "вычищая" лишнюю информацию из них.

спасибо за информацию :)

патч приблизительно когда будет готов?

 

PS. напомню, авторизуется даже при отрицательном балансе

quick&dirty:

diff --git a/projects/stargazer/plugins/store/mysql/mysql_store.cpp b/projects/stargazer/plugins/store/mysql/mysql_store.cpp                                                     
index fefadd5..f62a846 100644                                                                                                                                                    
--- a/projects/stargazer/plugins/store/mysql/mysql_store.cpp                                                                                                                     
+++ b/projects/stargazer/plugins/store/mysql/mysql_store.cpp                                                                                                                     
@@ -711,6 +711,13 @@ if (!(res=mysql_store_result(sock)))                                                                                                                        
    return -1;                                                                                                                                                                  
}                                                                                                                                                                               

+if (mysql_num_rows(res) != 1)                                                                                                                                                   
+{                                                                                                                                                                               
+    errorStr = "User not found";                                                                                                                                                
+    mysql_close(sock);                                                                                                                                                          
+    return -1;                                                                                                                                                                  
+}                                                                                                                                                                               
+                                                                                                                                                                                
row = mysql_fetch_row(res);

string param;

Решает проблему с падением. По поводу авторизации при отрицательном балансе баг пока висит в треккере.

Link to post
Share on other sites

quick&dirty:

diff --git a/projects/stargazer/plugins/store/mysql/mysql_store.cpp b/projects/stargazer/plugins/store/mysql/mysql_store.cpp                                                     
index fefadd5..f62a846 100644                                                                                                                                                    
--- a/projects/stargazer/plugins/store/mysql/mysql_store.cpp                                                                                                                     
+++ b/projects/stargazer/plugins/store/mysql/mysql_store.cpp                                                                                                                     
@@ -711,6 +711,13 @@ if (!(res=mysql_store_result(sock)))                                                                                                                        
    return -1;                                                                                                                                                                  
}                                                                                                                                                                               

+if (mysql_num_rows(res) != 1)                                                                                                                                                   
+{                                                                                                                                                                               
+    errorStr = "User not found";                                                                                                                                                
+    mysql_close(sock);                                                                                                                                                          
+    return -1;                                                                                                                                                                  
+}                                                                                                                                                                               
+                                                                                                                                                                                
row = mysql_fetch_row(res);

string param;

Решает проблему с падением. По поводу авторизации при отрицательном балансе баг пока висит в треккере.

получилось пропатчить, только немного поправил патч вот так для того чтобы корректно создать патч в nano

--- projects/stargazer/plugins/store/mysql/mysql_store.cpp
+++ projects/stargazer/plugins/store/mysql/mysql_store.cpp
@@ -711,6 +711,13 @@ if (!(res=mysql_store_result(sock)))
    return -1;
}

+if (mysql_num_rows(res) != 1)
+{
+    errorStr = "User not found";
+    mysql_close(sock);
+    return -1;
+}
+
row = mysql_fetch_row(res);

string param;

 

madf, большое спасибо! всё отлично! :) осталось дело за малым

Link to post
Share on other sites

.....По поводу авторизации при отрицательном балансе баг пока висит в треккере.

А как же с Accounting быть???

И как быть, если в дистре только 1й радиус?

Можно патчи отдельно сделать, что бы паралельно под две ветки радиуса были плагины???

Link to post
Share on other sites

.....По поводу авторизации при отрицательном балансе баг пока висит в треккере.

А как же с Accounting быть???

И как быть, если в дистре только 1й радиус?

Можно патчи отдельно сделать, что бы паралельно под две ветки радиуса были плагины???

да мы тут как бы с первым радиусом боремся :)

под второй никаких манов и примеров конфига нет пока

Link to post
Share on other sites

.....По поводу авторизации при отрицательном балансе баг пока висит в треккере.

А как же с Accounting быть???

И как быть, если в дистре только 1й радиус?

Можно патчи отдельно сделать, что бы паралельно под две ветки радиуса были плагины???

Пока никак.

Это что за такой дистр необновляемый? Сейчас 2-й уже везде впихнули.

Патч был на модуль для работы с MySQL.

Link to post
Share on other sites

Пока никак.

Это что за такой дистр необновляемый? Сейчас 2-й уже везде впихнули.

Патч был на модуль для работы с MySQL.

жаль((

я бы поучаствовал.

дистр: CentOS 5

[root@stg ~]# cat /etc/redhat-release 
CentOS release 5.5 (Final)
[root@stg ~]# rpm -q freeradius
freeradius-1.1.3-1.6.el5

на чем есть, на том и работаем...

ну патчем то понятно)

 

ps хотя вопрос сниматся, как дурацкий:

[root@stg ~]# yum list freeradius2
freeradius2.x86_64                                                             2.1.7-7.el5                                                              base

Link to post
Share on other sites

ещё хотелось бы чтобы авторизовать можно было только столько сессий сколько ip адресов прописано в конфигурации учётной записи юзера

Link to post
Share on other sites

ещё хотелось бы чтобы авторизовать можно было только столько сессий сколько ip адресов прописано в конфигурации учётной записи юзера

Никак нельзя. Stargazer умеет работать только с одним IP-адресом для одной учетки. Даже если их там прописано много - авторизован будет только один.

Link to post
Share on other sites

Никак нельзя. Stargazer умеет работать только с одним IP-адресом для одной учетки. Даже если их там прописано много - авторизован будет только один.

авторизуюсь с 2 разных машин под одним логином и паролем, на обоих работает :)

Link to post
Share on other sites

Никак нельзя. Stargazer умеет работать только с одним IP-адресом для одной учетки. Даже если их там прописано много - авторизован будет только один.

авторизуюсь с 2 разных машин под одним логином и паролем, на обоих работает :)

Одновременно?!

Link to post
Share on other sites

Одновременно?!

ошибся, авторизуется с обоих машин и в момент авторизации на второй пропадает интернет и на первой

Link to post
Share on other sites

Одновременно?!

ошибся, авторизуется с обоих машин и в момент авторизации на второй пропадает интернет и на первой

Нет, даже такого быть не может. Оно при попытке авторизации с другого IP скажет что "Ваш логин уже испольуется" и не авторизует.

Link to post
Share on other sites

Никак нельзя. Stargazer умеет работать только с одним IP-адресом для одной учетки. Даже если их там прописано много - авторизован будет только один.

Присоединяюсь к пожеланию. Может в todo?

Link to post
Share on other sites

Никак нельзя. Stargazer умеет работать только с одним IP-адресом для одной учетки. Даже если их там прописано много - авторизован будет только один.

Присоединяюсь к пожеланию. Может в todo?

Для реализации этого придется перелопатить половину кода Stargazer'а. Так что точно не в 2.407.

Link to post
Share on other sites
  • 2 weeks later...

Заметил, что у стандартного rlm_stg фича(бага):

когда у юзера "минус", или отключен или заморожен - он все равно авторизует логин на ВПН-сервере.

Это так и должно быть?

Странно. Я бы сказал что такого не может быть. Для определения того, авторизовывать пользователя или нет, используется вызов USER::IsInetable, который как раз и обрабатывает disabled, passive, freeMb, credit и cash. Прошу еще раз внимательно это проверить.

уважаемый madf, всё таки это действительно баг или что-то настроено не так?

Link to post
Share on other sites

Заметил, что у стандартного rlm_stg фича(бага):

когда у юзера "минус", или отключен или заморожен - он все равно авторизует логин на ВПН-сервере.

Это так и должно быть?

Странно. Я бы сказал что такого не может быть. Для определения того, авторизовывать пользователя или нет, используется вызов USER::IsInetable, который как раз и обрабатывает disabled, passive, freeMb, credit и cash. Прошу еще раз внимательно это проверить.

уважаемый madf, всё таки это действительно баг или что-то настроено не так?

Если это действительно так то это баг.

Но подтвердить пока не смог.

Link to post
Share on other sites

Если это действительно так то это баг.

Но подтвердить пока не смог.

готов помочь и по содействовать, можно по асе 153908318

Link to post
Share on other sites

или может быть исправить баг в rlm_stg от последней сборки rc2?

ip-test:~# /sbin/radiusd -X
Starting - reading configuration files ...
reread_config:  reading radiusd.conf
Config:   including file: /etc/raddb/proxy.conf
Config:   including file: /etc/raddb/clients.conf
Config:   including file: /etc/raddb/snmp.conf
Config:   including file: /etc/raddb/eap.conf
main: prefix = "/"
main: localstatedir = "/var"
main: logdir = "/var/log/freeradius"
main: libdir = "/lib/"
main: radacctdir = "/var/log/freeradius/radacct"
main: hostname_lookups = no
main: max_request_time = 30
main: cleanup_delay = 5
main: max_requests = 1024
main: delete_blocked_requests = 0
main: port = 0
main: allow_core_dumps = no
main: log_stripped_names = no
main: log_file = "/var/log/freeradius/radius.log"
main: log_auth = no
main: log_auth_badpass = no
main: log_auth_goodpass = no
main: pidfile = "/var/run/freeradius.pid"
main: user = "root"
main: group = "root"
main: usercollide = no
main: lower_user = "no"
main: lower_pass = "no"
main: nospace_user = "no"
main: nospace_pass = "no"
main: checkrad = "//sbin/checkrad"
main: proxy_requests = yes
proxy: retry_delay = 5
proxy: retry_count = 3
proxy: synchronous = no
proxy: default_fallback = yes
proxy: dead_time = 120
proxy: post_proxy_authorize = no
proxy: wake_all_if_all_dead = no
security: max_attributes = 200
security: reject_delay = 1
security: status_server = no
main: debug_level = 0
read_config_files:  reading dictionary
read_config_files:  reading naslist
Using deprecated naslist file.  Support for this will go away soon.
read_config_files:  reading clients
read_config_files:  reading realms
radiusd:  entering modules setup
Module: Library search path is /lib
Ошибка сегментирования
ip-test:~#

 

сейчас работает от rc1

Link to post
Share on other sites
  • 1 year later...

доброго времени суток,

пытаюсь заставить работать связку: accel-ppp+rlm_stg+stargazer на centos6 x64

в момент авторизации получаю:

Debug: rlm_stg: stg_authorize()
Ошибка сегментирования

в исходниках в этом месте:

   DEBUG("rlm_stg: stg_authorize()");

   uname = pairfind(request->packet->vps, PW_USER_NAME);
   if (uname) {
    DEBUG("rlm_stg: stg_authorize() user name defined as '%s'", uname->vp_strvalue);
   } else {
    DEBUG("rlm_stg: stg_authorize() user name undefined");
    return RLM_MODULE_FAIL;
   }

 

т.е. что-то не так с uname, кто силен в кодинге? Хелп...

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...