先说说我的机子环境和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的。】
二、交换机的配置
端口配置,可以互相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地址是被我贴出来的时候打错的,没有问题。再次感谢!