文档章节

FreeRADIUS + MySQL 安装配置笔记

任梁荣
 任梁荣
发布于 2015/12/12 21:00
字数 1408
阅读 625
收藏 1

RADIUS认证服务器(Remote Authentication Dial In User Service,远程用户拨号认证系统)是目前应用最广泛的AAA协议(AAA=authentication、Authorization、Accounting,即认证、授权、计费)。随着网络安全需求提高,中小企业的局域网集中用户认证,特别是使用VPDN专网的也逐渐需要建立自己的认证服务器以管理拨号用户。但这些用户不需要使用昂贵的专业系统,采用PC服务器和Linux系统的Freeradius+MySQL就能可靠地实现。
首先请确认你已经搭建好pptpd,并可以正常使用。


一、FreeRADIUS 服务端安装
1.1、下载、编译、安装
wget -c ftp://ftp.freeradius.org/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" (76-84行), 取消该段内容的注释。

 # 大写X,意思是以debug模式运行。
/usr/local/sbin/radiusd -X
 
#新开一个窗口执行,看到 "Access-Accept packet" 表示成功了,"Access-Reject" 表示失败了。
/usr/local/bin/radtest steve testing localhost 0 testing123

二、FreeRadius MySQL 模块配置
2.1、启用MySQL模块支持

 # 查找"sql.conf”(683行),去掉#号
vim /usr/local/etc/raddb/radiusd.conf

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

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、修改sites-enabled目录配置文件

 vim /usr/local/etc/raddb/sites-enabled/default

找到authorize {}模块,注释掉files(159行),去掉sql前的#号(166行)
找到accounting {}模块,注释掉radutmp(385行),注释掉去掉sql前面的#号(395行)。
找到session {}模块,注释掉radutmp(439行),去掉sql前面的#号(443行)。
找到post-auth {}模块,去掉sql前的#号(464行),去掉sql前的#号(552行)。

 vim /usr/local/etc/raddb/sites-enabled/inner-tunnel

找到authorize {}模块,注释掉files(124行),去掉sql前的#号(131行)。
找到session {}模块,注释掉radutmp(251行),去掉sql前面的#号(255行)。
找到post-auth {}模块,去掉sql前的#号(277行),去掉sql前的#号(301行)。

三、FreeRADIUS 客户端安装与配置
3.1、编译与安装
wget -c ftp://ftp.freeradius.org/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客户端无法连接服务器。

1
2
 wget -c http://small-script.googlecode.com/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/dictionary.compat
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


安装过程中遇到的问题:

Could not link driver rlm_sql_mysql: rlm_sql_mysql.so: cannot open shared object file: No such file or directory

rlm_sql   (sql):   Could   not   link   driver   rlm_sql_mysql:   rlm_sql_mysql.so:   cannot   open   shared   object   file:   No   such   file   or   directory
rlm_sql   (sql):   Make   sure   it   (and   all   its   dependent   libraries!)   are   in   the   search   path   of   your   system ‘s   ld.
radiusd.conf[14]:   sql:   Module   instantiation   failed.
radiusd.conf[1844]   Unknown   module    “sql “.
radiusd.conf[1773]   Failed   to   parse   authorize   section.


解决:find / -name 'rlm_sql_mysql.so'

    cp 结果以/usr/local/radius/lib下面就好了




© 著作权归作者所有

任梁荣
粉丝 6
博文 41
码字总数 40217
作品 0
上海
后端工程师
私信 提问
CentOS6.5搭建PPTP+Freeradius整合***管理系统

一、搭建PPTP服务   1、安装yum源 [root@Node ~]# cd /etc/yum.repos.d [root@Node ~]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo [root@Node ~]# yum -y install epel-r......

yangxuncai110
2018/06/27
0
0
在Xen Debian 上安裝配置Freeradius2 + Mysql + Daloradi...

安装Debian apt-get update apt-get -y upgrade ============================================================================ 提醒: 以上三行, 只要連上Internet正常, 運行時什麼錯誤都不......

神勇小白鼠
2012/02/02
452
0
OpenconnectVPN 双网卡(策略路由方式,非NAT)部署方案_20181129更新

一、Ocserv简介 Openconnect VPN服务端简称ocserv(Openconnect VPN Server),ocserv是一款开源的,兼容Cisco Anyconnect VPN的VPN服务端软件。目前状况下通讯较为稳定,干扰较小。主要优势...

123号-挨踢攻城尸
2017/10/16
1K
0
在 Gentoo 上配置 FreeRadius 支持 MySQL

安装支持MySQL 的FreeRadius ,默认是不支持的: USE=”mysql” emerge freeradius 或者 echo “=net-dialup/freeradius-2.0.5 mysql” >> /etc/portage/package.use emerge freeradius radi......

鉴客
2011/10/26
1K
0
红帽RHEL5U3平台实现pppoe接入记账认证服务器的配置文档

早先做得一个文档,跟大家共享一下。 文档只写了简单的制作过程,没有涉及到相关基础知识的讲解,仅供大家参考。 红帽RHEL5U3平台实现pppoe接入记账认证服务器 作者:zorro 邮件:zorro@upl...

JavaGG
2009/06/06
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

PCB设计-Allegro软件入门系列-铺铜操作(下)

铺铜是PCB很常见的操作,PCB的敷铜一般都是覆地铜,增大地线面积,有利于地线阻抗降低,使电源和信号传输稳定,在高频的信号线附近敷铜,可大大减少电磁辐射干扰,起屏蔽作用。 本讲讲解啊一...

demyar
19分钟前
2
0
如何通过WASI SDK 在Linux上编译ZXing C++

Mozilla在今年三月份的时候公布了WASI。WASI的目标就是让WebAssembly在任何地方都可以运行,而不仅仅像现在这样只能运行在Node.js和Web浏览器中。WASI目前依然处于初级阶段,这篇文章分享下如...

yushulx
21分钟前
2
0
.Net界面开发神器—DevExpress官方汉化包免费下载!还在等什么?

点击获取DevExpress v19.1.7新版试用下载 DevExpress Localization Service允许您创建一组自定义的附属程序集,要将语言包添加到程序集中,请查看本文中为大家列出的对应版本的汉化包,下载并...

FILA6666
21分钟前
2
0
php生成二维码

        header('Content-Type: image/png');        //清除缓冲区,防止之前面不知道的情况下被加头部信息导致不显示图片内容        ob_clean();        $...

横着走的螃蟹
26分钟前
2
0
伪类和伪元素

伪类和伪元素 伪类和伪元素,对于绝大多数同学来说,都是耳熟能详的名字,但确实又有很多人搞不清楚它们之间的区别,以致于混淆概念。而当概念都混淆的时候,也往往意味着你不会经常使用它,...

不负好时光
29分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部