The OpenNET Project / Index page

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

[FreeBSD] Настройка PPTP сервера на базе mpd и FreeRadius (freebsd radius billing mysql mpd vpn pptp)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: freebsd, radius, billing, mysql, mpd, vpn, pptp,  (найти похожие документы)
From: Роман Сотников <drive(-sobaka-)oln(точка)ru> Newsgroups: email Date: Mon, 11 Apr 2005 14:31:37 +0000 (UTC) Subject: [FreeBSD] Настройка PPTP сервера на базе mpd и FreeRadius Настройка mpd+freeradius+freenibs+mysql Необходимость назрела как всегда, домашняя сеть и трафик считать нечем. Набрёл в интернете на сайт www.nibs.net.ua, решение понравилось, взялся за его реализацию. cd /usr/ports/net/mpd make make install версия mpd у меня вот такая: su-2.05# mpd -v Version 3.18 (root@solar.oln.ru 07:41 28-Mar-2005) Следует заметить, что freenibs работает только со строго определённой версией freeradius, у меня freeradius версии: su-2.05# radiusd -v radiusd: FreeRADIUS Version 0.9.3, for host i386-unknown-freebsd4.11, built on Mar 30 2005 at 22:41:23 Copyright (C) 2000-2003 The FreeRADIUS server project. Ставил я его _не_ из портов, на nibs.net.ua есть ссылка откуда можно его забрать. Для него есть определённый freenibs, на сайте nibs.net.ua он есть. Версия системы: su-2.05# uname -a FreeBSD solar.oln.ru 4.11-RELEASE FreeBSD 4.11-RELEASE #0: Sun Mar 27 07:42:36 NOVST 2005 root@:/usr/src/sys/compile/PROXY_SAT i386 Ставим freeradius и freenibs следующим образом. Разархивируем radius к примеру в /tmp/billing, tar -zxvf freeradius-0.9.3.tar.gz /tmp/billing а потом _туда же_ с перезаписью разархивируем frebibs tar -zxvf freenibs-0.0.3-bf3-freeradius-0.9.3.tar.gz /tmp/billing cd /tmp/billing make make install Теперь правим конфиги: После наступания на все мыслимые и не мыслимые грабли родились вот такие конфиги. bash-2.05# more mpd.conf default: load pptp0 load pptp1 load pptp2 load pptp3 load pptp4 load pptp5 load pptp6 pptp0: new -i ng0 pptp0 pptp0 set ipcp ranges 10.10.10.1/30 10.10.10.47/30 load pptp_standart pptp1: new -i ng1 pptp1 pptp1 set ipcp ranges 10.10.10.1/30 10.10.10.20/30 load pptp_standart pptp2: new -i ng2 pptp2 pptp2 set ipcp ranges 10.10.10.1/30 10.10.10.74/30 load pptp_standart pptp3: new -i ng3 pptp3 pptp3 set ipcp ranges 10.10.10.1/30 10.10.10.223/30 load pptp_standart pptp4: new -i ng4 pptp4 pptp4 set ipcp ranges 10.10.10.1/30 10.10.10.10/30 load pptp_standart pptp5: new -i ng5 pptp5 pptp5 set ipcp ranges 10.10.10.1/30 10.10.10.175/30 load pptp_standart pptp6: new -i ng6 pptp6 pptp6 set ipcp ranges 10.10.10.1/30 10.10.10.50/30 load pptp_standart pptp_standart: set iface disable on-demand set iface enable tcpmssfix 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 192.168.2.1 set ipcp nbns 192.168.2.1 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 bundle yes crypt-reqd set pptp self 0.0.0.0 set pptp enable incoming set pptp disable originate set radius server 192.168.2.1 <пароль к радиусу> 1812 1813 set radius timeout 10 set radius config /usr/local/etc/raddb/radius.conf set radius retries 3 set bundle enable radius-acct set bundle enable radius-auth set ipcp yes radius-ip open Необходимо заметить, что mpd не любит пробелов в конфиге, поэтому следует использовать табуляцию. bash-2.05# more mpd.links pptp0: set link type pptp pptp1: set link type pptp pptp2: set link type pptp pptp3: set link type pptp pptp4: set link type pptp pptp5: set link type pptp pptp6: set link type pptp Файл mpd.secret пустой, потому как пароли проверяет радиус. bash-2.05# more acct_users DEFAULT Service-Type == Framed-User, Service-Type == Login-User, Login-Service == Telnet, Login-Service == Rlogin, Login-Service == TCP-Clear, Login-TCP-Port <= 65536, Framed-IP-Address == 255.255.255.254, Framed-IP-Netmask == 255.255.255.255, Framed-Protocol == PPP, Framed-Protocol == SLIP, Framed-Compression == Van-Jacobson-TCP-IP, Framed-MTU >= 576, Framed-Filter-ID =* ANY, Reply-Message =* ANY, Proxy-State =* ANY, Session-Timeout <= 28800, Idle-Timeout <= 600, Port-Limit <= 2 Насколько я помню, в файле acct_users я ничего не менял. bash-2.05# more clients # Client Name Key #---------------- ---------- #portmaster1.isp.com testing123 #portmaster2.isp.com testing123 #proxyradius.isp2.com TheirKey 192.168.2.1 <пароль к радиусу> 127.0.0.1 <пароль к радиусу> Вообщк то файл clients устаревший, он тут для совместимости, вдруг кому-нибудь он будет нужен :) bash-2.05# more clients.conf client 127.0.0.1 { secret = <пароль к радиусу> shortname = localhost nastype = other # localhost isn't usually a NAS... } client 192.168.2.1 { secret = <пароль к радиусу> shortname = localhost nastype = other # localhost isn't usually a NAS... } bash-2.05# more naslist # NAS Name Short Name Type #---------------- ---------- ---- #portmaster1.isp.com pm1.NY livingston #portmaster2.isp.com pm1.LA livingston localhost local portslave 192.168.2.1 local portslave bash-2.05# more radius.conf acct 192.168.2.1 <пароль к радиусу> auth 192.168.2.1 <пароль к радиусу> Как правило у всех возникает проблема, что nibs трафик считает, а с линии юзера не скидывает, в логах вот что пишет: Sat Apr 9 15:58:48 2005 : Info: rlm_nibs (rlm_nibs_accounting): User `drive' must be killed (no money on deposit) [192.168.2.1:0] |192.168.2.47| в файлике nibs.conf есть вот такая строчка: kill_program = "/usr/local/etc/raddb/kill.pl %{User-Name} %{NAS-IP-Address} %{Client-IP-Address} %{NAS-Port}" nibs.conf есть смысл править только в начале: # SQL Server configuration server = "localhost" port = "3306" login = "freenibs" password = "ваш пароль к базе" Как настроить nibs и mysql написано в докции по nibs, на русском языке. ;) Как раз она и вызывает скрипт kill.pl, для его правильной работы необходимо поставить перловый модуль Socket Содержимое kill.pl bash-2.05# more kill.pl #!/usr/bin/perl -w if( $ARGV[3] eq '' ) { die 'Usage: kill.pl user nasip userip nasport'; }; $user=$ARGV[0]; $nasip=$ARGV[1]; $userip=$ARGV[2]; $nasport=$ARGV[3]; $nastelnetport=5005; use IO; $sock = IO::Socket::INET->new( PeerAddr => $nasip, PeerPort => $nastelnetport, Proto => 'tcp') or die "Can not connect to mpd!\n$!"; $sock->autoflush(1); print $sock "link pptp",$nasport,"\n"; print $sock "show radius\n"; print $sock "close\n"; close $sock; exit 0; После подобных телодвижений, у меня всё заработало. Ещё на сайте nibs.net.ua есть веб-морда для управления всем этим хозяйством. Однако, в ней есть ошибка, правится вот так: скрипт lists/packet_list.php строчка 21: $mtraff = gtraffic() or die("Error: Call to function gtraffic()"); должна быть: $mtraff = gtraffic(); Ну собственно вот и всё :) По всем вопросам обращайтесь по адресу drive(-sobaka-)oln(точка)ru

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

Обсуждение [ RSS ]
  • 1.1, srg (??), 15:34, 18/10/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это не ошибка, это для того что бы такие как ты и мы об нее запинались. В ногих конфигах такая строга существует, например в той же программе что и eggdrop (бот под ircd )
    Коментируеш ее и все в норме.
     
  • 1.2, Gmurik (?), 13:30, 02/11/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Народ, кто нибудь в связке с PostgreSQL ставил?
     
  • 1.3, StarshiY (ok), 13:38, 16/11/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ребят столкнулся с такой проблемой.
    call_from выдает только ИП, мак не показывает. Раньше ставил на другую машину светили и ип и мак и интерфейс. где грабли искать ?
     
  • 1.4, aZ (?), 15:28, 01/12/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    StarshiY, ftp://ftp.bitel.ru/pub/projects/bgbilling/mpd/mpd-3.18-drop-user-1.diff
     
  • 1.6, AMDeshka (?), 15:24, 14/04/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автор: RA979 (85.132.39.139)
    Дата:   01-04-06 14:57

    Скорее всего дело в gcc. На FreeBSD 5.4:
    %gcc -v
    Using built-in specs.
    Configured with: FreeBSD/i386 system compiler
    Thread model: posix
    gcc version 3.4.2 [FreeBSD] 20040728
    %

    который жалуется на goto метку в неположенном месте
    в файле x99_rlm.c

    Короче, чтобы собрать freenibs-0.0.3-bf3_freeradius-1.0.1.tar.bz2 и freeradius-1.0.1.tar.gz, надо сперва редактировать файл
    src/modules/rlm_x99_token/x99_rlm.c , 550-ю и 551-ю строки

    good_state:
    /* State is good! */

    перенести на 10 строк вниз, сразу за этой:
    } /* if (!fast_sync) */

    т.е., должно выглядеть так:

    } /* if (!fast_sync) */
    good_state:
    /* State is good! */

    Взято с http://nibs.net.ua/forum/read.php?f=3&i=7925&t=7925

     
  • 1.9, lady_noname (?), 04:35, 07/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    что-то не побороть мне его никак =(


    290336

     
  • 1.10, lady_noname (?), 04:35, 07/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Jul  7 04:15:34 brain mpd: mpd: type of link "pptp0" is unspecified
     
  • 1.11, Сергей (??), 15:18, 13/06/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как настроить Радиус так, что бы если пользователь  уже авторизировался (ВПН) нельзя было под темже логином войти второй раз? :-)

    По умолчанию можно под одним логином войти сколько хочешь раз одновременно :)

     
  • 1.12, Krasnyj (??), 17:08, 19/11/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А Вас не смущают в конфиге строки:
    set link no pap chap
    set link enable chap
    ?
    Как-то странно запретиться чап и тут же его разрешить...
     

    игнорирование участников | лог модерирования

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




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру