Akagi201
8/11/2014 - 7:52 AM

freeradius-mysql.md

sudo tasksel - ssh server + lamp server - 设置mysql root密码

sudo aptitude install -y mysql-client sudo aptitude install -y php5-gd php-pear php-db sudo aptitude install -y freeradius freeradius-mysql freeradius-client

sudo aptitude install -y phpmyadmin - apache2

wget http://sourceforge.net/projects/daloradius/files/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz

tar xvf daloradius-0.9-9.tar.gz

mv daloradius-0.9-9 daloradius

sudo cp daloradius/ /var/www -R

sudo chown www-data:www-data /var/www/daloradius -R

sudo chmod 644 /var/www/daloradius/library/daloradius.conf.php

mysql -uroot -p CREATE DATABASE radius; GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "radpass"; exit

/var/www/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql

设置编码方式为utf8

创建表: batch_history, billing_history, billing_merchant, billing_paypal, billing_plans, billing_plans_profiles, billing_rates, cui, dictionary, hotspots, invoice, invoice_items, invoice_status, invoice_type, nas, node, operators, operators_acl, operators_acl_files, payment, payment_type, proxys, radacct, radcheck, radgroupcheck, radgroupreply, radhuntgroup, radippool, radpostauth, radreply, radusergroup, realms, userbillinfo, userinfo, wimac

/etc/freeradius/sql/mysql/schema.sql

创建表: radacct, radcheck, radgroupcheck, radgroupreply, radreply, radusergroup, radpostauth

/etc/freeradius/sql/mysql/admin.sql

创建用户radius@localhost, 设置密码radpass, 授予权限.

/etc/freeradius/sql/mysql/nas.sql

创建表: nas

/etc/freeradius/sql/mysql/cui.sql

创建表: cui

/etc/freeradius/sql/mysql/wimax.sql

创建表: wimax

/etc/freeradius/sql/mysql/ippool.sql

创建表: radippool

cd /var/www/daloradius/contrib/db/

mysql -u root -p radius < fr2-mysql-daloradius-and-freeradius.sql

$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'radpass';
mysql -u root -p
revoke all privileges on *.* from 'radius'@'localhost';
grant all privileges on radius.* to 'radius'@'localhost';
flush privileges;
exit

MySQL中表结构的定义

针对FreeRadius2,数据表的设计和结构定义在下面的文件中:

/etc/raddb/sql/mysql/schema.sql 主数据库定义,7个表,包括

radcheck 用户检查信息表

radreply 用户回复信息表

radgroupcheck 用户组检查信息表

radgroupreply 用户组检查信息表

radusergroup 用户和组关系表

radacct 计费情况表

radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。

/etc/raddb/sql/mysql/nas.sql 网络设备定义,只有一个表

nas 网络设备表

下面的表用于一些扩展功能,可以按需导入。

ippool.sql ip池

wimax.sql wimax设备支持

cui.sql cui 支持

生成SQL数据

  1. 在radusergroup表中, 匹配一个username属于他对应的groupname.
  2. 在radcheck表中, 每一个username带有一个Cleartext-Password的attribute, 对应的Value是他们的密码.
  3. 在radreply表中, 每一个username指定一个user-specific的radius reply attribute.
  4. 在radgroupreply表中, 创建attribute返回给所有的group成员.

配置freeradius来使用sql

  1. 编辑/etc/freeradius/sql.conf, 输入server, name 和password细节来连接你的SQL服务器和RADIUS服务器.

  2. 在/etc/freeradius.conf中去注释$INCLUDE sql.conf

  3. 编辑/etc/freeradius/sql.conf中 database = "mysql"(默认已经是这个了)

  4. 编辑/etc/freeradius/sites-available/default, 去注释 authorize{} section的sql. 注释掉files行. 注释掉preacct {}模块中的files行. 注释掉accounting {}模块中的radutmp行, 去注释sql行. session{}模块, 注释掉radutmp行, 去注释sql行. post-auth{}模块, 去注释sql行, 去注释sql行.

  5. 编辑/etc/freeradius/sites-available/inner-tunnel. 在authorize{}, 注释掉files行, 去注释sql行. 在session{}, 注释掉radutmp行, 去注释sql行. 在post-auth{}, 去注释sql行, 去注释sql行.

Refs