The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Установка и настройка FreeRadius + Freenibs + Mysql + MPD (radius isp mysql freebsd)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: radius, isp, mysql, freebsd,  (найти похожие документы)
From: Shamanaev Irek <rh19 at inbox.ru> Newsgroups: email Date: Mon, 13 May 2004 14:31:37 +0000 (UTC) Subject: Установка и настройка FreeRadius + Freenibs + Mysql + MPD Установка и настройка FreeRadius + Freenibs + Mysql + MPD Предыстория стандартная: Нужен был биллинг и позарез и еще вчера. Требования тоже наверно стандартные - зарождалась городская сеть (ethernet - провйдинг) надо было как-то учитвать работу пользователей и выпускать их в инет. Оптимальное решение по моему мнению - VPN. т.к. сразу отпадают траблы с подменой адресов и заменой маков. Биллинг тоже нашел быстро - nibs - уже использовал его на диалапе. Оставалось только прикрутить mpd. Да, собственно "сервер", - Машинка с тремя фейсами, на самом деле хватит и двух - один наружу второй в home-net :). Сам процесс: Нашел описание настройки mpd & freeradius что меня и вдохновило: - Ставим MySQL. Можно сразу сделать базу (описание в комплекте FreeNibs). - Ставим freeradius из портов, (правда меня не совсем устраивал каталог установки посему поставил все в /usr/local/billing но это на любителя). Файлы настройки взяты из FreeNibs, минимальные записи: #cat clients localhost you_password_for_rad_server #cat users DEFAULT Auth-Type := MS-CHAP #cat nibs.conf - что там править и так понятно, но для самых одаренных есть минимум документации в комплекте FreeNibs. radiusd .conf - посмотрите сами, я практически ничего не менял, главное чтобы nibs был прописан. Остальные файлы можно тоже просмотреть и подправить по своему вкусу, даже если нечего править - полезно будет для общего развития :)) - ставим mpd из портов (версия нужна поновее. - обновите порты сначала). Если версия старая - не будет работать вот эта часть конфига: ******************************** *set radius server 127.0.0.1 you_password 1812 1813 *set radius timeout 10 *set radius config /etc/radius.conf *set radius retries 3 ******************************** для реботы mpd необходим netgraf. можете проверить наличие необходимых опций в ядре, но по моему ядро по умолчанию компилиться с поддержкой netgraf. поэтому пересборка ядра не нужна. Конфиги взятые по приведенному выше линку у меня не заработали, поэтому выкладываю свои: #cat mpd.conf default: load client0 load client1 load client2 client0: new pptp0 pptp0 set ipcp ranges 192.168.1.1/32 192.168.2.1/32 load pptp_standart client1: new pptp1 pptp1 set ipcp ranges 192.168.1.2/32 192.168.2.2/32 load pptp_standart client2: new pptp2 pptp2 set ipcp ranges 192.168.1.3/32 192.168.2.3/32 load pptp_standart pptp_standart: set iface disable on-demand set bundle enable multilink set link yes acfcomp protocomp set link no pap chap set link enable chap set link keep-alive 60 180 set ipcp yes vjcomp set ipcp dns ip_address_you_ns_server`s set iface enable proxy-arp set bundle enable compression set ccp yes mppc set ccp yes mpp-e40 set ccp yes mpp-e56 set ccp yes mpp-e128 set ccp yes mpp-stateless set pptp self ip_на котором слушает mdp set pptp enable incoming set pptp disable originate set iface mtu 1500 set link mtu 1500 set radius server 127.0.0.1 you_password_for_rad_server 1812 1813 set radius timeout 10 set radius config /etc/radius.conf - может быть совсем другой set radius retries 3 set bundle enable radius-auth set bundle enable radius-acct #cat mpd.conf pptp0: set link type pptp set pptp enable incoming set pptp disable originate pptp1: set link type pptp set pptp enable incoming set pptp disable originate pptp2: set link type pptp set pptp enable incoming set pptp disable originate Файлы mpd .script и mpd .secret у меня оставлены пустыми. Есть еще один файл - /etc/radius.conf такого содержания: auth localhost you_password_for_rad_server 3 2 acct localhost you_password_for_rad_server 3 2 ------^^^^^^^^^--------- radius_server и mpd работают на одной машине поэтому - localhost. Теперь MPD готов работать с FreeRadius а радиус благодаря FreeNibs - работает с mysql. Что и требовалось. подробноcти - в /var/log PS Данный текст никоим образом не претендует на оригинальность или руководство к действию, просто у меня все это работает и может кому-то окажется полезным. Однако если кто-то захочет его разместить еще где-то - укажите автора :) и налейте пива. (автору а не себе) PPS Текст взят из головы единственным помошником был /bin/cat. Оригинал по адресу - http://www.shamanaev.ru
продолжение. - Установка и настройка FreeRadius + Freenibs + Mysql + MPD После непродолжительно периода эксплуатации выявилась одна оч. существенная проблема - Данные о трафике и снятие денег со счета происходит только при завершении сессии, т.е. клиент имея на счету 1р. может подключиться и качать сколько душе угодно - благо не диалап :). На сайте nibs-a нашел упоминание о патче для мпд. вот ссылка - http://sourceforge.net/tracker/index.php?func=detail&aid=937956&group_id=14145&atid=314145 Из описания: 1) Offering correct IP address to the client in case mpd is configured to get it from the RADIUS, while the RADIUS does not send Framed-IP-Address attrubute. In this case the original version of the mpd offers to the client 0.0.0.0 as her IP address, which makes impossible to establish the link. 2) The possibility to send Accounting-Update packets to the RADIUS not only on time basis but also depending upon the volume of the received or transferred traffic (or both). Both "update-limit-in" and "update-limit-out" parameters defaults to 0. To set non-zero values one must do it in mpd.conf: set radius update-limit-in X set radius update-limit-out Y (where X, Y - are the traffic in bytes) Then, when the moment for the next-in-turn acct-update time comes, it is checked whether the limits are exceedeed. If they are not exceeded, update is not made (i.e. acct-update packets are not sent to RADIUS). The idea of it: not to overload the RADIUS and its logs. 3) Give ppp netgraph node name like "mpd-<name>" instead of "mpd<pid>-<name>". As the name length of netgraph node is restricted by 15 symbols, and the standard designation ppp node consists of "mpdNNNNN-pptpXX", more than 99 nodes can not be made. Patch makes it possible to solve this problem. 4) Dropping the connection, if the RADIUS has sent vendor-specific attribute 154. When the attribute is 0 it means the continuation of the connection, when it is set to 1 -- the connection should be dropped. The following lines should be added to the dictionary.mpd (VENDOR mpd 12341): ----- ATTRIBUTEDrop-User154integermpd VALUEDrop-UserNo0 VALUEDrop-UserYes1 ----- 5) New function RadiusGetCurrentParams(). In the patch this function gets the Accounting-Response from the RADIUS and marks the moment when connection should be dropped ("Drop-User = Yes" attribute arrival). Hence, any developer may write additional code to this function to catch the reception of attributes she is interested with. The function RadiusGetParams() from the original mpd is used during the (re-)initialization phase only. 3. Mini - How-To 1) Update limits This option may be interesting for those who use the tarification of the traffic. When update limits are non-zero a comparatively little time interval for acct-update can be configured and the required "update-limit-[in]|[out]" established. Internal statistics in mpd works once a minute in any case. That's why, if the line set radius acct-update 60 is added to mdp.conf, mpd gets practically no additional work. The concrete limit values are certainly different for eveyone. But the initial values from 100000 to 1000000 seem quite reasonable to me. After that analyse the results and change the values. Up to individual limits per link. Hint: update limits work only when acct-update is switched on! 2) Drop-user This option may be useful for those, who: - limit clients' traffic, and NAS does not support attribute Session-Octets-Limit; - use dynamic restrictions (formed, for example, by billing system): one login for several simultaneous sessions with the limitation by the time or/and by the traffic; in other cases when it is impossible to determine the restrictions at the beginning of the session. For mpd to drop the link, RADIUS must send this mere attribute with the value "Yes". But, possibly, not the RADIUS itself, but the billing system is responsible for the construction of such packet. That system processes accounting packets of the three types: Start, Stop, Update. "Stop" is of no interest in this context. "Start" employs other determination methods to see if mpd may start the session. It is reasonable to consider only "Update"-packets. When the limits are reached it is quite enough to add to the packet, meant to send the response to the RADIUS, the neccessary pair with the operator "=". Something like: New_Pair = Pair_Create("Drop-User", "Yes", T_OP_EQ); Pair_Add(Pairs_To_Reply, New_Pair); This technology was tested with freeradius-0.9.3, freenibs-0.0.3-bf3. The latter (open-source billing system) can be found at: http://nibs.net.ua, http://sourceforge.net/projects/nibs The patch, allowing to form the neccessary response to the RADIUS for the subsequent transmission to mpd daemon. And as the result to drop the connection: -------- --- rlm_nibs.c.origMon Apr 12 22:27:58 2004 +++ rlm_nibs.cTue Apr 13 01:01:41 2004 @@ -1139,6 +1139,8 @@ radlog(L_INFO, querystr); if (nibs_error != NULL) free(nibs_error); nibs_user_kill(inst, request); + pair = pairmake("Drop-User", "Yes", T_OP_EQ); + pairadd(&request->reply->vps, pair); } } -------- Boris Samorodov, bsam@ipt.ru Т.е. все что нам необходимо, включая патч для модуля freenibs. Встает все без проблем и работает,( - чего и вам желаю.)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, bm (??), 16:29, 14/05/2004 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    А сколько пользователей тянет такое решение?
     
  • 1.2, pi314 (?), 16:45, 14/05/2004 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Столько сколько потянет mpd.
     
  • 1.3, butcher (?), 16:55, 14/05/2004 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Судя по конфигу - 3 :)
    Да, и в GENERIC'е нету поддержки NETGRAPH, необходимые модули загружаются автоматически, поэтому можно не компилить ядро.
     
  • 1.4, Аноним (4), 03:02, 15/05/2004 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    А я вот не понял, с какой степенью подробнеости выдается отчет по трафику, адреса с которых юзер скачал есть? или только общий объем?
     
  • 1.5, butcher (?), 18:26, 15/05/2004 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    да, ешё, два раза приведён cat mpd.conf
    второй раз видимо автор хотел сазать cat mpd.links
     
  • 1.6, Sergey (??), 15:24, 16/05/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Мужики спасайте!!! Никак не могу собрать mpd ... вечно вываливаюсь по ошибкам ... может для него что то еще нужно???
     
  • 1.7, butcher (?), 09:10, 17/05/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Версия ОС какая?
    Какие ошибки?
     
  • 1.8, Sergey (??), 10:26, 17/05/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    FreeBSD 4.4 MPD перепробывал все версии... Из исходников компилится только 3.9, нормально работает, но она без поддержки радиуса ... Ставил пакет 3.16, нашел libcrypto.so.3 запустилась нормально .. но при коннекте когда происходит обращение к радиусу вываливается ошибка ... что-то про библиотеку и ... simbol rad_vendor_attr ... точно не помню ... Но без радиуса работает нормально. НО нужена поддержка радиуса!!! Нород помогите плиз ...
     
     
  • 2.11, Hammer (??), 23:07, 27/05/2004 [^] [ответить]     [к модератору]  
  • +/
    конкретнее ... весь текст скрыт [показать]
     
  • 1.9, Hammer (??), 17:53, 17/05/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Забыли добавит в настройках MPD опцию
    set alive update 1
    Иначе активных юзеров не будет видно!!!
    Да и траффик считаться не будет!!!
     
     
  • 2.12, Shamanaev (?), 15:13, 02/08/2004 [^] [ответить]     [к модератору]  
  • +/
    Пользователей будет видно и трафик будет считаться, - только по окончании сессии... весь текст скрыт [показать]
     
  • 1.10, Alex (??), 18:14, 27/05/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    есть проблема с mpd - он радиусу полезного ничего не шлет :(
    tcpdump на машинке с радиусом :
    16:49:13.450307 xx.so-com.net.1341 > 212.110.xxx.xxx.radius:  rad-access-req 172 [id 162] Attr[  NAS_id{xx.so-com.net} NAS_ipaddr{xx.so-com.net} NAS_port{0} NAS_por
    t_type{Virtual} [|radius]
    16:49:13.452027 212.110.xxx.xxx.radius > xx.so-com.net.1341:  rad-access-reject 41 [id 162] Attr[  Reply{....... . .........}]

    где данные типа username/pass ??
    если кто знает, откликнитесь ....

     
  • 1.13, Shamanaev (?), 12:54, 29/08/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Патч к mpd для сбора статистики и сброса пользователей в "реальном времени"
    http://sourceforge.net/tracker/index.php?func=detail&aid=937956&group_id=1414

    Там же описано как пропатчить нибс.

     
  • 1.15, InventOR (?), 16:06, 14/10/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    поставил сабж, не получается даже законнектиться к MPD.
    вот краткий лог:
    mpd: PPTP connection from 192.168.64.99:3774
    pptp0: attached to connection with 192.168.64.99:3774
    [pptp0] IFACE: Open event
    [pptp0] IPCP: Open event
    [pptp0] IPCP: state change Initial --> Starting
    [pptp0] IPCP: LayerStart
    [pptp0] IPCP: Open event
    [pptp0] bundle: OPEN event in state CLOSED
    [pptp0] opening link "pptp0"...
    [pptp0] link: OPEN event
    [pptp0] LCP: Open event
    [pptp0] LCP: state change Initial --> Starting
    [pptp0] LCP: LayerStart
    [pptp0] device: OPEN event in state DOWN
    [pptp0] attaching to peer's outgoing call
    [pptp0] can't config pptpgre node: Invalid argument
    pptp0-0: killing channel
    [pptp0] PPTP call cancelled in state CONNECTING
    pptp0: closing connection with 192.168.64.99:3774
    [pptp0] IFACE: Close event
    [pptp0] IPCP: Close event
    [pptp0] IPCP: state change Starting --> Initial
    [pptp0] IPCP: LayerFinish
    [pptp0] device is now in state OPENING
    [pptp0] bundle: CLOSE event in state OPENED

    и все. больше ничего в логах нету....

    gre и 1723 открыты.. права везде 777 стоят.. я в отчаянии....  mpd-3.18+freenibs+freeradius patch.. FreeBSD 4.10-stable Netgraph собран, в его листе лишнего ничего нету....

     
  • 1.16, Lelik (??), 17:14, 21/10/2004 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Heollo World Такая проблема Установил mpd-3 17,пропатчил,все прошло без ошибок... весь текст скрыт [показать]
     
  • 1.17, Lelik (??), 08:43, 25/10/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Еще раз фсем привет!
    Все, последний вопрос снимается. Разобрался. Поставил 4тый diff для mpd и все запахало. :)
     
  • 1.18, new (??), 09:44, 02/11/2004 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    народ! хЭлп!
    фря 4.10 - ставлю фринибс - радиусд при запуске -Х = в кору! при ПРОСТОМ запуске радиусд - система загружена 100%, но в кору не валится, так и висит.
    перепробовал ВСЁ!
     
     
  • 2.19, 1121 (?), 09:11, 09/11/2004 [^] [ответить]    [к модератору]  
  • +/
    решил:
    /sbin/ldconfig -m /usr/local/lib/mysql
    в автозагрузку бахнуть нужно.
     
  • 1.20, ph0enix (?), 23:06, 17/01/2005 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Кто-нть подскажет - оно собираемо под OpenBSD? Если нет - существуют ли альтернативные решения описанной задачи?
     
     
  • 2.22, cust (?), 13:29, 14/03/2005 [^] [ответить]    [к модератору]  
  • +/
    >Кто-нть подскажет - оно собираемо под OpenBSD? Если нет - существуют ли
    >альтернативные решения описанной задачи?

    под OpenBSD есть poptop

     
  • 1.21, Victor (??), 10:08, 19/01/2005 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Связка работает нормально, единственнай проблема - система периодически ребутится.
    FreeBSD 5.3
    freenibs-0.0.3-bf3_freeradius-0.9.3.tar
    MySQL 5.01
    mpd изпортов
    В чем может быть причина? Куда копать?
     
  • 1.23, Sergey (??), 11:02, 07/05/2005 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Прикрутил freeradius к базе от UTM, чтобы из неё авторизовывал, завел MPD все замечательно, пользователи подключаются и и в инет ходят, да вот беда со скоростью. Как только приконнектишься скорость хорошая, но постепенно падает до просто диалапной. Завожу вместо MPD - PPTPD и со скоростью все в порядке. Но с ним другие проблемы начинаются.
    У меня пользователей в среднем около ста, на коннекте висят (вечером больше, утром меньше). Система FreeBSD 5-STABLE. Что делать не знаю!
     
  • 1.25, Scorpiy (??), 18:42, 22/01/2006 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Вчем могла бы быть проблема вот с такой штукой 1 Все поставлено правильно свя... весь текст скрыт [показать]
     
  • 1.26, WeL (?), 20:40, 16/04/2006 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    FreeNibs Freedadius MPD ошибка 691, при конекте из под Винды b Помогите плизз ... весь текст скрыт [показать]
     
  • 1.27, WeL (?), 11:20, 17/04/2006 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Ну хоть подскажите!
    Копать в сторону настроек или в сторону интерфейса?Заполнения ДБ?
     
  • 1.28, WeL (?), 00:40, 18/04/2006 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    При попытке конекта mpd4 Multi-link PPP for FreeBSD, by Archie L Cobbs Based... весь текст скрыт [показать]
     
  • 1.29, WeL (?), 03:36, 19/04/2006 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    убрал из mpd conf set link enable chap Теперь можно на соеденится с сервером бе... весь текст скрыт [показать]
     
  • 1.30, WeL (?), 02:17, 20/04/2006 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Нашел в чем дело...
    В mpd.conf надо было добавить:
        set auth acct-update 300
        set auth enable radius-auth
        set auth enable radius-acct
    Но теперь вот такая проблема:
    radiusd -x:
    ...
    rad_recv: Access-Request packet from host 192.168.10.1:57733, id=51, length=144
            NAS-Identifier = "freebsd"
            NAS-IP-Address = 127.0.0.1
            NAS-Port = 0
            NAS-Port-Type = Virtual
            Service-Type = Framed-User
            Framed-Protocol = PPP
            User-Name = "w"
            MS-CHAP-Challenge = 0xbb1e68c8445aee2a776b7becc887c686
            MS-CHAP2-Response = 0x0100e89226e511f5a91977ecfc5674253d730000000000000000aa94048293034357e5ce3b80c9f14099231c37938b1564f5
    Invalid operator for item Suffix: reverting to '=='
    Invalid operator for item Suffix: reverting to '=='
    Invalid operator for item Suffix: reverting to '=='
    sql_als->sql_get_socket (nibs): Reserving sql socket id: 60
    sql_als->sql_release_socket: Released sql socket id: 60
    rlm_nibs (rlm_nibs_authorize): Check items do not match with received packet (maybe _open_ passwd or huntgroup) for user '' [127.0.0.1:0]
    rad_recv: Access-Request packet from host 192.168.10.1:57733, id=51, length=144
    Sending Access-Reject of id 51 to 192.168.10.1:57733
     
  • 1.31, Valera (??), 18:54, 24/04/2006 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Есть связка FreeBSD FreeRADIUS FreeNIBS MPD - все работает Сервер подключен в И... весь текст скрыт [показать]
     
     
  • 2.32, Mamoru (ok), 13:11, 22/05/2006 [^] [ответить]    [к модератору]  
  • +/
    Народ, вопрос по теме.
    Установил данную связку, всё работает, только:
    если в таблице radcheck пароль написан открыто, то радиус авторизует,
    а если я его закрываю(ENCRYPT), то не пускает.
    Как победить эту проблему?

     
  • 1.33, weldpua2008 (ok), 21:23, 28/05/2006 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Как тушить подключения к mpd,mpd4?
    Я уже с месяц исчу!!!
    Нашел два варианта, но они не работают какого-то...

    Помогите!!!
    Пришлите работающий скрипт!!!

     
  • 1.34, ku100 (?), 22:09, 02/11/2006 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    По непонятной причине радиус скидывает юзера...

    RADIUS: RadiusGetCurrentParams: RAD_MPD_DROP_USER

     
  • 1.35, kaze (?), 03:15, 11/01/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    а кто ж их пересылать то так будет в открытом виде. Идет запрос - ответ (в данном случае acct-reject) - как при использовании radtest.
     
  • 1.37, Александр (??), 15:36, 06/09/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А есть более подробная информация? я даже mpd установить не могу...
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:




      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor