Chinaunix首页 | 论坛 | 博客
  • 博客访问: 144531
  • 博文数量: 58
  • 博客积分: 130
  • 博客等级: 入伍新兵
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 21:38
文章分类
文章存档

2012年(22)

2011年(36)

分类:

2011-11-30 22:32:29

原文地址:pppoe freeradius mysql 作者:snriyt

环境为
fedora 16 x64.
pppd version 2.4.5.
FreeRADIUS Version 2.1.12
mysql  Ver 14.14 Distrib 5.5.18.

一、pppd的安装配置。
1.软件添加里面搜索ppp,选择安装。
搜索radiusclient 选择安装。
  1. cat /etc/ppp/pppoe-server-options:

  2. auth
  3. require-chap
  4. default-mru
  5. default-asyncmap
  6. lcp-echo-interval 60
  7. lcp-echo-failure 5
  8. ms-dns 192.168.0.2
  9. ms-dns 61.132.90.92
  10. noipdefault
  11. noipx
  12. nodefaultroute
  13. noproxyarp
  14. noktune
  15. netmask 255.255.255.0
  16. logfile /var/log/pppd.log
  17. plugin /usr/lib64/pppd/2.4.5/radius.so  #配合radius 使用
  18. plugin /usr/lib64/pppd/2.4.5/radattr.so
  19. radius-config-file /etc/radiusclient-ng/radiusclient.conf
2.修改/etc/radiusclient-ng/server文件,添加
  1. localhost 123456#些为radius服务器的地址和访问radius服务器的密码

二、radius的配置
1.修改/etc/raddb/clients文件中的secret
  1. secret 123456  #访问radius服务器的密码
2.修改/etc/raddb/radius.conf
  1. $INCLUDE sql.conf
3.修改/etc/raddb/site-enabled/defaut文件。注释掉其中的
  1. files
  同时反注释
  1. sql
三、安装配置mysql
1.切换到/etc/raddb/sql/mysql目录下。
  1. mysql -uroot radius < schema.sql
  2. mysql -uroot radius < admin.sql
  3. mysql -uroot radius < ippool.sql
2.向mysql中添加测试数据。
  1. # /usr/local/mysql/bin/mysql -u root -p radius
  2. 先加入一些组信息:
  3. insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');
  4. insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type','=','Framed-User');
  5. insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask','=','255.255.255.0');
  6. insert into radgroupcheck (groupname, attribute, op, value) values ("user", "Auth-Type", ":=", "Local");

  7. 然后加入用户信息:
  8. insert into radcheck (username,attribute,op,value) values ('test1','User-Password','==','123456');

  9. 然后把用户加到组里:
  10. insert into usergroup(username,groupname) values('test1','user');
 3.配置radius与mysql的连接
 
  1. vim sql.conf

  2. # Connection info:
  3. server = "localhost"
  4. #port = 3306
  5. login = "root"
  6. password = "123456"            #note! 使用root用户可以避免[sql_ippool] error 1142.
四、启动服务
  1. service mysql start
  2. pppoe-server -I eth0 -xxx
  3. service radiusd -X
至此应当能使用test,123456正常拨号接入了。
如有错误可检查日志。

五、用sqlippool。
  1. mysql -uroot -prootpass radius < ippool.sql

  1. INSERT INTO radippool (pool_name, framedipaddress) VALUES ('main_pool', '192.168.0.1');
  2. INSERT INTO radippool (pool_name, framedipaddress) VALUES ('main_pool', '192.168.0.2');
  3. INSERT INTO radippool (pool_name, framedipaddress) VALUES ('main_pool', '192.168.0.3');
  4. INSERT INTO radippool (pool_name, framedipaddress) VALUES ('main_pool', '192.168.0.4');
启用sqlipool.
  1. accounting {
  2. sqlippool
  3. }

  4. post-auth {
  5. sqlippool
  6. }
添加groupcheck.
  1. INSERT into radgroupcheck (groupname,attribute,op,value) values('user', 'Pool-Name', ':=', 'main_pool');
这样user组的用户都可以分到main_pool里的ip。


六、网络通畅。
服务器是双网卡接入,eth0 10.72.222.249/10.72.222.254接入外面网络。
eth1接入内部网络。
  1. route add default gw 10.72.222.254
则可以实现内部网络机器通过服务器上网了。

最后,更改/etc/raddb/clients.conf.
  1. #ipaddr = 127.0.0.1
  2. ipaddr = 10.72.222.249

七、设置使得同一个用户不能重复登陆。
  1.修改 etc/raddb/sites-enabled 目录中的default 及inner-tunnel 这两个文件
 
  1. session {

  2. #radutmp
  3. # See "Simultaneous Use Checking Querie" in sql.conf
  4. sql
  5. }
 2.修改/etc/raddb/sql/mysql/dialup.conf
  1. # Simultaneous Use Checking Queries
  2. #######################################################################
  3. # simul_count_query - query for the number of current connections
  4. # - If this is not defined, no simultaneouls use checking
  5. # - will be performed by this module instance
  6. # simul_verify_query - query to return details of current connections for verification
  7. # - Leave blank or commented out to disable verification step
  8. # - Note that the returned field order should not be changed.
  9. #######################################################################

  10. # Uncomment simul_count_query to enable simultaneous use checking
 3.在数据库中添加策略
 
  1. INSERT INTO `radgroupcheck` ( `GroupName` , `Attribute` , `op` , `Value` ) VALUES ( 'user','Simultaneous-Use',':=','1');


阅读(857) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~