Jump to content
Local
Колян

MOD_RADIUS for Stargazer

Recommended Posts

Собсно сабж. Где найти толковый мануал по данному модулю?

Что я хочу сделать: есть три микротиковских роутера (NAS-server-ы), на которых юзера авторизуются по пппое, должны авторизоваться через старгейзер.

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

С радиусом стыкаюсь первый раз в жизни, не пинайте сильно. Спасибо!

Share this post


Link to post
Share on other sites

Собсно сабж. Где найти толковый мануал по данному модулю?

Что я хочу сделать: есть три микротиковских роутера (NAS-server-ы), на которых юзера авторизуются по пппое, должны авторизоваться через старгейзер.

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

С радиусом стыкаюсь первый раз в жизни, не пинайте сильно. Спасибо!

Если имеется в виду модуль который идет в составе stg то его описание есть в доке к stg. Но он отвечает только за взаимодействие с FreeRADIUS для авторизации. Скорость и прочая чепуха передается непосредственно из FreeRADIUS другими средствами. Скриптами, например. Документация на FreeRADIUS есть на сайте самого FreeRADIUS.

Share this post


Link to post
Share on other sites

Хм... Я че-то думал, что мод_радиус это и есть радиус сервер. по крайней мере, прочитал из написанного. Что получается, только сервер доступа, и стг сервер.

Share this post


Link to post
Share on other sites

Хм... Я че-то думал, что мод_радиус это и есть радиус сервер. по крайней мере, прочитал из написанного. Что получается, только сервер доступа, и стг сервер.

Возможно ты перепутал с mod_radius который когда-то предоставил Max (или Alferov, не помню точно). Там модуль действительно выполнял функции RADIUS-сервера.

Share this post


Link to post
Share on other sites

Ну так его я и имею ввиду. Я даже не подозревал, что есть другой какой-то.

Share this post


Link to post
Share on other sites

Та в основном про связку с FreeRADIUS. Тему с mod_radius так никто и не раскрыл.

Кроме того у меня есть большие сомнения в том что тот mod_radius соберется с современными версиями stg.

Share this post


Link to post
Share on other sites

От блин возьму и лично попытаюсь собрать при помощи молотка, зубила и еще какой-то матери.

Как-то назревает нехорошая тенденция терминировать рррое в ближайшее время - писать очередной костыль для ppp.secrets как-то не тянет.

Share this post


Link to post
Share on other sites

От блин возьму и лично попытаюсь собрать при помощи молотка, зубила и еще какой-то матери.

Как-то назревает нехорошая тенденция терминировать рррое в ближайшее время - писать очередной костыль для ppp.secrets как-то не тянет.

А зачем? Есть как минимум 2 альтернативных гарантированно рабочих решения. Настроить FreeRADIUS для работы с базой Stargazer'а (в случае использования MySQL или PostgreSQL) или настроить FreeRADIUS для работы с самим Stargazer'ом (через rlm_stg).

Share this post


Link to post
Share on other sites

а если я боюсь radius-a? =)

Тогда к PPPoE тем более лучше не соваться ;)

Share this post


Link to post
Share on other sites

Всегда есть возможность наворотить костыль в моем стиле вида select `login`,`password`,`IP` from `users` > /etc/ppp.secrets :)

Share this post


Link to post
Share on other sites

ничего стращного нет

если с rlm_sql так вообще шикарно

Share this post


Link to post
Share on other sites

Вот нашел тот модуль:

Модуль для авторизации и аккуантинга по протоколу RADIUS.
Это бета версия, по этому в ней может чего-то  работать не так как надо.

Установка:
1)Скопировать папку radius в projects/stargazer/plugins/authorization
2)Собрать stargazer как обычно командой build
3)Зайти в каталог  projects/stargazer/plugins/authorization/radius и дать команду gmake
4)Скопировать файл mod_radius_ia.so в /usr/lib/stg
5)Добавить в файл /etc/stargazer/stargazer.conf

   <Module radius_ia>
      Secret=dgthre    #общий секрет

# NasIP - IP NAS`а. Параметр может быть записан несколько раз, с
       # разными IP.  Он может быть 0.0.0.0 - приём с любого IP, но тогда 
       # он должен быть  записан один раз,
      NasIP=127.0.0.1  #IP NAS-а
      NasIP=192.168.2.1
      NasIP=172.20.0.1

      AuthPort=1812   #Номер порта Авторизаци
      AcctPort=1813   #Номер порта Аккоутнинга 
      # Если эти параметры отсутсвуют, то используются значения по умолчанию 1812 и 1813

      # Направление, куда будет относиться весь траффик информация, о котором
      # принята по протоколу RADIUS
      # В детальной статистике адрес с которго/на который была переданно
      # информация будет 0.0.0.0 
      # В случае отсутствия этого параметра информация о траффике не будет
      # учитываться.
      TrafficDir=1 

      # UpdateInterval - аттрибут, посылаемый NAS`у. Это рекомендуемый
      # промежуток времени(сек), через который NAS полжен посылать информацию о
      # траффике. В некоторых случаях NAS может игнорировать этот атрибут.
      # Если значение равно 0, то этот атрибут не передаётся.
      # Значение по умолчанию - 0. 

      UpdateInterval=30 # Значение в секундах


    </Module>

6)Запустить старгейзер.

ChangeLog:

alpha0.1 - Начальная версия
alpha0.2 - Исправленны ошибки. Протестирована работа с mpd (FreeBSD 5.4) В режиме Авторизации и аккаунтинга. 
0.3alpha - Добавлена возможность задания портов из конфига. 
0.5beta  - Добавленна способность учитывать траффик по радиусу.
0.6alpha - Добавленна поддержка InterumUpdate, Поддержка Gigawords аттрибутов,
   позволяющих передавать информацю более чем о 4ГБ за сессию. Испрвленны некоторые
   потенциальные ошибки
0.7alpha - Добавленна тестовая поддержка EAP
0.72alpha -Исправленна ошибка с Identify в ответах Accept и  Reject , при EAP
          авторизации. Добавленно поле ServiceType.
0.8beta -  Исправлена ошибка с инициальзацией isRunning
0.81beta - Disconnect при остановке.

 

Ну, делал все по мануалу. Че-то при компиляции:

kwa# cd /usr/progz/stg-2.406/projects/stargazer/plugins/authorization/radius/
kwa# ls
Makefile        eap.cpp         radius.cpp      radius.o        radius_ia.h
deps            eap.h           radius.h        radius_ia.cpp
kwa# gmake
g++ -c radius_ia.cpp -g3 -Wall -fPIC  -Wno-non-virtual-dtor -I ../../../../../include -DFREE_BSD5
radius_ia.cpp: In member function 'BASE_PLUGIN* RADIUS_IA_CREATOR::GetPlugin()':
radius_ia.cpp:30: error: cannot allocate an object of abstract type 'RADIUS_IA'
radius_ia.h:58: note:   because the following virtual functions are pure within 'RADIUS_IA':
../../../../../include/base_plugin.h:60: note:  virtual int BASE_PLUGIN::Reload()
gmake: *** [radius_ia.o] Error 1

 

FreeBSD 8.1, Stargazer v. 2.406

Share this post


Link to post
Share on other sites

Быть может версия stg сильно "молодая"?

Share this post


Link to post
Share on other sites

Так же по радиусу задам вопрос пробую rlm_stg при коннекте лог выдает такую каку...

 

Ready to process requests.

rad_recv: Access-Request packet from host 127.0.0.1:45172, id=135, length=148

Service-Type = Framed-User

Framed-Protocol = PPP

User-Name = "admin"

MS-CHAP-Challenge = 0xecb6b140aaf92af6181ddbb8b85e31f1

MS-CHAP2-Response = 0xf30028daecf6febcdb0d9e4018c4b25760dc0000000000000000c8be1b5ab011b1c0d5fa793269897e00554ffbd1998f971e

Calling-Station-Id = "192.168.0.213"

NAS-IP-Address = 192.168.0.97

NAS-Port = 0

Processing the authorize section of radiusd.conf

modcall: entering group authorize for request 0

rlm_stg: stg_authorize()

Segmentation fault

 

 

 

radiusd: FreeRADIUS Version 1.1.3 Stg v. 2.406

 

 

Конфиг радиуса

 

prefix = /usr

exec_prefix = /usr

sysconfdir = /usr/local/etc/raddb

localstatedir = /var

sbindir = ${exec_prefix}/sbin

logdir = /var/log/freeradius

raddbdir = /usr/local/etc/raddb

radacctdir = ${logdir}/radacct

confdir = ${raddbdir}

run_dir = ${localstatedir}/run/freeradius

log_file = ${logdir}/radius.log

libdir = /usr/lib/freeradius

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

}

proxy_requests = yes

$INCLUDE ${confdir}/proxy.conf

 

$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

# }

#

# pam {

# pam_auth = radiusd

# }

#

# unix {

# cache = no

# cache_reload = 600

# radwtmp = ${logdir}/radwtmp

# }

modules {

### STG

stg{

local_port = 6667

server = localhost

port = 6666

password = 123456

}

pap {

encryption_scheme = crypt

}

chap {

authtype = CHAP

}

mschap {

}

}

 

# Instantiation

instantiate {

stg

}

 

authorize {

stg

chap

mschap

}

 

# Authentication.

authenticate {

stg

Auth-Type PAP {

pap

}

Auth-Type CHAP {

chap

}

Auth-Type MS-CHAP {

mschap

}

}

 

accounting {

stg

}

 

session {

}

 

post-auth {

stg

}

Share this post


Link to post
Share on other sites

Вот нашел тот модуль:

Модуль для авторизации и аккуантинга по протоколу RADIUS.
Это бета версия, по этому в ней может чего-то  работать не так как надо.


 

Ну, делал все по мануалу. Че-то при компиляции:

kwa# cd /usr/progz/stg-2.406/projects/stargazer/plugins/authorization/radius/
kwa# ls
Makefile        eap.cpp         radius.cpp      radius.o        radius_ia.h
deps            eap.h           radius.h        radius_ia.cpp
kwa# gmake
g++ -c radius_ia.cpp -g3 -Wall -fPIC  -Wno-non-virtual-dtor -I ../../../../../include -DFREE_BSD5
radius_ia.cpp: In member function 'BASE_PLUGIN* RADIUS_IA_CREATOR::GetPlugin()':
radius_ia.cpp:30: error: cannot allocate an object of abstract type 'RADIUS_IA'
radius_ia.h:58: note:   because the following virtual functions are pure within 'RADIUS_IA':
../../../../../include/base_plugin.h:60: note:  virtual int BASE_PLUGIN::Reload()
gmake: *** [radius_ia.o] Error 1

 

FreeBSD 8.1, Stargazer v. 2.406

Ну естественно. Это модуль для 2.401, а у тебя 2.406.

Share this post


Link to post
Share on other sites

Так же по радиусу задам вопрос пробую rlm_stg при коннекте лог выдает такую каку...

 

Ready to process requests.

rad_recv: Access-Request packet from host 127.0.0.1:45172, id=135, length=148

Service-Type = Framed-User

Framed-Protocol = PPP

User-Name = "admin"

MS-CHAP-Challenge = 0xecb6b140aaf92af6181ddbb8b85e31f1

MS-CHAP2-Response = 0xf30028daecf6febcdb0d9e4018c4b25760dc0000000000000000c8be1b5ab011b1c0d5fa793269897e00554ffbd1998f971e

Calling-Station-Id = "192.168.0.213"

NAS-IP-Address = 192.168.0.97

NAS-Port = 0

Processing the authorize section of radiusd.conf

modcall: entering group authorize for request 0

rlm_stg: stg_authorize()

Segmentation fault

 

Падает, зараза. Смотреть надо. Собирать в отладочном режиме и ловить корку. Или запускать из-под gdb и смотреть бектрейс. Если готов на такие шаги - могу рассказать что делать.

Share this post


Link to post
Share on other sites

А че сделать, чтобы подошла к 406 версии?

В первую очередь рассмотреть альтернативные варианты.

А потом (если альтернативы все-таки не подходят) вооружиться текстовым редактором и компилятором и исправить все ошибки сборки.

Share this post


Link to post
Share on other sites

Альтернативные? Есть какой-то еще модуль радиуса в сборке в этой, только вот я не пойму, для чего он, и какие функции выполняет, мануала то нету.

Share this post


Link to post
Share on other sites

Альтернативные? Есть какой-то еще модуль радиуса в сборке в этой, только вот я не пойму, для чего он, и какие функции выполняет, мануала то нету.

Альтернативный подход - это не привязываться к авторизациям Stargazer а только работать с его базой. Тогда достаточно FreeRADIUS без всяких шаманств со стороны Stargazer.

Мануал по rlm_stg есть (в pdf-ке). И есть пример конфигурации Stargazer + FreeRADIUS + PPtP с Readme в каталоге scripts.

Share this post


Link to post
Share on other sites

Как-то такой подход не очень. МНе надо, чтобы старгейзер выступал в качестве радиус сервера. сервер будет находится в одном месте, а роутер для раздачи инета совсем в другом (на микротике).

Share this post


Link to post
Share on other sites

Как-то такой подход не очень. МНе надо, чтобы старгейзер выступал в качестве радиус сервера. сервер будет находится в одном месте, а роутер для раздачи инета совсем в другом (на микротике).

Зачем Stargazer'у быть RADIUS'ом?

Share this post


Link to post
Share on other sites

Ну если фрирадиус будет работать с БД старгейзера, то как понять, онлайн клиент, или оффлайн например?

Share this post


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.

×