找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8697|回复: 8

[radius] FreeRadius的安装和PPPOE的客户端Mac和帐号

[复制链接]
发表于 2005-3-21 19:46:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
[原创]Freeradius的安装和PPPOE的客户端Mac和帐号的绑定实现这里的title太短了,把我的标题也去尾了。  上星期开始接触routeros,在这里找到了不少好的资料,现在也发一贴共享下我的研究,呵呵FreeRadius我是在Solaris 9 sparc下安装的,事先已经安装和配制好gcc的环境。一、要先安装好openssl才可以安装freeradius,从sunfreeware.com上下回来openssl的package,gzip -d openssl-0.9.6i-sol9-sparc-local.gzpkgadd -d openssl-0.9.6i-sol9-sparc-loca二、从www.freeradius.org下回来最新的freeradius-1.0.2.tar.gz(?to 2005.03.21),gzip -d freeradius-1.0.2.tar.gztar xvf freeradius-1.0.2.tarcd freeradius-1.0.2mkdir src/include/opensslcp /usr/local/ssl/include/openssl/* src/include/openssl/#(由于我之前在make时报告说不到openssl的des.h,所以此处先行把openssl下的头文件都拷贝过来了再编译,应该可以利用编译的环境变量来去掉这个错误,但是我现在还不知道该怎么做。 )./configure --prefix=/usr/local/FreeRadius             #我喜欢加上路径makemake installcd src/modules/rlm_sql/drivers/rlm_sql_mysql    连接上mysql,create database radius          #创建radius的数据库mysql -uroot -p密码 radius < db_mysql.sql    #导入数据表结构现在已经安装好了FreeRadius,下面是进行配置文件的修改(参考了http://www.linuxbyte.net/view.php?skin=art&ID=3570)编辑/usr/local/etc/raddb/radius.conf使其支持SQL,修改后如下:authorize{preprocesschapmschapsuffixsql}accounting{……sql……}修改sql.conf,如下所示:更改sql.conf   server="localhost"   login="root"   password="mysql的root的密码"   radius_db="radius" client.conf中保存的客户端能否连接上来的配置,默认配置下localhost是可以有连接权限的,而别的IP都没有权限,所以我们可以根据自己的需要添加IP,简单的配置是(复杂的配置我还没有看。 )client 192.168.1.2{        secret   =通讯用的密码        shortname=hehemyradius     #为这个连接使用的别名}往数据库radius中添加一些测试用的数据insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Auth-Tyep’,’:=’,’local’);insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Service-Type’,’:=’,’Framed-User’);insert into radgroupreply (groupname,attribute,op,value) values(‘user’,’Framed-IP-Netmask’,’:=’,’255.255.255.0’); #我查阅了doc/rlm_sql。根据文档的描述,op值不能为空,代表了校对用户名和密码的方式. 可以为:#   :=    !=   ==  等几种方式  加入测试账号 insert into radcheck (UserName,Attribute,op,Value) values ('test','User-Password',':=','test');  测试账号加入组 insert into usergroup (UserName,GroupName) values ('test','user');现在可以启动freedius到调试模式.      /usr/local/FreeRadius/sbin/radiusd -X 注,网上说报找不到文件rlm_sql_mysql这个时候只要把库文件加入系统搜索的目录里,但是我的机器可能以前就已经配置过mysql了,所以没有出错。万一真的出错就  cp /usr/local/lib/* /usr/lib    这时会看到radius启动的信息,新开一个终端,运行   radtest test teset localhost 0 testing123 看到debug模式接收到的信息就可以了在使用时发现默认情况下RouterOS就已经很顺利的读取到了radius的帐号和密码信息,验证通过,而且通过后pppoe的连接信息会被freeradius记录到检测了一下freeradius接收到的信息rad_recv: Access-Request packet from host 192.168.1.1:32769, id=19, length=189        Service-Type = Framed-User        Framed-Protocol = PPP        NAS-Identifier = "MikroTik"        NAS-Port = 39        NAS-Port-Type = Ethernet        User-Name = "test"        Calling-Station-Id = "0f:05:5D:66:F1:f4"        Called-Station-Id = "PPPOETest"        NAS-Port-Id = "vlan_info"        MS-CHAP-Challenge = 0x9683c4b8ccbc81d00f92db8cd31fb500        MS-CHAP2-Response = 0x010005267ced3a094795c5a3ae2066441ba100000000000000008351b4df589f1e93f0c0a1058c0df4282bb48cf3fdcdca4d        NAS-IP-Address = 192.168.1.2  Processing the authorize section of radiusd.conf说明有发送pppoe客户端的用户名和物理地址过来,也就是应该可以进行用户名和物理地址的混合验证,努力修改中......先记录下来再说。19:03pm  总算是完成了可以用RouteOS+radius+mysql实现首次记录mac地址,之后pppoe拨号时就把pppoe的帐号和mac地址绑定认证了为mysql的数据库radius中的表radcheck增加一个mac字段,varchar(50)类型在上面的radiusd.conf中加多一个步骤post-auth {     sql             #去掉原来的注释语句 }修改sql.conf中的authorize_check_query为#这里修改验证方式,加上mac验证(我是使用了大小写不敏感的那条sql语句改写)        authorize_check_query = "SELECT id,UserName,Attribute,Value,op FROM ${authcheck_table} WHERE Username = '%{SQL-User-Name}' and (mac='%{Calling-Station-Id}' or isnull(mac) or mac='') ORDER BY id"#如果需要对大小写敏感的话使用下面的语句#       authorize_check_query = "SELECT id,UserName,Attribute,Value,op FROM ${authcheck_table} WHERE STRCMP(Username, '%{SQL-User-Name}') = 0 and (mac='%{Calling-Station-Id}' or isnull(mac) or mac='')  ORDER BY id"      修改postauth_query语句#change here 把postauth_query改为记录mac地址的过程了        postauth_query = "UPDATE ${authcheck_table} set mac='%{Calling-Station-Id}'  WHERE Username = '%{SQL-User-Name}' and (mac='' or isnull(mac))"然后在Routeros中开启radius并指向radius服务器,radius服务器开启radiusd,就可以实现使用Radius进行验证,同时会在用户首次登陆时记录其mac地址,下一次要验证时就会是用户名和mac地址相符才可以通过验证了。
routeros
发表于 2005-3-22 09:24:15 | 显示全部楼层
dingzhi ding
routeros
回复

使用道具 举报

发表于 2005-11-13 01:07:56 | 显示全部楼层
大家看到这样的贴,,不管是对与错,都在乱顶,,,
我基础差,,,,按照上面的说明去做,,,,,行不通...............
routeros
回复

使用道具 举报

发表于 2006-2-7 15:57:37 | 显示全部楼层
如果是freeradius0.8.1该怎么配置?
routeros
回复

使用道具 举报

发表于 2006-2-7 20:08:36 | 显示全部楼层
routeros的其它radius属性支持吗?比如上下行带宽
routeros
回复

使用道具 举报

发表于 2006-2-7 20:37:47 | 显示全部楼层
有没有更多的资料
routeros
回复

使用道具 举报

发表于 2006-2-7 23:26:56 | 显示全部楼层
迷惑.
routeros
回复

使用道具 举报

发表于 2006-2-12 20:35:45 | 显示全部楼层

楼主看到帖子 请联系我!

qq 604585
routeros
回复

使用道具 举报

发表于 2006-2-12 21:20:15 | 显示全部楼层
迷惑.
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-22 11:02 , Processed in 0.108465 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表