zoukankan      html  css  js  c++  java
  • FreeRADIUS + MySQL 安装配置笔记

    FreeRADIUS + MySQL 安装配置笔记

    http://www.2cto.com/net/201110/106597.html

    RADIUS认证服务器(Remote Authentication Dial In User Service,远程用户拨号认证系统)是目前应用最广泛的AAA协议(AAA=authentication、Authorization、Accounting,即认证、授权、计费)。随着网络安全需求提高,中小企业的局域网集中用户认证,特别是使用VPDN专网的也逐渐需要建立自己的认证服务器以管理拨号用户。但这些用户不需要使用昂贵的专业系统,采用PC服务器和Linux系统的Freeradius+MySQL就能可靠地实现。
    首先请确认你已经搭建好pptpd,并可以正常使用。


    一、FreeRADIUS 服务端安装
    1.1、下载、编译、安装
    wget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.11.tar.gz
    tar zxf freeradius-server-2.1.11.tar.gz
    cd freeradius-server-2.1.11
    ./configure
    make && make install

    1.2、基本文件的本地测试(选做)
    测试是否安装成功,如果不需要与mysql集成,那么就已安装完成。


     vim /usr/local/etc/raddb/users
    查找 steve Cleartext-Password := "testing" (76-84行), 取消该段内容的注释。

     # 大写X,意思是以debug模式运行。
    /usr/local/sbin/radiusd -X
     
    #新开一个窗口执行,看到 "Access-Accept packet" 表示成功了,"Access-Reject" 表示失败了。
    /usr/local/bin/radtest steve testing localhost 0 testing123

    二、FreeRadius MySQL 模块配置
    2.1、启用MySQL模块支持

     # 查找"sql.conf”(683行),去掉#号
    vim /usr/local/etc/raddb/radiusd.conf

    2.2、创建 radius 数据库及表

     # 123456是你mysql的root密码
    mysqladmin -uroot -p123456 create radius;

     #修改radius帐号的密码
    cd /usr/local/etc/raddb/sql/mysql
    sed -i 's/radpass/123456/g' admin.sql
    sed -i 's/radpass/123456/g' /usr/local/etc/raddb/sql.conf

     mysql -uroot -p123456 < admin.sql
    mysql -uroot -p123456 radius < ippool.sql
    mysql -uroot -p123456 radius < schema.sql
    mysql -uroot -p123456 radius < wimax.sql
    mysql -uroot -p123456 radius < cui.sql
    mysql -uroot -p123456 radius < nas.sql

    2.3、打开从数据库查询nas支持
    默认从 "/usr/local/etc/raddb/clients.conf" 文件读取,开启后可从数据库nas表读取。


     sed -i 's/#readclients/readclients/g' /usr/local/etc/raddb/sql.conf

    2.4、打开在线人数查询支持

     # 查找simul_count_query将279-282行注释去掉
    vim /usr/local/etc/raddb/sql/mysql/dialup.conf

    2.5、修改sites-enabled目录配置文件

     vim /usr/local/etc/raddb/sites-enabled/default

    找到authorize {}模块,注释掉files(159行),去掉sql前的#号(166行)
    找到accounting {}模块,注释掉radutmp(385行),注释掉去掉sql前面的#号(395行)。
    找到session {}模块,注释掉radutmp(439行),去掉sql前面的#号(443行)。
    找到post-auth {}模块,去掉sql前的#号(464行),去掉sql前的#号(552行)。

     vim /usr/local/etc/raddb/sites-enabled/inner-tunnel

    找到authorize {}模块,注释掉files(124行),去掉sql前的#号(131行)。
    找到session {}模块,注释掉radutmp(251行),去掉sql前面的#号(255行)。
    找到post-auth {}模块,去掉sql前的#号(277行),去掉sql前的#号(301行)。

    三、FreeRADIUS 客户端安装与配置
    3.1、编译与安装
    wget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-client-1.1.6.tar.gz
    tar -zxf freeradius-client-1.1.6.tar.gz
    cd freeradius-client-1.1.6
    ./configure
    make && make install

    3.2、设置通信密码
    cat >>/usr/local/etc/radiusclient/servers<<EOF
    localhost   testing123
    EOF

    其中localhost可以写成服务器IP地址,testing123是认证服务器的连接密码。
    注:如果使用的是IP地址,记得同时修改下面设置。

    1
     sed -i 's/localhost/192.168.8.129/g' /usr/local/etc/radiusclient/radiusclient.conf

    3.3、增加字典
    这一步很重要!否则windows客户端无法连接服务器。

    1
    2
     wget -c http://small-script.googlecode.com/files/dictionary.microsoft
    mv ./dictionary.microsoft /usr/local/etc/radiusclient/
    cat >>/usr/local/etc/radiusclient/dictionary<<EOF
    INCLUDE /usr/local/etc/radiusclient/dictionary.sip
    INCLUDE /usr/local/etc/radiusclient/dictionary.ascend
    INCLUDE /usr/local/etc/radiusclient/dictionary.merit
    INCLUDE /usr/local/etc/radiusclient/dictionary.compat
    INCLUDE /usr/local/etc/radiusclient/dictionary.microsoft
    EOF

    3.4、PPTP启用freeradius插件
    这一步网上一些教程没提,但很重要,否则会报错!

    sed -i 's/logwtmp/#logwtmp/g' /etc/pptpd.conf
    sed -i 's/radius_deadtime/#radius_deadtime/g' /usr/local/etc/radiusclient/radiusclient.conf
    sed -i 's/bindaddr/#bindaddr/g' /usr/local/etc/radiusclient/radiusclient.conf

    注:64位系统插件路径是 "/usr/lib64/pppd/2.4.5/radius.so"

    cat >>/etc/ppp/pptpd-options<<EOF
    plugin /usr/lib/pppd/2.4.5/radius.so
    radius-config-file /usr/local/etc/radiusclient/radiusclient.conf
    EOF

    3.5、L2TP启用freeradius插件
    L2TP 的道理也一样,你首先安装配置好L2TP/IPSec,并保证能正常使用。

    注:64位系统插件路径是 "/usr/lib64/pppd/2.4.5/radius.so"


     cat >>/etc/ppp/options.xl2tpd<<EOF
    plugin /usr/lib/pppd/2.4.5/radius.so
    radius-config-file /usr/local/etc/radiusclient/radiusclient.conf
    EOF

    四、用户权限管理

     # 连接 MySQL 数据库
    mysql -uroot -p123456;
     
    # 使用 radius 数据库
    USE radius;
     
    # 添加用户demo,密码demo,注意是在radchec表
    INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('demo','Cleartext-Password',':=','demo');
     
    # 将用户demo加入VIP1用户组
    INSERT INTO radusergroup (username,groupname) VALUES ('demo','VIP1');
     
    # 限制同时登陆人数,注意是在radgroupcheck表
    INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES ('normal','Simultaneous-Use',':=','1');
     
    # 其他
    INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Auth-Type',':=','Local');
    INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Service-Type',':=','Framed-User');
    INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Framed-Protocol',':=','PPP');
    INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Framed-MTU',':=','1500');
    INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Framed-Compression',':=','Van-Jacobson-TCP-IP');

    五、启动
     
     cp /usr/local/sbin/rc.radiusd /etc/init.d/radiusd
    /etc/init.d/radiusd start

    原文地址:https://wangyan.org/blog/freeradius-pptp-l2tp-html.html
    参考文章:wiki.freeradius.org/SQL%20HOWTO

  • 相关阅读:
    【Swift】WKWebView与JS的交互使用
    【React Native】进阶指南之二(手势响应系统)
    【React Native】进阶指南之一(特定平台、图片加载、动画使用)
    React Native适配IPhoneX系列设备之<SafeAreaView />
    【React Native】react-native之集成支付宝支付、微信支付
    【React Natvie】React-native-swiper的安装和配置【ES6】
    React Native之React Navigation踩坑
    遭遇裁员,如何渡过心理危机?
    Spring 核心技术与产品理念剖析【下】
    Spring 核心技术与产品理念剖析【上】
  • 原文地址:https://www.cnblogs.com/chulia20002001/p/6971916.html
Copyright © 2011-2022 走看看