pptpd+radius+mysql -aesitatyieshas- 安裝攻略(part3 mysql部分)

火星人 @ 2014-03-04 , reply:0


pptpd+radius+mysql -aesitatyieshas- 安裝攻略(part3 mysql部分)

pptpd+radius+mysql  安裝攻略(part3 mysql部分)

2006.02.10 by i_amok  


1.需要軟體,什麼都不需要。

你只要給各mysql的庫就好了,庫結構在

freeradius源碼目錄下的/src/modules/rlm_sql/drivers/rlm_sql_mysql/db_mysql.sql


你建立一個資料庫就好了,我在我自己的機器上建立了一個名字為radius的資料庫

並且導入了這個資料庫的結構。



2。配置sql.conf

先回到剛才的freeradius的配置文件目錄


cd /usr/local/freeradius-1.1.0/etc/raddb



vi sql.conf


修改連接信息




        # Connect info
        server = "192.168.8.53"
        login = "radius"
        password = "radius"

        # Database table configuration
        radius_db = "radius"




去掉下面的simul。。。。前面的#
打開sql的用戶同時連接數測試的語句



        # Uncomment simul_count_query to enable simultaneous use checking
         simul_count_query = "SELECT COUNT(*) FROM ${acct_table1} WHERE UserName='%{SQL-User-Name}' AND AcctStopTime = 0"







3.配置radiusd.conf

註釋掉 authorize {
的files
去掉sql前的註釋


註釋掉 preacct {
的files


註釋掉 accounting {
的radutmp
去掉sql前面的#


註釋掉 session{
的radutmp
去掉sql前面的#


去掉 post-auth {
sql前的#


總之就是去掉files模塊,開啟sql模塊



4。在資料庫中添加用戶

在usergroup中添加一個test用戶,組名為vpn

在radgroupcheck中添加一個vpn組,
attribute為Simultaneous-Use
op為:=
value為1
的紀錄

在radcheck中添加
username為test
attribute為 User-Password
op為==
value為test


這樣就添加了一個用戶為test,組為vpn,密碼為test
並且所有的組用戶的都只能1個用戶名登陸一次


5.測試
用debug模式啟動radiusd

會看到



# ../../sbin/radiusd -x
Starting - reading configuration files ...
Using deprecated naslist file.  Support for this will go away soon.
Module: Loaded exec
rlm_exec: Wait=yes but no output defined. Did you mean output=none?
Module: Instantiated exec (exec)
Module: Loaded expr
Module: Instantiated expr (expr)
Module: Loaded PAP
Module: Instantiated pap (pap)
Module: Loaded CHAP
Module: Instantiated chap (chap)
Module: Loaded MS-CHAP
Module: Instantiated mschap (mschap)
Module: Loaded eap
rlm_eap: Loaded and initialized type md5
rlm_eap: Loaded and initialized type leap
rlm_eap: Loaded and initialized type gtc
rlm_eap: Loaded and initialized type mschapv2
Module: Instantiated eap (eap)
Module: Loaded preprocess
Module: Instantiated preprocess (preprocess)
Module: Loaded SQL
rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked
rlm_sql (sql): Attempting to connect to radius@192.168.8.53:/radius
rlm_sql (sql): starting 0
rlm_sql (sql): Attempting to connect rlm_sql_mysql #0
rlm_sql_mysql: Starting connect to MySQL server for #0
rlm_sql (sql): Connected new DB handle, #0
rlm_sql (sql): starting 1
rlm_sql (sql): Attempting to connect rlm_sql_mysql #1
rlm_sql_mysql: Starting connect to MySQL server for #1
rlm_sql (sql): Connected new DB handle, #1
rlm_sql (sql): starting 2
rlm_sql (sql): Attempting to connect rlm_sql_mysql #2
rlm_sql_mysql: Starting connect to MySQL server for #2
rlm_sql (sql): Connected new DB handle, #2
rlm_sql (sql): starting 3
rlm_sql (sql): Attempting to connect rlm_sql_mysql #3
rlm_sql_mysql: Starting connect to MySQL server for #3
rlm_sql (sql): Connected new DB handle, #3
rlm_sql (sql): starting 4
rlm_sql (sql): Attempting to connect rlm_sql_mysql #4
rlm_sql_mysql: Starting connect to MySQL server for #4
rlm_sql (sql): Connected new DB handle, #4
Module: Instantiated sql (sql)
Module: Loaded Acct-Unique-Session-Id
Module: Instantiated acct_unique (acct_unique)
Module: Loaded realm
Module: Instantiated realm (suffix)
Module: Loaded detail
Module: Instantiated detail (detail)
Initializing the thread pool...
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.



用test用戶登陸一下.

會看到




rad_recv: Access-Request packet from host 127.0.0.1:32768, id=222, length=146
        Service-Type = Framed-User
        Framed-Protocol = PPP
        User-Name = "test"
        MS-CHAP-Challenge = 0xb6a9e94b94c3c386875043efd5144e17
        MS-CHAP2-Response = 0x38006d78036bb5e40ddeca0ce96b944619e000000000000000007b887b8762be38eb111a94a4b581925b85e07453a38a070f
        Calling-Station-Id = "192.168.8.53"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
rlm_sql (sql): Reserving sql socket id: 4
rlm_sql (sql): Released sql socket id: 4
rlm_sql (sql): Reserving sql socket id: 3
rlm_sql (sql): Released sql socket id: 3
rlm_sql (sql): Processing sql_postauth
rlm_sql (sql): Reserving sql socket id: 2
rlm_sql (sql): Released sql socket id: 2
Sending Access-Accept of id 222 to 127.0.0.1 port 32768
        MS-CHAP2-Success = 0x38533d33453434464142394232444230413143464539453832444536453534373331383833454238414536
        MS-MPPE-Recv-Key = 0x53a3812a0fd5b6f7b1cf4f6f6796f26b
        MS-MPPE-Send-Key = 0xb8be60559cbc46fd4da277516d6584f3
        MS-MPPE-Encryption-Policy = 0x00000002
        MS-MPPE-Encryption-Types = 0x00000004
rad_recv: Accounting-Request packet from host 127.0.0.1:32768, id=223, length=110
        Acct-Session-Id = "43EC0822056A00"
        User-Name = "test"
        Acct-Status-Type = Start
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Calling-Station-Id = "192.168.8.53"
        Acct-Authentic = RADIUS
        NAS-Port-Type = Async
        Framed-IP-Address = 10.10.110.1
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Acct-Delay-Time = 0
rlm_sql (sql): Reserving sql socket id: 1
rlm_sql (sql): Released sql socket id: 1
Sending Accounting-Response of id 223 to 127.0.0.1 port 32768




如果你把Simultaneous-Use改成0


會看到



rad_recv: Access-Request packet from host 127.0.0.1:32768, id=225, length=146
        Service-Type = Framed-User
        Framed-Protocol = PPP
        User-Name = "test"
        MS-CHAP-Challenge = 0x2295d4d65913cbc0a7836e986fe4a998
        MS-CHAP2-Response = 0x34001739a3331c1a1a938eed99cda89b691f0000000000000000a8a9e9ae2eadaa6b1acb93e368113dc4ed47dac0a20b1ed8
        Calling-Station-Id = "192.168.8.53"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
rlm_sql (sql): Reserving sql socket id: 4
rlm_sql (sql): Released sql socket id: 4
rlm_sql (sql): Reserving sql socket id: 3
rlm_sql (sql): Released sql socket id: 3
rad_recv: Access-Request packet from host 127.0.0.1:32768, id=225, length=146
Sending Access-Reject of id 225 to 127.0.0.1 port 32768
        Reply-Message := "\r\nYou are already logged in - access denied\r\n\n"





提示已經登陸過了,可見那個選項時生效的.




另,我找一個會俄語的,幫我看看

FreeNIBS

FreeNIBS is a loadable plugin for the FreeRADIUSradius server. FreeNIBS provides authorization,authentication, and accounting for dial-in(PPP/PPPOE/PPTP) users. It can be used forreal-time prepaid and postpaid billing. FreeNIBScan bill users based on service accuration, time,traffic, and both time and traffic. FreeNIBS hasvery flexible settings for groups, users, andprices. All data is stored in SQL databases suchas MySQl, PgSQL, and Oracle.


這個東西只有俄文的手冊,死活看不來.連配置文件都是俄文的......

如果加上這個就能實現時間和流量的限制.
《解決方案》

回復 1樓 i_amok 的帖子

好人呀

請問題密碼能用加密形式嗎?這個問題我一直無法解決,能提個方式或建議
《解決方案》

想問一下LZ,mysql不需要安裝嗎???不安裝的話,那怎麼建資料庫呢?
《解決方案》

我非常關心這個話題,最近正在做一個radius伺服器,但是網上的很多東西都不是原創的,都是互抄的,而且驗證一下就失敗。
《解決方案》

rh as 4 里居然沒有radius.so,意思是rhel4里的ppp居然不支持radius驗證...
鬱悶哦,又要自己編譯了........

在GENTOO下編譯方便得很,但是在rh里,就特別愛出錯.
《解決方案》

freenibs 一些說明, 關於安裝正在查看

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-|"
   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);
}
}


http://www.opennet.ru/base/net/mpd_freerdius_nibs.txt.html
《解決方案》

轉在這裡,自己看:
http://www.opennet.ru/base/net/freenibs_mpd_tips.txt.html
FreeRadius + FreeNIBS + FreeBSD + mpd4(billing traffic freebsd radius)

Поставил Связку FreeRadius 1.0.1+FreeNIBS2.1.6+FreeBSD6.0+mpd4

Вот некоторые моменты, которые не сразу нашел, или вообшще не нашел:

1. mpd.conf очень чувствителен к отсутствию пробелов и табов.

2. set bundle enable compression - было написано, что очень тормозит работу.

3. Вы настроили, все работает - Но как осуществлять запуск скриптов при подключении/отключении?

     set iface up-script "/usr/local/etc/mpd4/link-up"
     set iface down-script /usr/local/etc/mpd4/link-down


При этом надо сделать скрипты исполняемыми!

    chmod 755 /usr/local/etc/mpd4/link-up
    chmod 755 /usr/local/etc/mpd4/link-down


Далее пункты 4,5 из http://wiki.bsdportal.ru/doc:vpn (Я использовал только Их):

4.Ядро:

    # собственно поддержка netgraph
    options         NETGRAPH       
    options         NETGRAPH_PPP       
    options         NETGRAPH_PPTPGRE
    # включаем поддержку ipfw
    options         IPFIREWALL               
    options         IPFIREWALL_DEFAULT_TO_ACCEPT       
    options         IPDIVERT                       


Это не все конечно...

5.Радиус

Открываем radiusd.conf. В нем правим следующие настройки:

    log_stripped_names=yes
    # Логируем атрибут User-Name если он найден в запросе
    log_auth=yes
    # Логируем запросы аутентификации
    log_auth_badpass=yes
    # Если пароль неверен - пишем его в Лог
    log_auth_goodpass=no
    # верные пароли незачем писать в лог


Проверяем чтобы была раскоментарена строчка:

    $INCLUDE ${confdir}/sql.conf


В секции authorize комментарим files и удаляем комментарий с sql

В секции accounting также снимаем комментарий с sql
Далее смотрим в sql.conf и правим:

    driver="rlm_sql_mysql"
    server="localhost"
    login="login_k_mysql"
    password="pass_k_mysql"


6.Что пихать в link-up?

Сначала создаем файлы так:

    touch pr
    touch ip
    touch iptest
    touch iptest1


ЗЫ:Может криво, но работает:

    #!/bin/bash
    #tun название тунеля, смотрящего в Инет - на #Сервере, где стоит Нибс,
    #появляется после #подключения Инета
    tun=tun0
    n=`head -n 1 pr`
    sed 1d pr>pr1
    cat pr1>pr
    n1=`expr $n + 1`
    /sbin/ipfw add $n divert 8668 all from $4 to any via $tun
    /sbin/ipfw  add $n1  divert 8668 all from any to me via $tun
    echo "$1 $4 $n $n1">>ip
    echo "$1 $4 $n $n1">>iptest
    echo $n1>num


В файле pr находится номера для правил, расположеных через 1...Зачем?

Дело в том, что у Меня все правила, если Их указывать без номера -
добавляются за 65000 и там не работают - по крайней мере Я пробовал...

Тоесть файл pr должен содержать, что то типа:

    500
    502
    504


и т.д. - записей 100, для подключившихся 50-т, на всякий случай...

Файл link-down:

    #!/bin/bash
    n1=`cat ip|grep "$1"| awk '{print $3"\t"}'`
    n2=`cat ip|grep "$1"| awk '{print $4"\t"}'`
    /sbin/ipfw delete $n1
    /sbin/ipfw delete $n2
    cat ip|grep -v "$1">iptest1
    cat iptest1>ip
    echo "$n1">>pr


ЗЫЗЫ:
Эти скриптыделают вот что:

Достаю из файла pr первое значение, и прописываают правила с номером
<значение> <значение+1>, после того как отключается пользователь - эти
номера возвращаются для использования... - главное, что бы не
перекрывались с уже имеющимися правилами ipfw:

    ipfw show


Как запустить?

1.Подключаемся в инет

2.есть у Меня скриптик:

start.sh

    #!/bin/bash
    #tun название тунеля, смотрящего в Инет - на #Сервере, где стоит Нибс,
    #появляется после #подключения Инета В link-up он же
    tun=tun0
    apache start&
    mysqld_safe&
    mpd4 -b;
    radiusd -f&
    natd -n $tun -p 8668


ЗЫ:

Можно было бы и без файлов - с помощью ДБ, и без файла pr вообще - но
меня смущает то, что правила в ipfw show показываются так:

    00508    75   11273 divert 8668 ip from 192.168.11.4 to any via tun0


В приннципе можно запросто вытянуть номера имеющихся правил, но Они
будут начинатся с 00 или 0, ну а Мне легше было так написать, чем
смотреть на awk,sed и т.д.

Если кто хочет, то может дополнить :)
《解決方案》

FreeBSD + FreeNIBS + Mpd (freebsd billing vpn pptp mpd radius pptp)
http://www.opennet.ru/base/net/freenibs_mpd_bill.txt.html

-----
Все разработки опробованы на компактном сервере Favourite IS на основе ОС UNIX,
предназначенном для предоставления Интернет-доступа и Интернет-сервисов.
Ссылка в Интернет: http://is.nnz.ru
Взять сервер Favourite IS на тестирование. Mail to: Boginsky@nnz.ru <mailto:Boginsky@nnz.ru.>
-----

   Биллинг для домашней сети, FreeBSD + FreeNIBS + Mpd


Постановка задачи:

      Дано: Имеется локальная сеть и канал в Интернет.

      Надо:

      1. Отдавать людям Интернет за деньги
      2. Иметь несколько тарифов
      3. Обеспечить пристойный уровень безопасности.

Варианты

      1. Авторизация по MAC/IP.


      Эта система наиболее проста в реализации, но, к сожалению, полностью
      дискредитировала себя, потому что подмена MAC-адреса делается
      сравнительно просто, в частности в моей ДС было зафиксировано
      несколько случаев подмены и MAC и IP.
      К тому же, если удаленный хост находится за роутером, то вместо его
      MAC-адреса отображается MAC роутера, и это еще больше затрудняет
      использование этого метода авторизации.

      2. Авторизация Логин/Пароль на Прокси-сервере
      Неплохой метод авторизации, который удачно работает во многих
      корпоративных сетях, где пользователям разрешены HTTP и FTP, и имеется
      корпоративный почтовый сервер.
      Но, для ДС этот метод мало подходит, потому что людям нужно принимать
      почту, играть в игры и так далее, а ограничивать людей, которые платят
      за трафик - это не наш метод.

      3. Подключение через шифрованный VPN-канал.
      Стандарт, который получил наибольшее распространение в коммерческих ДС
      прежде всего из-за высокого уровня безопасности. Между пользователем и
      сервером организуется шифрованный туннель, внутри которого передается
      информация и считается трафик.
      Моя статья - Именно про последний вариант, и про то, как я реализовал
      его в своей ДС с использованием только open-source софта.

Выбор софта

      Клиент:

      У среднего клиента стоит Windows XP/2000/98.
      Выбираем то, что ему (клиенту) проще настраивать - то есть входящее в
      операционную систему стандартное "Подключение к виртуальной частной
      сети".

      Это означает, что мы будем использовать протокол PPTP с авторизацией
      через MS-CHAP.
      
Сервер

      На сервере будет стоять FreeBSD 5.3 - по понятным причинам =)
      Но можно делать и под Linux, используя PoPToP вместо MPD...

      1. VPN-сервер: MPD (Multi-link PPP daemon for FreeBSD) http://www.dellroad.org/mpd/

      Умеет (с официального сайта):
      - Multi-link PPP capability
      - PAP, CHAP, and MS-CHAP authentication - Аутентификация по протоколу MS-CHAP
      - PPP compression and encryption - Поддержка шифрования
      - Point-to-Point Tunnelling Protocol (PPTP) - Поддержка PPTP
      - PPP over Ethernet (PPPoE)
      - RADIUS authentication support - Поддержка RADIUS.

      Обратите внимание на последнюю строчку - RADIUS authentication
      support.
      Именно RADIUS мы будем использовать для управления VPN-сервером MPD.

      2. RADIUS-сервер и биллинговая система

      В качестве биллинговой системы выбран FreeNIBS
      (http://nibs.is.kh.ua/), бесплатный биллинг, представляющий из
      себя модуль для RADIUS-сервера FreeRadius (http://www.freeradius.org/).

      Соответственно, сразу решилась проблема выбора RADIUS-сервера =)
      В качестве базы данных FreeNIBS может использоваться MySQL и
      PostgreSQL, я выбрал MySQL по причине лучшего с ней знакомства.

      3. Web-Интерфейс для управления

      Для FreeNIBS есть 3 варианта web-интерфейса: родной, идущий в одном
      архиве с исходниками; Расширенный интерфейс WebNIBS
      (http://webnibs.sourceforge.net/); Проект MaBill (http://www.mabill.ru/).

      Первый слабоват и требует виртуальных доменов, третий излишне накручен
      и сложен, выбираем WebNIBS.

Установка и настройка FreeNIBS

      Ставим FreeRadius из портов, в нашем случае FreeRadius-1.0.1

              # cd /usr/ports/net/freeradius/
              # make patch


      Мы получили распакованные исходники в /usr/ports/net/freeradius/work/freeradius-1.0.1/
      Качаем версию FreeNIBS для Freeredius 1.0.1:
      http://nibs.is.kh.ua/src/freeradius_nibs/f...s-1.0.1.tar.bz2
      
      Распаковываем и получаем 2 каталога: /raddb и /src
      
      Их содержимое надо скопировать в одноименные подкаталоги в исходниках
      Freeradius:
      /usr/ports/net/freeradius/work/freeradius-1.0.1/raddb/ и
      /usr/ports/net/freeradius/work/freeradius-1.0.1/src/
      
      После этого компилируем Freeradius:
      
            # cd /usr/ports/net/freeradius/work/freeradius-1.0.1/
            # ./configure
            # make
            # make install


      Установили. Теперь надо поставить то, что требуется для работы системы
      и все правильно настроить.

      Ставим MySQL из портов:

            # cd /usr/ports/databases/mysql40-server/
            # make install clean


      Меняем пароль root, создаем базу данных freenibs и пользователя
      freenibs@localhost с паролем Pass.

      Для создания структуры базы данных находим в исходниках freenibs в
      подкаталоге /src/modules/rlm_nibs/drivers/rlm_nibs_mysql/ файл
      nibs_mysql.sql и импортируем его в MySQL:

            # cat ./nibs_mysql.sql | mysql -p


Настройка FreeNIBS

      Идем в каталог /usr/local/etc/raddb/ и настраиваем конфигурационные
      файлы Freeradius и FreeNIBS:

clients:

      127.0.0.1 secret


clients.conf

      client 127.0.0.1 {
             secret = secret
             shortname = localhost
             nastype = other
      }


hints

      DEFAULT Suffix == ".ppp", Strip-User-Name = Yes
             Hint = "PPP",
             Service-Type = Framed-User,
             Framed-Protocol = PPP
      DEFAULT Suffix == ".slip", Strip-User-Name = Yes
             Hint = "SLIP",
             Service-Type = Framed-User,
             Framed-Protocol = SLIP
      DEFAULT Suffix == ".cslip", Strip-User-Name = Yes
             Hint = "CSLIP",
             Service-Type = Framed-User,
             Framed-Protocol = SLIP,
             Framed-Compression = Van-Jacobson-TCP-IP


naslist

      127.0.0.1               local           other


users

      DEFAULT         Auth-Type = MS-CHAP


Настройки FreeNIBS находятся в файле nibs.conf. Находим там следующие
параметры и изменяем их.

      driver = "rlm_nibs_mysql"
      server = "localhost"
      port = "3306"
      login = "freenibs"
      password = "Pass"
      nibs_db = "freenibs"


в конце:

      kill_by_alive = yes
      kill_program = "/sbin/ifconfig ng%{NAS-Port} down"


Ставим web-интерфейс WebNibs

      Для начала своим любимым способом ставим apache с поддержкой php.
      Затем качаем архив http://webnibs.sourceforge.net/nibs.tgz, и
      распаковываем его в /usr/local/www/data/nibs или в другое любимое вами
      место.

      Затем редактируем файлы:

include/auth.php

      $auth_user = "admin";
      $auth_pass = "pass";


include/config.php

      $NIBS_CONF='mysql';
      $NIBS_CONF='localhost';
      $NIBS_CONF='freenibs';
      $NIBS_CONF='freenibs';
      $NIBS_CONF='Pass';
      $NIBS_CONF='1';


Затем, для

      ALTER TABLE `packets` ADD `crypt_method` TINYINT(1) NOT NULL;


Все! Радиус можно стартовать!

Запускаем его:

      # /usr/local/etc/rc.d/radiusd.sh start


Автор
    Дмитрий Горохов,
    Ниеншанц-Телеком, Инженер-разработчик.
    <sfh@inbox.ru.>; <sheriff@nnz.ru.>
《解決方案》

請問這東西結合資料庫,這中間的VPN賬戶是可以在資料庫里直接添加嗎?還是說一個用戶需要在系統賬戶中建立一個賬戶到VPN組???

我們現在要建立一個系統,用戶需要連接VPN以後才能登陸到內部系統,但是不通用戶有好幾百,總不能在系統中手動建立幾百個系統賬戶吧?

這個VPN用戶驗證的時候是可以在資料庫中添加嗎?




[火星人 via ] pptpd+radius+mysql -aesitatyieshas- 安裝攻略(part3 mysql部分)已經有172次圍觀

http://www.coctec.com/docs/service/show-post-21365.html