Перейти до

MOD_RADIUS for Stargazer


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

Я его сейчас переписываю. Эту ошибку не исправить легко и она не в этом куске кода. Там проблема в том что Алан ДеКок (как же я его ненавижу) любит менять структуры данных от версии к версии и в результате в функции попадает мусор вместо данных.

У меня уже есть готовое нормальное рабочее решение для другого биллинга, я его адаптирую к Stg.

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

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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

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

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

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

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

Присоединяюсь к человекам, у которых сегфолтится freeradius.

А кроме как через rlm_stg можно как-то подружить stargazer с радиусом?

Ну или подружить pppoe-server со stargazer без использования radius вообще.

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

Присоединяюсь к человекам, у которых сегфолтится freeradius.

А кроме как через rlm_stg можно как-то подружить stargazer с радиусом?

Ну или подружить pppoe-server со stargazer без использования radius вообще.

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

Можно FreeRADIUS подружить с базой Stargazer.

 

Спасибо, буду курить мануалы по FreeRADIUS. И ждать рабочий rlm_stg  :)

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

 

FreeRADIUS получилось подружить с мускульной базой, но хочется чтобы pppoe-server бегал не напрямую в базу, а через stargazer.

 

Глянул ваш модуль, это что нужно. Буду прикручивать его, спасибо.

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

апну бородатую тему

 

пытаюсь воспроизвести что делал 4 года назад, никак не выходит, версия stg-2.407-rc2 с rlm_stg.so от rc1 и freeradius-1.1.6

если получится поднять попробую на 2.408

 

вот radiusd.conf

 

 

prefix = /usr/local
exec_prefix = /usr/local
sysconfdir = /usr/local/etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /usr/local/etc/raddb
radacctdir = /usr/local/var/log/radius/radacct
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/freeradius
log_file = ${logdir}/radius.log
libdir = /usr/local/lib/
pidfile = ${run_dir}/freeradius.pid
user = freerad
group = freerad
max_request_time = 30
delete_blocked_requests = no
cleanup_delay = 5
max_requests = 1024
bind_address = *
port = 0
hostname_lookups = no
allow_core_dumps = no
regular_expressions     = yes
extended_expressions    = yes
log_stripped_names = no
log_auth = no
log_auth_badpass = no
log_auth_goodpass = no
usercollide = no
lower_user = no
lower_pass = no
nospace_user = no
nospace_pass = no
checkrad = ${sbindir}/checkrad
 
security {
        max_attributes = 200
        reject_delay = 1
        status_server = no
}
 
$INCLUDE  ${confdir}/clients.conf
snmp    = no
$INCLUDE  ${confdir}/snmp.conf
 
thread pool {
        start_servers = 5
        max_servers = 32
        min_spare_servers = 3
        max_spare_servers = 10
        max_requests_per_server = 0
}
 
modules {
        pap {
                encryption_scheme = crypt
        }
        chap {
                authtype = CHAP
        }
        mschap {
                use_mppe = yes
                authtype = MS-CHAP
                require_encryption = yes
                #require_strong = yes
                #with_ntdomain_hack = no
        }
        preprocess {
                huntgroups = ${confdir}/huntgroups
                hints = ${confdir}/hints
                with_ascend_hack = no
                ascend_channels_per_line = 23
                with_ntdomain_hack = no
                with_specialix_jetstream_hack = no
                with_cisco_vsa_hack = no
        }
        detail {
                detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
                detailperm = 0600
                #suppress {
                        # User-Password
                #}
        }
        acct_unique {
                key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"
        }
        radutmp {
                filename = ${logdir}/radutmp
                username = %{User-Name}
                case_sensitive = yes
                check_with_nas = yes
                perm = 0600
                callerid = "yes"
        }
        radutmp sradutmp {
                filename = ${logdir}/sradutmp
                perm = 0644
                callerid = "no"
        }
        attr_filter {
                attrsfile = ${confdir}/attrs
        }
        counter daily {
                filename = ${raddbdir}/db.daily
                key = User-Name
                count-attribute = Acct-Session-Time
                reset = daily
                counter-name = Daily-Session-Time
                check-name = Max-Daily-Session
                allowed-servicetype = Framed-User
                cache-size = 5000
        }
        always fail {
                rcode = fail
        }
        always reject {
                rcode = reject
        }
        always ok {
                rcode = ok
                simulcount = 0
                mpp = no
        }
 
        stg {
                local_port = 6667
                server = 127.0.0.1
                port = 6666
                password = 123456
        }
 
}
 
instantiate {
        stg
}
 
authorize {
        preprocess
        chap
        mschap
        stg
}
authenticate {
        Auth-Type PAP {
                stg
                pap
        }
        Auth-Type CHAP {
                stg
                chap
        }
        Auth-Type MS-CHAP {
                stg
                mschap
        }
}
preacct {
        preprocess
        acct_unique
}
 
accounting {
        detail
        radutmp
        stg
}
session {
        radutmp
}
post-auth {
        stg
}
pre-proxy {
}
 
post-proxy {
}
 
вот такой лог, ошибка 691

 

root@debian:/usr/local/etc/raddb# radiusd -X
Starting - reading configuration files ...
reread_config:  reading radiusd.conf
Config:   including file: /usr/local/etc/raddb/clients.conf
Config:   including file: /usr/local/etc/raddb/snmp.conf
 main: prefix = "/usr/local"
 main: localstatedir = "/var"
 main: logdir = "/var/log/freeradius"
 main: libdir = "/usr/local/lib/"
 main: radacctdir = "/usr/local/var/log/radius/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/freeradius.pid"
 main: user = "freerad"
 main: group = "freerad"
 main: usercollide = no
 main: lower_user = "no"
 main: lower_pass = "no"
 main: nospace_user = "no"
 main: nospace_pass = "no"
 main: checkrad = "/usr/local/sbin/checkrad"
 main: proxy_requests = yes
 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
read_config_files:  reading clients
read_config_files:  reading realms
radiusd:  entering modules setup
Module: Library search path is /usr/local/lib
rlm_stg: stg_init()
Module: Loaded stg
rlm_stg: stg_instantiate()
 stg: password = "123456"
 stg: server = "127.0.0.1"
 stg: port = 6666
 stg: local_port = 6667
Module: Instantiated stg (stg)
Module: Loaded PAP
 pap: encryption_scheme = "crypt"
 pap: auto_header = no
Module: Instantiated pap (pap)
Module: Loaded CHAP
Module: Instantiated chap (chap)
Module: Loaded MS-CHAP
 mschap: use_mppe = yes
 mschap: require_encryption = yes
 mschap: require_strong = no
 mschap: with_ntdomain_hack = no
 mschap: passwd = "(null)"
 mschap: ntlm_auth = "(null)"
Module: Instantiated mschap (mschap)
Module: Loaded preprocess
 preprocess: huntgroups = "/usr/local/etc/raddb/huntgroups"
 preprocess: hints = "/usr/local/etc/raddb/hints"
 preprocess: with_ascend_hack = no
 preprocess: ascend_channels_per_line = 23
 preprocess: with_ntdomain_hack = no
 preprocess: with_specialix_jetstream_hack = no
 preprocess: with_cisco_vsa_hack = no
 preprocess: with_alvarion_vsa_hack = no
Module: Instantiated preprocess (preprocess)
Module: Loaded Acct-Unique-Session-Id
 acct_unique: key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"
Module: Instantiated acct_unique (acct_unique)
Module: Loaded detail
 detail: detailfile = "/usr/local/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d"
 detail: detailperm = 384
 detail: dirperm = 493
 detail: locking = no
Module: Instantiated detail (detail)
Module: Loaded radutmp
 radutmp: filename = "/var/log/freeradius/radutmp"
 radutmp: username = "%{User-Name}"
 radutmp: case_sensitive = yes
 radutmp: check_with_nas = yes
 radutmp: perm = 384
 radutmp: callerid = yes
Module: Instantiated radutmp (radutmp)
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1:48163, id=27, length=66
        Service-Type = Framed-User
        Framed-Protocol = PPP
        User-Name = "test123"
        Calling-Station-Id = "10.81.1.124"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 0
  modcall[authorize]: module "preprocess" returns ok for request 0
  modcall[authorize]: module "chap" returns noop for request 0
  modcall[authorize]: module "mschap" returns noop for request 0
rlm_stg: stg_authorize()
rlm_stg: stg_authorize() user name defined as 'test123'
rlm_stg: stg_authorize() request username field: 'test123'
rlm_stg: stg_authorize() Service-Type defined as 'Framed-User'
rlm_stg: stg_authorize() stg status: ''
  modcall[authorize]: module "stg" returns reject for request 0
modcall: leaving group authorize (returns reject) for request 0
Delaying request 0 for 1 seconds
Finished request 0
Going to the next request
--- Walking the entire request list ---
Waking up in 1 seconds...
--- Walking the entire request list ---
Waking up in 1 seconds...
rad_recv: Access-Request packet from host 127.0.0.1:37621, id=26, length=66
        Service-Type = Framed-User
        Framed-Protocol = PPP
        User-Name = "test123"
        Calling-Station-Id = "10.81.1.124"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 0
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 1
  modcall[authorize]: module "preprocess" returns ok for request 1
  modcall[authorize]: module "chap" returns noop for request 1
  modcall[authorize]: module "mschap" returns noop for request 1
rlm_stg: stg_authorize()
rlm_stg: stg_authorize() user name defined as 'test123'
rlm_stg: stg_authorize() request username field: 'test123'
rlm_stg: stg_authorize() Service-Type defined as 'Framed-User'
rlm_stg: stg_authorize() stg status: ''
  modcall[authorize]: module "stg" returns reject for request 1
modcall: leaving group authorize (returns reject) for request 1
Delaying request 1 for 1 seconds
Finished request 1
Going to the next request
Sending Access-Reject of id 27 to 127.0.0.1 port 48163
Waking up in 1 seconds...
--- Walking the entire request list ---
Waking up in 1 seconds...
--- Walking the entire request list ---
Sending Access-Reject of id 26 to 127.0.0.1 port 37621
Waking up in 3 seconds...
--- Walking the entire request list ---
Cleaning up request 0 ID 27 with timestamp 54e5df6f
Waking up in 1 seconds...
--- Walking the entire request list ---
Cleaning up request 1 ID 26 with timestamp 54e5df70
Nothing to do.  Sleeping until we see a request.
Ссылка на сообщение
Поделиться на других сайтах

Чего ж тут непонятного, вот:

  modcall[authorize]: module "stg" returns reject for request 1

Фиг тебе, говорит, а не сервис.

и как вылечить? где поправить что? =)

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

когда ввожу верный логин и пароль, ноль

 

 

modcall[authorize]: module "stg" returns reject for request 0

 

а дальше всё так же

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

Я бы глянул в лог stg.

собранный в дебаге stg в момент попытки авторизации выплёвывает

 

 

radius.cpp > 10:30:58 > RADIUS::ProcessAutzPacket service '' is not allowed to authorize
Ссылка на сообщение
Поделиться на других сайтах

rlm_stg от stg-2.407-rc1 под первый радиус

 

<Module radius>

        Password = 123456
        ServerIP = 127.0.0.1
        Port = 6666
        AuthServices = Login-User
        AcctServices = Framed-User
</Module>
Відредаговано yKpon
Ссылка на сообщение
Поделиться на других сайтах

какие ещё конфиги показать? на стенде тот же софт что я делал 4 года назад, не могу никак вспомнить всё точно =( а очень надо, нужен PPPoE NAS отдельный

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

даже сервер тот же, ОСь дебиан Lenny, ставил 5 лет назад, всё тоже самое =)

в чём же может быть дело?

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

Да фиг его знает, я бы воткнулся дебаггером и поглядел что там и как в процессе.

Я сейчас на работе, нет под рукой исходников rlm_stg с того времени. Есть дома, если будет время - попробую посмотреть.

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

Я посмотрел внимательно на stg-2.407-p1, не могу даже представить как возможна ситуация в которой rlm_stg пишет что

rlm_stg: stg_authorize() Service-Type defined as 'Framed-User'

а Stargazer считает что

radius.cpp > 10:30:58 > RADIUS::ProcessAutzPacket service '' is not allowed to authorize

Это точно логи от одной и той-же сессии?

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

Я посмотрел внимательно на stg-2.407-p1, не могу даже представить как возможна ситуация в которой rlm_stg пишет что

rlm_stg: stg_authorize() Service-Type defined as 'Framed-User'

а Stargazer считает что

radius.cpp > 10:30:58 > RADIUS::ProcessAutzPacket service '' is not allowed to authorize

Это точно логи от одной и той-же сессии?

 

вот сейчас одна сессия, ввожу верные test 123456

 

Starting - reading configuration files ...
reread_config:  reading radiusd.conf
Config:   including file: /usr/local/etc/raddb/clients.conf
Config:   including file: /usr/local/etc/raddb/snmp.conf
 main: prefix = "/usr/local"
 main: localstatedir = "/var"
 main: logdir = "/var/log/freeradius"
 main: libdir = "/usr/local/lib/"
 main: radacctdir = "/usr/local/var/log/radius/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/freeradius.pid"
 main: user = "freerad"
 main: group = "freerad"
 main: usercollide = no
 main: lower_user = "no"
 main: lower_pass = "no"
 main: nospace_user = "no"
 main: nospace_pass = "no"
 main: checkrad = "/usr/local/sbin/checkrad"
 main: proxy_requests = yes
 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
read_config_files:  reading clients
read_config_files:  reading realms
radiusd:  entering modules setup
Module: Library search path is /usr/local/lib
rlm_stg: stg_init()
Module: Loaded stg
rlm_stg: stg_instantiate()
 stg: password = "123456"
 stg: server = "127.0.0.1"
 stg: port = 6666
 stg: local_port = 6667
Module: Instantiated stg (stg)
Module: Loaded PAP
 pap: encryption_scheme = "crypt"
 pap: auto_header = no
Module: Instantiated pap (pap)
Module: Loaded CHAP
Module: Instantiated chap (chap)
Module: Loaded MS-CHAP
 mschap: use_mppe = yes
 mschap: require_encryption = yes
 mschap: require_strong = no
 mschap: with_ntdomain_hack = no
 mschap: passwd = "(null)"
 mschap: ntlm_auth = "(null)"
Module: Instantiated mschap (mschap)
Module: Loaded preprocess
 preprocess: huntgroups = "/usr/local/etc/raddb/huntgroups"
 preprocess: hints = "/usr/local/etc/raddb/hints"
 preprocess: with_ascend_hack = no
 preprocess: ascend_channels_per_line = 23
 preprocess: with_ntdomain_hack = no
 preprocess: with_specialix_jetstream_hack = no
 preprocess: with_cisco_vsa_hack = no
 preprocess: with_alvarion_vsa_hack = no
Module: Instantiated preprocess (preprocess)
Module: Loaded Acct-Unique-Session-Id
 acct_unique: key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port"
Module: Instantiated acct_unique (acct_unique)
Module: Loaded detail
 detail: detailfile = "/usr/local/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d"
 detail: detailperm = 384
 detail: dirperm = 493
 detail: locking = no
Module: Instantiated detail (detail)
Module: Loaded radutmp
 radutmp: filename = "/var/log/freeradius/radutmp"
 radutmp: username = "%{User-Name}"
 radutmp: case_sensitive = yes
 radutmp: check_with_nas = yes
 radutmp: perm = 384
 radutmp: callerid = yes
Module: Instantiated radutmp (radutmp)
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1:42200, id=69, length=56
        User-Name = "test"
        User-Password = "123456"
        NAS-IP-Address = 255.255.255.255
        NAS-Port = 10
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 0
rlm_stg: stg_authorize()
rlm_stg: stg_authorize() user name defined as 'test'
rlm_stg: stg_authorize() request username field: 'test'
rlm_stg: stg_authorize() request password field: '123456'
rlm_stg: stg_authorize() Service-Type undefined
rlm_stg: stg_authorize() stg status: ''
  modcall[authorize]: module "stg" returns reject for request 0
modcall: leaving group authorize (returns reject) for request 0
Delaying request 0 for 1 seconds
Finished request 0
Going to the next request
--- Walking the entire request list ---
Waking up in 1 seconds...
--- Walking the entire request list ---
Waking up in 1 seconds...
--- Walking the entire request list ---
Sending Access-Reject of id 69 to 127.0.0.1 port 42200
Waking up in 4 seconds...
--- Walking the entire request list ---
Cleaning up request 0 ID 69 with timestamp 54ec2361
Nothing to do.  Sleeping until we see a request.
 
 
в stg дебаг
 
radius.cpp > 10:10:03 > RADIUS::ProcessAutzPacket service '' is not allowed to authorize
 
Ссылка на сообщение
Поделиться на других сайтах

Ребят, а чем rlm_stg лучше того же rlm_perl, в котором можно написать любую логику авторизации, которую только выдумает фантазия?

Я просто бегло прошелся по этому треду, и ничего кроме проблем с этим rlm_stg не увидел.

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

Ребят, а чем rlm_stg лучше того же rlm_perl, в котором можно написать любую логику авторизации, которую только выдумает фантазия?

Я просто бегло прошелся по этому треду, и ничего кроме проблем с этим rlm_stg не увидел.

 

rlm_stg на данный момент не существует.

rlm_perl не умеет общаться со Stargazer.

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

...

 

вот сейчас одна сессия, ввожу верные test 123456

...

modcall: entering group authorize for request 0

rlm_stg: stg_authorize()

rlm_stg: stg_authorize() user name defined as 'test'

rlm_stg: stg_authorize() request username field: 'test'

rlm_stg: stg_authorize() request password field: '123456'

rlm_stg: stg_authorize() Service-Type undefined

rlm_stg: stg_authorize() stg status: ''

  modcall[authorize]: module "stg" returns reject for request 0

modcall: leaving group authorize (returns reject) for request 0

... 

 

в stg дебаг 

 

radius.cpp > 10:10:03 > RADIUS::ProcessAutzPacket service '' is not allowed to authorize

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

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

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

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

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

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

Вхід

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

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

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


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