ToughRADIUS 安装进阶篇

在进阶篇里,我们将会提供本地化的安装参考,但相比起快速指南,进阶篇需要更强的专业知识和动手能力,为了节约您宝贵的时间,我们并不鼓励所有人都来尝试。

在安装成功之前,你可能会遇到关于 linux,git,python,mysql等一些列问题,如果你对这些都不熟悉,那么你只会遇到越来越多的问题,尽管这些问题在具备相关专业知识的人眼前不值一提。如果你觉得linux,git,python,mysql 这些都不是个事,那就继续吧。

不适合这篇教程的人

  • 从来没有成功安装过 linux 的
  • 装完 linux 系统连 make 指令都没有的
  • 只会用界面,把 linux 当 windows 用的
  • vi 的 打开,编辑,保存,退出这几个基本指令还不会的
  • 特别懒的人
  • 特别有钱的人

linux 系统的选择

linux 的发行版世界实在是太多元化了,但万变不离其宗,理论上 ToughRADIUS 是可以运行在大部分linux 系统上的。

ToughRADIUS 依赖 Python2.7+ 运行环境,如果系统已经内置,则省略了升级 python 这一步,如果系统依然是 python2.4或 python2.6的版本,则需要先独立安装 python2.7版本。

为了更方便的安装,建议采用 centos7,ubuntu14等已经内置 python2.7 的系统。

git 版本控制工具

git 是一个版本控制工具,通过 git 工具,你在服务器上安装的 ToughRADIUS 服务可以很方便的升级,或切换不同的版本,但git 并不是必须的,不使用 git,只是不能方便升级 ToughRADIUS,以后需要升级时,需要自己下载版本重新安装。

数据库的选择

ToughRADIUS默认是支持 sqlite 和 mysql 数据库的,其他数据库如 mssql,oracle 等目前只提供商业支持服务。ToughRADIUS V2版本经过重新架构,采用更好的缓存机制(Redis),数据库已经不是性能的决定性因素。

通常 sqlite 更易于使用,系统内置支持,无需额外安装,但没有提供基于网络的管理,带来维护上的不便,MySQL 在安装配置方面要复杂的多,但管理工具强大,更稳定可靠,依然是生产环境应用的首选。

CentOS7 安装配置实例

ToughRADIUS 提供的默认安装指令是针对 CentOS 系统的,如果你希望在 ubuntu 下执行安装,可以自行修改Makefile文件,将 yum install 指令替换成对应的 apt-get install,Centos的软件名称与 ubuntu 也不相同,需要自行解决。

通过 git 工具安装

为了更方便的升级版本,建议通过使用 git 版本控制工具.

请保证您的服务器网络畅通,如果您的服务器禁止访问网络,请首先解决网络问题。

直接下载安装

安装 toughradius

完成克隆仓库,稳定版或开发版任选一种。/opt/toughradius 是一个约定的的安装路径,暂时不要修改为其他路径。

按以下步骤执行安装任务

$ cd /opt/toughradius   

$ make all

make all 指令会完成 ToughRADIUS 所有相关的系统依赖下载安装,相关的 python 模块安装,以及配置文件的安装。在 make all 的过程中,有可能会出现失败,比如网络超时,缺少系统其它依赖,这对你通常是一个挑战,在 linux 的世界,很多东西是无法一一预料的,这还需要你具备一定的解决问题的能力。

修改 ToughRADIUS 配置

make all 完成后,会存在以下配置文件:

/etc/toughradius.json

这是 ToughRADIUS 的主要配置文件,我们可能需要修改关于数据库部分的配置。如果你只想使用内置的 sqlite 数据库,无需做任何更改。

默认的 sqlite 数据库文件在 /var/toughradius/toughradius.sqlite3,你可以下载到到本地计算机使用 sqlite 的管理工具打开查看数据。

如果你希望使用 mysql 数据库,请首先自己完成 mysql 的安装配置,并保证 mysql服务已经正常运行,同时创建一个空的数据库,创建一个专用的用户名和密码。

mysql 示例:

进入 mysql 终端管理:

mysql >  create database raddb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql >  GRANT ALL ON raddb.* TO [email protected]‘%‘ IDENTIFIED BY ‘radpwd‘ WITH GRANT OPTION;
mysql >  FLUSH PRIVILEGES;

修改数据库配置部分,具体参数请根据实际填写。

"database": {
    "backup_path": "/var/toughradius/data",
    "dbtype": "mysql",
    "dburl": "mysql://raduser:[email protected]:3306/raddb?charset=utf8",
    "echo": 0,
    "pool_recycle": 300,
    "pool_size": 60
}

初始化数据

$ cd /opt/toughradius

$ make initdb

如果配置文件数据库部分没有错误,这一步将顺利通过,会创建所有数据库表,以及初始化必须的配置参数。

管理 ToughRADIUS 服务

现在你可以运行 ToughRADIUS 服务了,假设前面的过程都顺利完成。ToughRADIUS 已经配置好系统的自启动服务。

$ service toughradius start

如果你要停止 ToughRADIUS 服务,执行

$ service toughradius stop

重启请执行

$ service toughradius restart

查看运行状态请执行

$ service toughradius status

ToughRADIUS 数据备份

ToughRADIUS 提供了一个通用的不依赖数据库类型的数据备份服务,你可以通过ToughRADIUS的管理界面-系统管理子菜单下的数据备份来使用它。

备份数据默认在目录 /var/toughradius/data

ToughRADIUS 的日志

所有的日志文件全部在 /var/toughradius 目录下

web 管理控制台日志文件是 /var/toughradius/radius-manage.log

radius 的认证记账日志是 /var/toughradius/radius-worker.log

你可以通过 linux 下的vi,awk,more,less,tail 工具来查看分析日志,比如查看最后100行日志:

$ tail -n 100 /var/toughradius/radius-manage.log

$ tail -n 100 /var/toughradius/radius-worker.log

如果你在安装的过程中遇到问题,提供这些日志信息才是最有用的,如果你不是提供这些日志数据,那么你几乎肯定得不到答案。

ToughRADIUS 服务进程管理

/etc/toughradius.conf 是ToughRADIUS服务进程配置,基于 supervisord 实现服务进程管理。

如果你实际不是安装在 /opt/toughradius 这个路径,可以修改这个配置文件中的/opt/toughradius 路径

  • 调整 radius 子进程数量以提高 ToughRADIUS 在多核 CPU 下的性能

修改 numprocs 参数即可,设置为 CPU 核心数量或2倍都可以。

[program:worker]
command=python /opt/toughradius/radiusctl worker -c /etc/toughradius.json
startretries = 10
process_name = %(program_name)s%(process_num)d
numprocs=4
redirect_stderr=true
stdout_logfile=/var/toughradius/radius-worker.log
时间: 2024-08-28 15:29:39

ToughRADIUS 安装进阶篇的相关文章

在Horizon Workspace中配置Windows单点登录-进阶篇

在上一篇基础篇里面,简单介绍了在Horizon Workspace 1.8中如何配置Windows单点登录.在这篇博客中,会继续介绍一些针对大规模虚机或者虚拟桌面部署的配置方式.这些配置方式可以保证用模板部署出来的虚机或虚拟桌面在Workspace服务器端配置完成的情况下,不再需要用户进行手动配置就能实现HorizonWorkspace的单点登录. 1. 在模板机组策略中配置IE浏览器的设置 通过在模板虚拟机上的管理控制台中设置相应的策略,可以使后续使用模板机克隆出来的虚拟机自动使用Window

Python基础—面向对象(进阶篇)

通过上一篇博客我们已经对面向对象有所了解,下面我们先回顾一下上篇文章介绍的内容: 上篇博客地址:http://www.cnblogs.com/phennry/p/5606718.html 面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用: 类是一个模版,模板中包装了多个方法供使用(这里方法就是函数): 对象,根据模板创建的实例,实例用于调用被包装在类中的函数: 面向对象的三大特性:封装.继承.多态. 今天博客的内容主要介绍:Python类的成员.成员修饰符.类的特殊成员.异常处理和

Visual Studio调试之断点进阶篇

Visual Studio调试之断点进阶篇 在上一篇文章Visual Studio调试之断点基础篇里面介绍了什么是断点,INT 是Intel系列CPU的一个指令,可以让程序产生一个中断或者异常.程序中如果有中断或者异常发生了以后,CPU会中断程序的执行,去一个叫做IDT的部件查找处理这个中断(或者异常)的例程(Handler).IDT是操作系统在启动的时候初始化的,至于IDT的细节问题,例如什么是IDT,怎样编写一个IDT的例程,怎样 初始化IDT,可以去网上搜索一些资料. 总之,这里我们只要知

移动端https抓包那些事--进阶篇

上一次和大家介绍了手机端https抓包的初级篇,即在手机未root或者未越狱的情况下如何抓取https流量,但是当时分析应用时会发现,好多应用的https的流量还是无法抓取到,这是为什么呢? 主要原因还是客户端在实现https请求时对于证书的校验上,如果仅仅校验是否有证书但是未严格校验证书的有效性时,就可以通过手机客户端安装抓包工具的证书来绕过签名校验,但是如果客户端做了严格的证书校验,如果不是受信任证书则无法正常进行https通信,遇到这种情况我们该如何抓取https流量来进行业务分析呢? 接

从零开始学Sketch——进阶篇

本文转自 http://www.jianshu.com/p/ff70b5f35c8f 从零开始学Sketch——进阶篇 Sketch是一款矢量绘图应用,而矢量绘图无疑是目前进行网页.图标以及界面设计的最好方式. 在初识了Sketch的界面布局和基础工具之后,我们就可以开始进入高阶的Sketch工具篇学习了.这篇文章主要会涉及Sketch模板.插件的使用,以及Sketch在具体使用过程中的一些技巧分享. 如果你曾接触过PS.AI.Axure等软件,那么接下来的内容你应该不会陌生,因为所有的设计软件

idea 插件的使用 进阶篇(个人收集使用中的)

idea 插件的使用 进阶篇(个人收集使用中的) 恭喜你,如果你已经看到这篇文章,证明在idear使用上已经初有小成!那么就要向着大神进发了! 下边就是大神之路! 插件的设置 在 IntelliJ IDEA 的安装讲解中我们其实已经知道,IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的,只是 IntelliJ IDEA 本身就是它自己的插件平台最大的开发者而已,开发了很多优秀的插件. ? 官网插件库:https://plugins.jetbrains.com/ ? 如上图标注

从零开始学Sketch——进阶篇-b

从零开始学Sketch——进阶篇 Sketch是一款矢量绘图应用,而矢量绘图无疑是目前进行网页.图标以及界面设计的最好方式. 在初识了Sketch的界面布局和基础工具之后,我们就可以开始进入高阶的Sketch工具篇学习了.这篇文章主要会涉及Sketch模板.插件的使用,以及Sketch在具体使用过程中的一些技巧分享. 如果你曾接触过PS.AI.Axure等软件,那么接下来的内容你应该不会陌生,因为所有的设计软件学习的路径都是相似的,都是从认识基本功能框架到外部资源整合运用,最终形成个人风格的一个

jqGrid 学习笔记整理——进阶篇(二)

jqGrid 学习笔记整理--进阶篇(二 ) 本篇开始正式与后台(java语言)进行数据交互,使用的平台为 JDK:java 1.8.0_71 myEclisp 2015 Stable 2.0 Apache Tomcat-8.0.30 Mysql 5.7 Navicat for mysql 11.2.5(mysql数据库管理工具) 一.数据库部分 1.创建数据库 使用Navicat for mysql创建数据库(使用其他工具或直接使用命令行暂不介绍) 2.创建表 双击打开上步创建数据库--右击T

CocoaPods详解之(二)----进阶篇

CocoaPods详解之----进阶篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处 一.Podfile.lock文件 上文讲过,在开始使用CocoaPods,执行完pod install之后,会生成一个Podfile.lock文件.这个文件看起来跟我们关系不大,实际上绝对不应该忽略它. 该文件用于保存已经安装的Pods依赖库的版本,通过CocoaPods安装了SBJson.AFNe