freeradius配置文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FreeRADIUS 服务端安装
1.1、下载、编译、安装
wget -c ftp:///pub/freeradius/freeradius-server-2.1.11.tar.gz
# tar zxf freeradius-server-2.1.11.tar.gz
# cd freeradius-server-2.1.11
# ./configure
# make && make install
1.2、基本文件的测试
测试是否安装成功,如果不需要与mysql集成,那么就已安装完成。
# vim /usr/local/etc/raddb/users
查找 steve Cleartext-Password := "testing", 取消该段内容的注释。
# 大写X,意思是以debug模式运行。
/usr/local/sbin/radiusd -X
#新开一个窗口执行,看到 "Access-Accept packet" 表示成功了,"Access-Reject" 表示失败了。
/usr/local/bin/radtest steve testing localhost 0 testing123
Define a User and Password
Edit /etc/raddb/users and create an example user account as the first entry. i.e. at the top of the file, such as:
testing Cleartext-Password := "password"
二.配置模块支持
2.1、启用MySQL模块支持
# 查找"sql.conf”(683行),去掉#号
vim /usr/local/etc/raddb/radiusd.conf
Oracle支持
回到之前解压的freeradius-server-2.1.12目录里
# cd ~/freeradius-server-2.1.12/src/modules/rlm_sql/drivers/rlm_sql_oracle
# ./configure --with-oracle-include-dir=${ORACLE_HOME}/rdbms/public
--with-oracle-lib-dir=${ORACLE_HOME}/lib
2.2、创建radius 数据库及表
# 123456是你mysql的root密码
mysqladmin -uroot -p123456 create radius;
#修改radius帐号的密码
cd /usr/local/etc/raddb/sql/mysql
sed -i 's/radpass/123456/g' admin.sql
sed -i 's/radpass/123456/g' /usr/local/etc/raddb/sql.conf
mysql -uroot -p123456 < admin.sql
mysql -uroot -p123456 radius < ippool.sql
mysql -uroot -p123456 radius < schema.sql
mysql -uroot -p123456 radius < wimax.sql
mysql -uroot -p123456 radius < cui.sql
mysql -uroot -p123456 radius < nas.sql
插入一些测试数据:
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
radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask','=','255.255.255.25 5');
mysql> insert into
radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0 ');
然后加入用户信息:
mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('geng', 'Password', 'peng');
然后把用户加到组里:
mysql> insert into radusergroup(username,groupname) values('geng','user');
mysql> select * from radcheck where UserName='geng';
1.编辑/etc/raddb/sql.conf
mysql用户名,密码根据自己的情况填写
第88行取消readclients = yes 前的注释
2.编辑/etc/raddb/sites-enabled/default
第145 行files前加注释
第152 行取消sql前的注释
第342 行取消sql前的注释
3.编辑/etc/raddb/sites-enabled/inner-tunnel
第111 行files前加注释
第118行取消sql前的注释
4.编辑/etc/raddb/eap.conf
第30行default_eap_type = md5改为default_eap_type = peap
5.编辑/etc/raddb/clients.conf,加入
de>client 192.168.4.3 {
secret = tp-link
shortname = test
}de>
注意:
如果出现以下报错
Mon Mar 17 11:09:08 2014 : Error: /usr/local/freeradius/etc/raddb/sql.conf[22]: Instantiation failed for module "sql"
Mon Mar 17 11:09:08 2014 : Error: /usr/local/freeradius/etc/raddb/sites-enabled/default[177]: Failed to find "sql" in the "modules" section.
Mon Mar 17 11:09:08 2014 : Error: /usr/local/freeradius/etc/raddb/sites-enabled/default[69]: Errors parsing authorize section.
Mon Mar 17 11:09:08 2014 : Error: Failed to load virtual server <default>
修改vi /etc/ld.so.conf加入mysql的lib路径 /usr/local/mysql/lib 。
然后执行:
[root@centos6 mysql]# ldconfig
2.3、打开从数据库查询nas支持
默认从 "/usr/local/etc/raddb/clients.conf" 文件读取,开启后可从数据库nas表读取。
sed -i 's/\#readclients/readclients/g' /usr/local/etc/raddb/sql.conf
2.4、打开在线人数查询支持
# 查找simul_count_query将279-282行注释去掉
vim /usr/local/etc/raddb/sql/mysql/dialup.conf
2.5、Oracle数据库支持
配置oracle数据
#su - oracle
-- 创建用户
create user radius identified by radpass;
GRANT CONNECT,RESOURCE,DBA to radius;
--创建表
#mkdir /home/oracle/sqls
将 /usr/local/etc/raddb/sql/oracle/schema.sql 拷贝到 /home/oracle/sql
--修改权限
#chown oracle:oinstall /home/oracle/sqls/schema.sql
#chmod 744 /home/oracle/sqls/schema.sql
切换到oracle
#su - oracle
$sqlplus radius/radpass@<yoursid>
SQL>start /home/oracle/sqls/schema.sql
SQL>alter table radacct modify groupname null; --非必须,如果报错,不用理会
SQL>CREATE TABLE nas (
id INT PRIMARY KEY,
nasname VARCHAR(128),
shortname VARCHAR(32),
type VARCHAR(30),
ports INT,
secret VARCHAR(60),
server VARCHAR(64),
community VARCHAR(50),
description VARCHAR(200)
);
SQL>CREATE SEQUENCE nas_seq START WITH 1 INCREMENT BY 1;
SQL>INSERT INTO radgroupreply VALUES (radgroupreply_seq.nextval,
'user','Service-Type','=','Framed-User');
SQL>INSERT INTO radgroupcheck VALUES (radgroupcheck_seq.nextval, 'user','Auth-Type','=','Local'); SQL>INSERT INTO radcheck VALUES (radcheck_seq.nextval, 'ora_usr','User-Password','==','ora_pwd'); SQL>INSERT INTO radusergroup VALUES (radusergroup_seq.nextval, 'ora_usr','user');
SQL>commit;
SQL>exit;
接下来对freeradius进行配置
编辑/usr/local/freeradius/etc/raddb/sql.conf
# vim /usr/local/freeradius/etc/raddb/sql.conf
修改配置文件中mysql的帐号及密码
#database = "mysql"
database = "oracle"
# Connection info:
server = “localhost”
port = 1521
login = "radius"
password = "radpass"
#radius_db = "radius"
radius_db = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.18.57.161)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = portaldb)))"
编辑/usr/local/etc/raddb/sites-enabled/default
# vim /usr/local/freeradius/etc/raddb/sites-enabled/default
(行数仅供参考,版本不同行数也不同)
170行 files 前加 # 注释
177行去掉 sql 前 # 注释
406行去掉 sql 前 # 注释
编辑/usr/local/freeradius/etc/raddb/sites-enabled/inner-tunnel
# vim /usr/local/freeradius/etc/raddb/sites-enabled/inner-tunnel
124行 files 前加 # 注释
131行去掉 sql 前 # 注释
编辑/usr/local/freeradius/etc/raddb/radiusd.conf
# vim /usr/local/freeradius/etc/raddb/radiusd.conf
去掉700行 $INCLUDE sql.conf 前的#注释
三、FreeRADIUS 客户端安装与配置
3.1、编译与安装
wget -c ftp:///pub/freeradius/freeradius-client-1.1.6.tar.gz
tar -zxf freeradius-client-1.1.6.tar.gz
cd freeradius-client-1.1.6
./configure
make && make install
3.2、设置通信密码
cat >>/usr/local/etc/radiusclient/servers<<EOF
localhost testing123
EOF
其中localhost可以写成服务器IP地址,testing123是认证服务器的连接密码。
注:如果使用的是IP地址,记得同时修改下面设置。
1
sed -i 's/localhost/192.168.8.129/g' /usr/local/etc/radiusclient/radiusclient.conf 3.3、增加字典
这一步很重要!否则windows客户端无法连接服务器。
wget -c /files/dictionary.microsoft
mv ./dictionary.microsoft /usr/local/etc/radiusclient/
cat >>/usr/local/etc/radiusclient/dictionary<<EOF
INCLUDE /usr/local/etc/radiusclient/dictionary.sip
INCLUDE /usr/local/etc/radiusclient/dictionary.ascend
INCLUDE /usr/local/etc/radiusclient/dictionary.merit
INCLUDE /usr/local/etc/radiusclient/pat
INCLUDE /usr/local/etc/radiusclient/dictionary.microsoft
EOF
3.4、PPTP启用freeradius插件
这一步网上一些教程没提,但很重要,否则会报错!
sed -i 's/logwtmp/\#logwtmp/g' /etc/pptpd.conf
sed -i 's/radius_deadtime/\#radius_deadtime/g' /usr/local/etc/radiusclient/radiusclient.conf
sed -i 's/bindaddr/\#bindaddr/g' /usr/local/etc/radiusclient/radiusclient.conf
注:64位系统插件路径是 "/usr/lib64/pppd/2.4.5/radius.so"
cat >>/etc/ppp/pptpd-options<<EOF
plugin /usr/lib/pppd/2.4.5/radius.so
radius-config-file /usr/local/etc/radiusclient/radiusclient.conf
EOF
3.5、L2TP启用freeradius插件
L2TP 的道理也一样,你首先安装配置好L2TP/IPSec,并保证能正常使用。
注:64位系统插件路径是 "/usr/lib64/pppd/2.4.5/radius.so"
cat >>/etc/ppp/options.xl2tpd<<EOF
plugin /usr/lib/pppd/2.4.5/radius.so
radius-config-file /usr/local/etc/radiusclient/radiusclient.conf
EOF
四、用户权限管理
# 连接 MySQL
mysql -uroot -p123456;
# 使用 radius 数据库
USE radius;
# 添加用户demo,密码demo,注意是在radchec表
INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('demo','Cleartext-Password',':=','demo');
# 将用户demo加入VIP1用户组
INSERT INTO radusergroup (username,groupname) VALUES ('demo','VIP1');
# 限制同时登陆人数,注意是在radgroupcheck表
INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES ('normal','Simultaneous-Use',':=','1');
# 其他
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Auth-Type',':=','Local'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES
('VIP1','Service-Type',':=','Framed-User');
INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Framed-Protocol',':=','PPP'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('VIP1','Framed-MTU',':=','1500'); INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES
('VIP1','Framed-Compression',':=','Van-Jacobson-TCP-IP');
五、启动
cp /usr/local/sbin/rc.radiusd /etc/init.d/radiusd
/etc/init.d/radiusd start
六、安装daloradius
在/projects/daloradius下载daloradius-0.9-8.tar.gz
# tar zxvf daloradius-0.9-8.tar.gz
# mv daloradius-0.9.8 /var/ww/html/daloradius
# cd /var/ww/html/daloradius
# mysql -u root -p radius < contrib/db/mysql-daloradius.sql
# vi library/daloradius.conf.php
$configValues['FREERADIUS_VERSION'] = '2';
$configValues['CONFIG_DB_TBL_RADUSERGROUP'] = 'radusergroup';
mysql用户名,密码根据自己的情况填写。
五、无线路由器上的配置
SSID号:tp-link123
在无线参数-基本设置里,勾选"开启安全设置",
安全类型:WPA/WPA2
安全选项:WPA
加密方法:TKIP
Radius服务器IP:192.168.4.10
Radius端口:1812
Radius密码:tp-link
七、客户机上windows xp的设置。
无线网络连接上右键-属性,“无线网络配置”-“首选网络”-选中tp-link123,单击“属性”-“关联”,网络身份验证选WPA,数据加密选TKIP;
单击“验证”:EAP类型选"受保护的EAP(PEAP)",在他的“属性”里,去掉“验证服务器证书”前的勾,在“选择身份验证方法”里选"安全密码(EAP-MSCHAPv2)",单击“配置”,去掉“自动使用Windows登录名和密码(以及域,如果有的话)”前的勾。
完成后回到验证页,去掉“当计算机信息可用时验证为计算机”前的勾。