PPTP + FreeRADIUS + MySQL 安装与配置
原文地址:http://www.zhukun.net/archives/5375
PPTP + FreeRADIUS + MySQL 安装与配置
FreeRADIUS 是实现 RADIUS 协议的开源软件,而 RADIUS 主要用来实现认证(Authentication)、授权(Authorization)以及计费(Accounting)功能。本文内容在Centos 5.7 32bit下测试成功。
一,VPN服务器安装配置
# 安装编译环境
yum install -y wget gcc gcc-c++ make |
# 安装ppp
yum install -y ppp |
# 安装PPTP VPN
wget http://hello-linux.googlecode.com/files/pptpd_with_freeradius_plugins.shchmod +x pptpd_with_freeradius_plugins.sh./pptpd_with_freeradius_plugins.sh |
注意:此PPTP VPN脚本已经加入了FreeRADIUS插件,不能脱离FreeRADIUS独立使用。如果你只想安装PPTP VPN的话,请不要使用此脚本。
此时如果提示“错误691:由于域上的用户名和/或密码无效而拒绝访问”,请不要担心,这是正常的。
二,FreeRADIUS 客户端安装与配置
# freeradius-client安装
cd /rootwget ftp://ftp.freeradius.org/pub/freeradius/freeradius-client-1.1.6.tar.gztar zxvf freeradius-client-1.1.6.tar.gzcd freeradius-client-1.1.6./configure && make && make install |
# freeradius-client配置
vi /usr/local/etc/radiusclient/radiusclient.conf |
找到 authserver 和 acctserver 将值改为 localhost
将 radius_deadtime 0 和 bindaddr * 将这两项注释掉(或者通过以下命令来注释之)
sed -i 's/radius_deadtime/\#radius_deadtime/g' /usr/local/etc/radiusclient/radiusclient.confsed -i 's/bindaddr/\#bindaddr/g' /usr/local/etc/radiusclient/radiusclient.conf |
# 指定FreeRADIUS Server地址,并设置通信密码
cat >>/usr/local/etc/radiusclient/servers<<EOFlocalhost testing123EOF |
注意:这里的通信密码不建议更改!经本人测试,更改后使用不正常。
# 增加字典。这一步很重要!否则windows客户端无法连接服务器
wget -c http://hello-linux.googlecode.com/files/dictionary.microsoftmv ./dictionary.microsoft /usr/local/etc/radiusclient/cat >>/usr/local/etc/radiusclient/dictionary<<EOFINCLUDE /usr/local/etc/radiusclient/dictionary.sipINCLUDE /usr/local/etc/radiusclient/dictionary.ascendINCLUDE /usr/local/etc/radiusclient/dictionary.meritINCLUDE /usr/local/etc/radiusclient/dictionary.compatINCLUDE /usr/local/etc/radiusclient/dictionary.microsoftEOF |
三,FreeRADIUS 服务端安装与配置
# 安装 mysql
yum install mysql mysql-devel mysql-serverservice mysqld startchkconfig mysqld onmysqladmin -uroot -p password 新密码# 此时会让你输入原密码,一般 mysql 安装好以后的初始密码为空,因此直接回车即可# 如果使用非上述方式安装了MySQL(比如lnmp一键安装包里自带的mysql),请执行以下两条语句ln -s /usr/local/mysql/bin/mysql /usr/binln -s /usr/local/mysql/bin/mysqladmin /usr/bin |
# 安装 freeradius-server
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.12.tar.gztar zxf freeradius-server-2.1.12.tar.gzcd freeradius-server-2.1.12./configure | grep mysql# grep 这步操作主要是查看mysql的几个参数是不是都是yes,如果不是,需要检查下mysql安装.make && make install |
# 基本文本数据的本地测试
vi /usr/local/etc/raddb/users# 找到 steve Cleartext-Password := “testing” , 取消该段的相关注释steve Cleartext-Password := "testing" Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 172.16.3.33, Framed-IP-Netmask = 255.255.255.0, Framed-Routing = Broadcast-Listen, Framed-Filter-Id = "std.ppp", Framed-MTU = 1500, Framed-Compression = Van-Jacobsen-TCP-IP |
radiusd -X# 进入debug日志输出模式# 如果有出现Listening on authentication address * port 1812Listening on accounting address * port 1813Listening on command file /usr/local/var/run/radiusd/radiusd.sockListening on proxy address * port 1814Ready to process requests.# 这些字样说明正常启动成功了# 重新打开一个窗口,执行下面这条命令radtest steve testing localhost 1812 testing123 # 用户名steve密码testing , 连接密钥testing123# 出现 rad_recv: Access-Accept packet 字样说明验证成功 |
# freeradius 和 mysql 集成
mysqladmin -u root -p create radiusmysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/schema.sqlmysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/nas.sqlmysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/ippool.sqlmysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/wimax.sqlmysql -u root -pmysql> GRANT SELECT ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'radpass';mysql> GRANT ALL on radius.radacct TO 'radius'@'localhost';mysql> GRANT ALL on radius.radpostauth TO 'radius'@'localhost';mysql> use radius;# 加入组信息,本例中的组名为usermysql> 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.0');# 加入用户信息mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('sqltest', 'Password', 'testpwd');# 用户加到组里mysql> insert into radusergroup(username,groupname) values('sqltest','user');# 限制账户同时登陆次数mysql> INSERT INTO radgroupcheck (GroupName, Attribute, op, Value) values("user", "Simultaneous-Use", ":=", "1"); |
vi /usr/local/etc/raddb/sql.conf# 设定数据库类型,帐号,密码,数据库,根据实际情况修改# 找到 readclients = yes 取消前面的注释,取消该注释主要是启用nas表查询,clients.conf就可以不需要了vi /usr/local/etc/raddb/radiusd.conf# 查找$INCLUDE sql.conf(第700行),去掉#号vi /usr/local/etc/raddb/sites-enabled/default# 找到authorize {}模块,注释掉files(170行),去掉sql前的#号(177行)# 找到accounting {}模块,注释掉radutmp(396行),去掉sql前面的#号(406行)# 找到session {}模块,注释掉radutmp(450行),去掉sql前面的#号(454行)# 找到post-auth {}模块,去掉sql前的#号(475行),去掉sql前的#号(563行)vi /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 并加入开机自启动项
cd /rootwget http://hello-linux.googlecode.com/files/radiusdmv radiusd /etc/init.d/chmod +x /etc/init.d/radiusdvi /etc/init.d/radiusd# 找到prefix=/usr/local/radius(第25行),将其改为prefix=/usr/local/etc/init.d/radiusd startvi /etc/rc.local# 在最后一行插入/etc/init.d/radiusd start |
# 最终测试
# 用刚才插入数据库的用户名和密码来检验radtest sqltest testpwd localhost 1812 testing123# 出现 rad_recv: Access-Accept packet 字样说明安装已经成功 |
至此,安装已完成。
可能出现的问题:
/usr/local/etc/raddb/sites-enabled/inner-tunnel[118]: Failed to find module “sql”./usr/local/etc/raddb/sites-enabled/inner-tunnel[34]: Errors parsing authorize section.# 在系统里找下是否有rlm_sql_mysql.so这个文件,如果没有,那么依次执行以下命令:cd /root/freeradius-server-2.1.12/src/modules/rlm_sql/drivers/rlm_sql_mysql./configure --with-mysql-dir=/var/lib/mysql --with-mysql-lib-dir=/var/lib/mysql/lib --with-mysql-include-dir=/var/lib/mysql/includemake && make installcd /usr/local/libcp rlm_sql_mysql.* /root/freeradius-server-2.1.12/src/modules/rlm_sql/drivers/rlm_sql_mysql/ |
radiusd -Xradiusd: error while loading shared libraries:libfreeradius-radius-2.1.12.so: cannot open shared object file: No such file or directory执行以下命令即可:ldconfig |
本文参考:
系统之家
WangYan Blog
PPTP + FreeRADIUS + MySQL 安装与配置的更多相关文章
- FreeRADIUS + MySQL 安装配置笔记
FreeRADIUS + MySQL 安装配置笔记 https://www.2cto.com/net/201110/106597.html
- MySQL 安装 + 精简 + 配置
MySQL 安装 + 精简 + 配置 下载安装 从官网 下载 Community Edition MySQL 5.6 版本 精简 根目录下只留 [data/bin/share] , my-defaul ...
- Linux下MySQL安装和配置
--Linux下MySQL安装和配置 ---------------------------2014/05/18 Linux下MySQL的配置和安装 本文的安装采用 rpm 包安装 1.首先在官网下载 ...
- MySQL安装、配置、测试
MySQL安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.MySQL安装配置 4.Java访问MySQL测试 5.注事事项 6.相关博文 >>看不清的图片 ...
- Linux下MySQL安装及配置
Linux下MySQL安装及配置 安装MySQL Ubuntu系统中,直接使用apt install的方式去安装MySQL的服务端和客户端,MySQL的客户端必须安装,否则无法通过命令连接并操作MyS ...
- Docker之Mysql安装及配置
原文:Docker之Mysql安装及配置 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhaobw831/article/details/8014 ...
- CentOS 6.5系统使用yum方式安装LAMP环境和phpMyAdmin,mysql8.0.1/mysql5.7.22+centos7,windows mysql安装、配置
介绍如何在CentOs6.2下面使用YUM配置安装LAMP环境,一些兄弟也很喜欢使用编译的安装方法,个人觉得如果不是对服务器做定制,用yum安装稳定简单,何必去download&make&am ...
- centos 7.3 服务器环境搭建——MySQL 安装和配置
centos 7.3 服务器环境搭建——MySQL 安装和配置服务器信息如下:服务器:阿里云系统 centos 7.3 (阿里云该版本最新系统)mysql版本:5.7.18 (当前时间最新版本)连接服 ...
- linux Mysql 安装及配置
1.准备 cmake-3.6.0.tar.gz bison-3.0.4.tar.gz mysql-5.7.13.tar.gz (http://dev.mysql.com/get/Downloads/M ...
随机推荐
- Run busybox httpd with php, sqlite
/*********************************************************************************** * Run busybox h ...
- HDU 1269 迷宫城堡 (强连通分量,常规)
题意: 判断所给的有向图是否是一个强连通图. 思路: 如果连通分量大于1则必定No,如果强连通分量大于1也是No.tarjan算法求强连通分量. #include <cstdio> #in ...
- P2P直播、点播技术学习经验
自8月份以来一直埋头学习P2P在音/视频直播.点播上的学习,受到不少网友的帮助,在此也留下自己学到的一点点的经验. 第一个接触的开源项目是peercast,应该说上手非常快,这必须感谢王浩聪的注释版, ...
- uestc 1725 吴神数
// 筛选法// 先求出 sqrt(1<<31)内的素数// 然后筛选出符合要求的数// 详情见代码注释// #pragma comment(linker, "/STACK:10 ...
- hdu 4300(kmp)
题意:说实话这个题的题意还真的挺难懂的,我开始看了好久都没看懂,后来百度了下题意才弄懂了,这题的意思就是首先有一个字母的转换表,就是输入的第一行的字符串,就是'a'转成第一个字母,'b'转成转换表的第 ...
- HDU 3333-Turing Tree(BIT好题)
题意: 给你n个数的序列a,q个询问,每个询问给l,r,求在下标i在[l,r]的区间内不含重复数的和 分析: 这类题目觉得很好,很练思维,觉得不太好做. 用BIT维护和,我们可以从前向后扫一遍序列,当 ...
- 《Python CookBook2》 第一章 文本 - 去字符串两端的空格 && 合并字符串 && 将字符串逐字符或者逐词反转
去字符串两端的空格 任务: 获得一个开头和末尾都没有多余空格的字符串. 解决方案: 字符串对象的lstrip.rstrip和strip 方法正是为这种任务而设计的.这几个方法都不需要参数,它们会直接返 ...
- linux常用命令之--用户与用户组管理命令
linux的用户与用户组管理命令 1.用户和群组 groupadd:用于添加新的组群 其命令格式如下: groupadd [-option] 群组名 常用参数: -g GID:指定创建群组的GID(G ...
- XShell 屏幕锁定的恢复方法(Ctrl+Q)
操作XShell过程中很多时间大家会习惯性的按Ctrl+S进行保存. Ctrl+S在XShell的作用是屏幕锁定,很多朋友会无法操作,会直接把窗口关闭. 解决方法: 快捷键 Ctrl+Q 即能完成解锁 ...
- 从windows转向mac
键盘问题: 按键对应表 Windows Mac ctrl command alt option 由此可推断,windows下的ctrl+c/v 变成了mac下的 command+c/v 功能对应表 删 ...