首页 > 学技术 > 技术网文 > VPN > 正文

[保留] pptpd+radius+mysql -aesitatyieshas- 安装攻略(part3 mysql部分)


来源 chinaunix.net 酷勤网整理

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

会看到



[root@kdfng raddb]# ../../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.


这个东西只有俄文的手册,死活看不来.连配置文件都是俄文的......

如果加上这个就能实现时间和流量的限制.



 abanger 回复于:2006-02-10 16:30:12

好人呀

请问题密码能用加密形式吗?这个问题我一直无法解决,能提个方式或建议


 johnzw 回复于:2006-03-29 09:45:13

想问一下LZ,mysql不需要安装吗???不安装的话,那怎么建数据库呢?


 johnzw 回复于:2006-03-29 09:46:45

我非常关心这个话题,最近正在做一个radius服务器,但是网上的很多东西都不是原创的,都是互抄的,而且验证一下就失败。


 bpxyz 回复于:2006-04-05 15:09:26

rh as 4 里居然没有radius.so,意思是rhel4里的ppp居然不支持radius验证...
郁闷哦,又要自己编译了........

在GENTOO下编译方便得很,但是在rh里,就特别爱出错.


 rainren 回复于:2006-06-02 14:51:49

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


http://www.opennet.ru/base/net/mpd_freerdius_nibs.txt.html


 rainren 回复于:2006-06-02 14:59:14

转在这里,自己看:
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 и т.д.

Если кто хочет, то может дополнить :)


 rainren 回复于:2006-06-02 15:01:19

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: [email]Boginsky@nnz.ru[/email] <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[db_type]='mysql';
      $NIBS_CONF[db_host]='localhost';
      $NIBS_CONF[db_name]='freenibs';
      $NIBS_CONF[db_user]='freenibs';
      $NIBS_CONF[db_password]='Pass';
      $NIBS_CONF[logfile]='1';


Затем, для

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


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

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

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


Автор
    Дмитрий Горохов,
    Ниеншанц-Телеком, Инженер-разработчик.
    <[email]sfh@inbox.ru[/email].>; <[email]sheriff@nnz.ru[/email].>




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=698651
转载请注明作者名及原文出处



收藏本页到: