cracy 发表于 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.2Processing 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地址相符才可以通过验证了。

parphy 发表于 2005-3-22 09:24:15

dingzhi ding

clbuhao 发表于 2005-11-13 01:07:56

大家看到这样的贴,,不管是对与错,都在乱顶,,,
我基础差,,,,按照上面的说明去做,,,,,行不通...............

su30fly 发表于 2006-2-7 15:57:37

如果是freeradius0.8.1该怎么配置?

心想事成 发表于 2006-2-7 20:08:36

routeros的其它radius属性支持吗?比如上下行带宽

lovellh 发表于 2006-2-7 20:37:47

有没有更多的资料

haifengcn 发表于 2006-2-7 23:26:56

迷惑.

wangshj 发表于 2006-2-12 20:35:45

楼主看到帖子 请联系我!

qq 604585

yiyuan1234 发表于 2006-2-12 21:20:15

迷惑.
页: [1]
查看完整版本: FreeRadius的安装和PPPOE的客户端Mac和帐号