分享
 
 
 

FreeRadius的安装和PPPOE中mac地址与帐号的绑定

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

上星期开始接触RouterOS, 现在也发一贴共享下我的研究,呵呵

我是在Solaris 9 sparc下安装的,事先已经安装和配制好gcc的环境。

一、要先安装好openssl才可以安装freeradius,从sunfreeware.com上下回来openssl的package,

gzip -d openssl-0.9.6i-sol9-sparc-local.gz

pkgadd -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.gz

tar xvf freeradius-1.0.2.tar

cd freeradius-1.0.2

cp /usr/local/ssl/include/openssl/* src/include/

#(由于我之前在make时报告说不到openssl的des.h,所以此处先行把openssl下的头文件都拷贝过来了再编译,应该可以利用编译的环境变量来去掉这个错误,但是我现在还不知道该怎么做。:) )

./configure --prefix=/usr/local/FreeRadius #我喜欢加上路径

make

make install

cd 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{

preprocess

chap

mschap

suffix

sql

}

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=1

89

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 = 0x010005267ced3a094795c5a3ae2066441ba100000000000000

008351b4df589f1e93f0c0a1058c0df4282bb48cf3fdcdca4d

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 ${au

thcheck_table} WHERE Username = '%{SQL-User-Name}' and (mac='%{Calling-Station-I

d}' or isnull(mac) or mac='') ORDER BY id"

#如果需要对大小写敏感的话使用下面的语句

# authorize_check_query = "SELECT id,UserName,Attribute,Value,op FROM ${au

thcheck_table} WHERE STRCMP(Username, '%{SQL-User-Name}') = 0 and (mac='%{Calling-Station-I

d}' or isnull(mac) or mac='') ORDER BY id"

修改postauth_query语句

#change here 把postauth_query改为记录mac地址的过程了

postauth_query = "UPDATE ${authcheck_table} set mac='%{Calling-Station-I

d}' WHERE Username = '%{SQL-User-Name}' and (mac='' or isnull(mac))"

然后在RouterOS中开启radius并指向radius服务器,radius服务器开启radiusd,就可以实现使用Radius进行验证,同时会在用户首次登陆时记录其mac地址,下一次要验证时就会是用户名和mac地址相符才可以通过验证了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有