linux上构建freeradius,网上搜索的

来源:互联网 发布:淘宝怎样联系天猫客服 编辑:程序博客网 时间:2024/05/16 19:49
本人菜鸟一枚,这几天在捣鼓FreeRADIUS。已经根据网上一些牛人的帖子,成功的在MySQL中添加账户和密码,并能够用“radtest”命令测试成功。但是最后在交换机上配置完AAA后,用“test aaa group radius zbx zbx new-code”测试的时候发现不可达。拓扑如下:是用GNS3模拟cisco的交换机,连接vitrialBox的虚拟网卡(redhat系统的)。

2012-05-17 17 13 19.jpg 
先说说我的机子环境和FreeRADIUS的版本:REDhat企业版5.0;freeradius是freeradius-server-2.1.12的。
一、服务器中所做的配置如下:

1. 创建radius数据库

create database radius;

2. 导入表

mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/schema.sql

mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/nas.sql

  

3. 修改default文件

authorize{} accounting {}中的sql前面的#去掉,并把authorize{} 中的files前加#

4. 修改sql.conf

这个加上sql root和密码

5. 修改clients.conf文件,路径/usr/local/etc/raddb/clients.conf

client 127.0.0.1 {

secret = testing123

shortname = localhost

nastype = other

}

添加了这个,这是我配置的交换机的地址。

client 192.168.1.254 {

secret = testing123

shortname = radiusclient

}

client 192.168.1.0/24 {

secret = testing123

shortname = private-network

}

6.  修改radius.conf,在目录/usr/local/etc/raddb/radiusd.conf

删除$INCLUDE sql.conf前的“#” ,使其加载sql.conf

7.  创建数据库的东西

mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');

mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User');

建立用户信息:

mysql> insert into radcheck (username,attribute,op,value) values (zbx','User-Password',':=','zbx'); 将用户加入组中:

mysql> insert into radusergroup (username,groupname) values ('zbx','user');

8. 测试radius

radtest test test localhost 0 testing123【图片好像有点模糊,就是ACCEPT的。】

2012-05-17 22 27 45.png


二、交换机的配置

端口配置,可以互相ping通。

int f0/1
switchport mode access
spanning-tree portfast
int f0/0
switchport mode access
spanning-tree portfast
exit
int vlan 1
ip add 172.16.1.254 255.255.255.0
no shutdown


aaa配置:

aaa new-model 
aaa authentication login default group radius local
radius-server host 172.16.1.1 key testing123
aaa authorization network default group radius local
dot1x system-auth-control 
int f0/0
switch mode access
dot1x port-control auto



配置完成后,测试的时候发现“AAA server is not reachable”
我尝试打开debug aaa authentication 和debug aaa protocol radius,看不太懂debug信息。不过我觉得没什么参考价值,因为连接不上服务器。
也尝试抓包,只发现Access-requst的请求包,和返回的icmp的不可达的包。
在这个过程中,我也打开radius的debug(radiusd -X),一点消息都没有。

不知道是什么问题呢?请问我该如何配置,让NAS连接上服务器?

另外,我发现在radius下,用radiusd -X打开debug模式的时候,发现最后几句是这样的。
... adding new socket proxy address * port 32778
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/var/run/radiusd/radiusd.sock
Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel
Listening on proxy address * port 1814
Ready to process requests.

是不是说,radius会监听这些端口?
我在交换机上,发现配置完aaa没打开debug的时候,发现下面两句话:
*Mar  1 01:22:29.519: %RADIUS-4-RADIUS_DEAD: RADIUS server 172.16.1.1:1645,1646 is not responding.
*Mar  1 01:22:29.523: %RADIUS-4-RADIUS_ALIVE: RADIUS server 172.16.1.1:1645,1646 has returned.
这是什么意思呢?1645和1646是交换机发包的端口吗?
这样就没被radius监听到吗?




hi,我从iteye上看到了你的评论

1、radius server的防火墙iptables有没有打开?因为server在radiusd -X的时候没有接收到任何客户端的请求信息,所以要么就是server的防火墙阻止了,要么就是交换机到radius server的网络不通(这个你可以在交换机上ping下server看看)
另端口确实是auth:1812,acct:1813

2、radius server配置那块,因为你的交换机地址是172.16.1.154,所以client.conf里的
client 192.168.1.254 {
secret = testing123
shortname = radiusclient
}
应该改成
client 172.16.1.254 {
secret = testing123
shortname = radiusclient
}

先把第一个搞定了,再进行第二步,调试的时候server那边以以debug开启radiusd,注意查看输出信息



我把iptables关闭了,果然就可以了。问题2中的client地址是被我贴出来的时候打错的,没有问题。再次感谢!

0 0
原创粉丝点击