0

0

LNMP环境下安装FreeRadius的实例教程

PHP中文网

PHP中文网

发布时间:2017-06-21 10:35:26

|

2702人浏览过

|

来源于php中文网

原创

1.安装web环境,使用lnmp一键安装包
具体安装步骤参考

2.安装完成后,安装LNMP缺少的组件
ionCube组件安装
进入lnmp解压后的目录,执行:./addons.sh install ionCube
回车确认后就会自动安装ionCube loader。

yum install perl-DBI

yum freeradius-mysql freeradius-utils

3.安装FreeRadius
wget
tar xvf freeradius-server-2.1.8-dmamod-1.tar.gz
cd freeradius-server-2.1.8
./configure
make
make install

4.文件所有者和权限配置
chmod 644 /usr/local/etc/raddb/dictionary
chown www /usr/local/etc/raddb
chown www /usr/local/etc/raddb/clients.conf

5.测试FreeRadius
radiusd  -X
出现错误
“error while loading shared libraries:libfreeradius-radius-2.1.8.so: cannot open shared object file : no such file or directory.”

采取的解决方式是将/usr/local/lib添加到/etc/ld.so.conf中

ld.so.conf文件内容如下:
include /etc/ld.so.conf.d/*.conf
添加一行 /usr/local/lib
完成后输入/sbin/ldconfig,再重新进行上面步骤。
Ldconfig命令是将/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.

在此命令调试radiusd  -X
出现错误
Failed binding to authentication address * port 1812: Address already in use
/usr/local/etc/raddb/radiusd.conf[240]: Error binding to port for 0.0.0.0 port 1812

端口占用问题.
 使用命令lsof -i:1812
得到
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
radiusd 11163 radiusd    5u  IPv4 949974      0t0  UDP *:radius
发现居然是radius自己占用了

处理方法(暴力点)
kill 11163(radius进程的PID,centos查看进程PID命令:ps -ef)
如发现没有这个命令可以使用yum install psmisc进行安装

再次radiusd -X调试
显示Ready to process requests.

Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.

到此处freeradius已经安装成功了

6.对freeradius详细配置,因为我们需要和RM整合,这里就需要详细的配置radius文件
首先说明一下在使用LNMP环境包,也可以简单的安装freeradius,简单安装步骤如下
使用命令:yum install perl-DBI freeradius freeradius-mysql freeradius-utils

可以一步到位安装好radius,我个人建议使用安装包一步步安装,这样发现问题可以随时找到问题并解决

对于配置radius文件有两种方法:

A:简单的方法使用glzjin(赵一初心)写好的文件直接覆盖
wget  -O /etc/raddb/radiusd.conf
wget  -O /etc/raddb/sites-enabled/default
wget  -O /etc/raddb/sql/mysql/dialup.conf
wget  -O /etc/raddb/dictionary
wget  -O /etc/raddb/sql/mysql/counter.conf

B:详细的手动配置如下
#编辑/usr/local/etc/raddb/radiusd.conf文件

vi /usr/local/etc/raddb/radiusd.conf
查找"allow_vulnerabel_openssl = no"改为yes
查找" $INCLUDE sql.conf”(743行),去掉#号
查找" $INCLUDE sql/mysql/counter.conf”(712行),去掉#号

#清空/usr/local/etc/raddb/sites-enabled/default文件,直接把已经配置好的文件内容复制进去保存
cat /dev/null > /usr/local/etc/raddb/sites-enabled/default
vi /usr/local/etc/raddb/sites-enabled/default

#清空/usr/local/etc/raddb/sites-enabled/inner-tunnel文件,直接把已经配置好的文件内容复制进去保存
cat /dev/null > /usr/local/etc/raddb/sites-enabled/inner-tunnel
vi  /usr/local/etc/raddb/sites-enabled/inner-tunnel

#编辑/usr/local/etc/raddb/eap.conf,修改MD5验证方式为peap方式
vi  /usr/local/etc/raddb/eap.conf
第30行default_eap_type = md5改为default_eap_type = peap

#编辑/usr/local/etc/raddb/modules/mschap文件,修改为如下内容
vi /usr/local/etc/raddb/modules/mschap
mschap { use_mppe = yes require_encryption = yes require_strong = yes }

#编辑/usr/local/etc/raddb/sql/mysql/dialup.conf文件
vi /usr/local/etc/raddb/sql/mysql/dialup.conf

查找simul_count_query将279-282行注释去掉,打开simul_count_query函数

#编辑/usr/local/etc/raddb/sql/mysql/counter.conf文件,添加自定义计算函数
monthlytrafficcounter(每月计算流量) 和 yearlytrafficcounter(每年计算流量)
vi /usr/local/etc/raddb/sql/mysql/counter.conf

在末尾加入
sqlcounter monthlytrafficcounter {
   counter-name = Monthly-Traffic
   check-name = Max-Monthly-Traffic
   reply-name = Monthly-Traffic-Limit
   sqlmod-inst = sql
   key = User-Name
   reset = monthly
   query = " SELECT ABS(SUM(acctinputoctets + acctoutputoctets) DIV 1048576) FROM radacct WHERE UserName='%{%k}' AND AcctStartTime >= date_sub(curdate(),interval 30 day)"
}

sqlcounter yearlytrafficcounter {
   counter-name = Yearly-Traffic
   check-name = Max- Yearly-Traffic
   reply-name = Yearly-Traffic-Limit
   sqlmod-inst = sql
   key = User-Name
   reset = never
   query = " SELECT ABS(SUM(acctinputoctets + acctoutputoctets) DIV 1048576) FROM radacct WHERE UserName='%{%k}' AND AcctStartTime >= date_sub(curdate(),interval 365 day)"
}

#编辑字典文件/usr/local/etc/raddb/dictionary
vi /usr/local/etc/raddb/dictionary

#添加以下内容
ATTRIBUTE       Max-Monthly-Traffic     3003    integer
ATTRIBUTE       Monthly-Traffic-Limit   3004    integer
ATTRIBUTE       Acct-Interim-Interval   85      integer
ATTRIBUTE       Max-Yearly-Traffic      3003    integer
ATTRIBUTE       Yearly-Traffic-Limit    3004    integer


7.建立MySql相关的数据库并作设置
两种方法如下:
A。使用phpmyadmin建立
LNMP环境下带phpmyadmin,http://你的IP/phpmyadmin
建立两个数据库radius和conntrack
进入后点:账号---新增用户账号
填写好用户名和密码,一定点击(用户账号数据库下的创建与用户同名的数据库并授予所有权限。)

B。使用ssh登陆命令建立
mysql -u root -p密码                                                     #登录mysql,超级账号root和密码
CREATE DATABASE radius;                                         #创建radius数据库
CREATE DATABASE conntrack;                                      #创建conntrack数据库
CREATE USER ‘radius’@'localhost’ IDENTIFIED BY ‘radius123′;     #创建用户radius,密码radius123
CREATE USER ‘conntrack’@'localhost’ IDENTIFIED BY ‘conn123′;    #创建用户conntrack,密码conn123
GRANT ALL ON radius.* TO radius@localhost;                      #给radius数据库设置访问权限
GRANT ALL ON conntrack.* TO conntrack@localhost;                #给conntrack数据库设置访问权限

8.配置freeradius数据库
/usr/local/etc/raddb/sql.conf                                     #使用radius/radius123
# Connection info:
server = “localhost”
#port = 3306
login = “radius”
password = “radius123″

找到readclients一行,设为yes并去掉注释符号#

这里要特别说明一下,如果在安装freeraduis是使用的是第6点里yun直接安装的话,那么sql.conf这个文件
在/etc/raddb/sql.conf 这个目录里。

9.关闭SELINUX(需重启机器生效)
/etc/sysconfig/selinux
SELINUX=disabled


10.修改机器MAC地址,因为我下载RM3.9版本是破解的,授权文件和MAC地址都是破解者发布的(需要重启生效PS:RM4.16是不是也可以使用同样方法处理,有研究出来的朋友,可以和我交流一下)

不能使用这个命令:ifconfig eth0 down(禁用网卡),你是ssh链接的使用了这个,你立马就掉线了,不用我说原因吧。

正确的方法:
使用winscp下载 /etc/sysconfig/network-scripts里ifcfg-eth0

修改其中的"HWADDR=xx:xx:xx:xx:xx:xx"为"MACADDR=00:D0:09:B8:B7:34"

上传覆盖,重启机器以后生效。

11.安装Radius Manager

首先为Radius Manager建立一个web

使用lnmp vhost add,此次不需要创建mysql数据库了,在上面我们已经创建好了。

使用winscp上传radiusmanager-3.9.0.tar.gz到root目录
tar zxvf radiusmanager-3.9.0.tar.gz
cd radiusmanager-3.9.0
chmod  755  install.sh
./install.sh

出现Radius Manager installer
Copyright 2004-2011, DMA Softlab LLC
All right reserved.
(Use CTRL+C to abort any time)
Select the type of your operating system:
1. Redhat (Fedora, CentOS etc.)
2. Debian (Ubuntu etc.)
Choose an option: [1](我的是centos系统)

Selected operating system is: REDHAT
Select installation type:
1. New installation
2. Upgrade old system
Choose an option: [1](全新安装)

Selected installation method: NEW INSTALLATION
WWW root path: [/var/www/html]       这里改成我们建立的web目录/home/wwwroot/你的域名
RADIUS database host: [localhost]
RADIUS database username: [radius]                        #使用radius
RADIUS database password: [radius123]            你建立的radius数据库的密码
CTS database host: [localhost]
CTS database username: [conntrack]                        #使用conntrack
CTS database password: [conn123]                 你建立的conntrack的密码
Freeradius UNIX user: [root]                              #使用root
Httpd UNIX user: [apache]                                 改成WWW
Create rmpoller service: [y]
Create rmconntrack service: [y]
Back up RADIUS database: [y]
WARNING! If You continue You will overwrite the existing RADIUS database!
Are You sure to start the installation? [n] y
Starting installation process…
Copying WEB content to /home/wwwroot/你的域名/radiusmanager
Copying binaries to /usr/local/bin
Copying rootexec to /usr/local/sbin
Copying radiusmanager.cfg to /etc
Backing up RADIUS database…
Creating MySQL tables
Creating rmpoller service
Creating rmconntrack service
Copying logrotate script
Setting permission on raddb files
Copying radiusd init script to /etc/init.d
Installation finished!

12.修改RM配置文件
/etc/radiusmanager.cfg
/home/wwwroot/你的域名/radiusmanager/config/system_cfg.php

13.修改RM文件从根目录到主目录
cd radiusmanager --> mv * ../ --> cd ../

14.修改目录文件权限
chattr -i /home/wwwroot/你的域名/.user.ini
chown www:www -R /home/wwwroot/你的域名
chmod -R 777 /home/wwwroot/你的域名
chmod 755 /usr/local/bin/rmauth
chmod 755 /usr/local/bin/rmacnt
chmod 755 /usr/local/bin/rmpoller
chmod 600 /etc/radiusmanager.cfg
chmod 755 /usr/local/bin/rmconntrack
chmod 4755 /usr/local/sbin/rootexec

重启服务器。访问地址你的域名/admin.php  账号admin 密码1111
           用户访问地址你的域名/user.php 账号user 密码1111

 

相关专题

更多
云朵浏览器入口合集
云朵浏览器入口合集

本专题整合了云朵浏览器入口合集,阅读专题下面的文章了解更多详细地址。

0

2026.01.20

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

20

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

62

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

87

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

19

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

160

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
高性能Linux服务器搭建视频教程
高性能Linux服务器搭建视频教程

共31课时 | 13.7万人学习

Rust 教程
Rust 教程

共28课时 | 4.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号