这次主要来看看 freeradius的安装,以及Python拓展的例子,还有计费字段根据厂家进行拓展。

3.0版本的安装

参考文章


yum install libtalloc-devel

wget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.11.tar.gz

tar zxvf freeradius-server-3.0.11.tar.gz

cd freeradius-server-3.0.11

./configure

make

make install

ldconfig

如果需要用mysql 和 python拓展  yum 安装下 python-devel, mysql-devel

默认的安装位置  /usr/local/etc/raddb/

开启python拓展

  1. mods-available/python 软连接到 mods-enabled/python

  2. 编辑 mods-enabled/python文件,这里是配置不同阶段使用那些python模块的地方,我这里只要去掉 #func_authorize = authorize这行的注释即可

  3. 指定python的路径 export PYTHONPATH='/usr/local/etc/raddb/mods-config/python'

文档地址

由于只启用了认证的部分,默认的配置的还是example.py 文件,所以这里就用这部分来实验下。

打印一些操作信息


def authorize(p):

  print "*** authorize ***"

  print

  radiusd.radlog(radiusd.L_INFO, '*** radlog call in authorize llllll***')

  print

  print p

  print sys.path

  print os.getcwd()

  radiusd.radlog(radiusd.L_INFO, '*** python part end ***')

  return radiusd.RLM_MODULE_OK

自定义reply


def authorize(p):

  print "*** authorize ***"

  print

  radiusd.radlog(radiusd.L_INFO, '*** radlog call in authorize llllll***')

  print

  print p

  reply = (('Reply-Message', ':=', 'Hello from rlm_python'),

           ('Benu-Redirection-URL', ':=', 'http://baidu.com'),)

  config = (('Cleartext-Password', 'benu123'),)

  radiusd.radlog(radiusd.L_INFO, '*** python part end ***')

  return (radiusd.RLM_MODULE_OK, reply, config)

config 配置的是用户的密码, 来看下测试结果


# echo "User-Name=cc:ff:ff:ff:ff,User-Password=benu123" |radclient 127.0.0.1:1812 auth testing123 -x

Sent Access-Request Id 182 from 0.0.0.0:48733 to 127.0.0.1:1812 length 54

    User-Name = "cc:ff:ff:ff:ff"

    User-Password = "benu123"

    Cleartext-Password = "benu123"

Received Access-Accept Id 182 from 127.0.0.1:1812 to 0.0.0.0:0 length 67

    Reply-Message = "Hello from rlm_python"

    Benu-Redirection-URL = "http://baidu.com"

拓展计费表字段

以mysql作为计费表为例子。

  1. 调整mysql中计费表的字段

  2. /mods-enabled/sql 中要设置mysql数据库, 否则还是加载默认的sqlite

  3. 修改 mods-config/sql/main/mysql/queries.conf 里的insert和update语句,根据已经有语句的作为参照语法,调整sql即可。

  4. 修改完之后 使用 radiusd -Xx 来启动,如果语法正确是可以正常启动的,否则会报错。

  5. 接着就可以用 radclient 来模拟认证请求测试了。

【freeradius3】安装和拓展需求的更多相关文章

  1. linux和windows下安装python拓展包及requirement.txt安装类库

    python拓展包安装 直接安装拓展包默认路径: Unix(Linux)默认路径:/usr/local/lib/pythonX.Y/site-packagesWindows默认路径:C:\Python ...

  2. phpstudy 2016 切换Nginx+php7.0版本所需运行库 vc14 + 安装redis拓展

    去微软官方下载vc14的运行库 链接:https://www.microsoft.com/en-us/download/details.aspx?id=48145 32位运行库 安装成功 切换版本成功 ...

  3. 如何导出chrome已安装的拓展程序

    如何导出chrome已安装的拓展程序 已安装的chrome插件可以在浏览区中输入*chrome://extensions*便可以查看插件列表. 对于windows系统来说,这些插件对应的目录为: C: ...

  4. mac安装redis拓展

    安装 下载源码 编译安装 添加拓展 添加权限重启 安装 在mac上安装了php7.1.7 php -m 查看安装的拓展,没有redis,以前可以brew install php71-redis简单命令 ...

  5. 2. Rabbitmq php 安装 amqp 拓展

    记录一下 使用 rabbitmq 安装 amqp 拓展 环境 ubuntu   安装目录在 /user/local 下进行 1. 安装 wget apt-get update apt-get inst ...

  6. Win10中装Win10---virtualbox虚拟机的安装及拓展

    最近在准备一档专栏时,发现我电脑中已经把一些环境配置完了,卸掉重装又显得麻烦,于是我就求助于虚拟机,虚拟机确实是个很好的东西,不久前我的一个伙伴向我请教虚拟机怎么装,发现这玩意三言两语还很难说清,于是 ...

  7. windows环境下wamp安装redis拓展

    环境: wamp集成环境 安装分为两部 1.安装redis客户端   https://github.com/ServiceStack/redis-windows/raw/master/download ...

  8. 安装 redis 拓展

    PHP API 20121113 PHP Extension 20121212 Zend Extension 220121212 Zend Extension Build API220121212,T ...

  9. php7 安装redis拓展

    配置之前应该是环境已经搭好了,phpinfo的页面可以加载出来.   使用git clone下载git上的phpredis扩展包 git clone  https://github.com/phpre ...

随机推荐

  1. [Vim]新建python文件自动添加python header

    使用vim脚本来实现的,使用了模板,几行代码就能实现很实用. ~/.vimrc 中的代码 "auto add pyhton header --start autocmd BufNewFile ...

  2. 开源IMDG之GridGain

    作为另一款主流的开源数据网格产品,GridGain是Hazelcast的强有力竞争者.同样提供了社区版和商业版,近日GridGain的开源版本已经进入Apache孵化器项目Ignite(一款开源的内存 ...

  3. SQL基本函数

    字符型函数 函数名称 描述 LOWER 将特定的字符串转化为小写,只影响字母字符串. UPPER 将整个字符串转换成大写,只影响字母字符串. INITCAP 将字符串中每一个单词的第一个字母转换为大写 ...

  4. 剑指Offer——携程笔试题+知识点总结

    剑指Offer--携程笔试题+知识点总结 情景回顾 时间:2016.9.17 19:10-21:10 地点:山东省网络环境智能计算技术重点实验室 事件:携程笔试 总体来说,携程笔试内容与其它企业笔试题 ...

  5. 13 SQLiteOpenHelper SQLiteDatabase详解

    创建数据库: 1. 创建一个类继承SQLiteOpenHelper 2. 创建继承对象 new SQLiteOpenHelper() 3. 用创建的对象获取可写或者可读的SQLiteDatabase ...

  6. linux2.6内核链表

    一.        链表数据结构简介      链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式.相对于数组,链表具有更好的动态性,建立链 ...

  7. Python爬虫! 单爬,批量爬,这都不是事!

    昨天做了一个煎蛋网妹子图的爬虫,个人感觉效果不错.但是每次都得重复的敲辣么多的代码(相比于Java或者其他语言的爬虫实现,Python的代码量可谓是相当的少了),就封装了一下!可以实现对批量网址以及单 ...

  8. Dynamics CRM2015 2015版本可用的OData Query Designer工具

    2015后很多工具无法使用,包括2011版的OData Query Designer,这里介绍一款可用的工具,Dynamics XRM Tools for CRM 2015,下载地址:https:// ...

  9. Elcipse安装gradle插件

    参考:             http://www.gradle.org/docs/current/userguide/installation.html (1)下载Gradle 官网下载www.g ...

  10. Linux下多线程编程遇到的一些问题

    今天在学习了Linux的多线程编程的基础的知识点.于是就试着做了一个简单的Demo.本以为会得到预期的结果.不成想却遇到了意想不到的问题. 代码展示 我的C 代码很简单,就是一个简单的示例程序,如下: ...