CentOS7下搭建LAMP+FreeRadius+Daloradius Web管理
注意:本文所有命令均在root命令下执行。
freeradius服务官网:http://freeradius.org/
daloradius Web管理页面官网:https://sourceforge.net/projects/daloradius/
CentOS6.5下搭建LAMP+FreeRadius+Daloradius Web管理和TP-LINK路由器、H3C交换机连接,实现,上网认证和记账功能:https://www.cnblogs.com/opsprobe/p/9420502.html
一、搭建LAMP服务环境:
(1)安装Apache服务器
yum -y install httpd httpd-devel
systemctl enable httpd # 设置http服务为开机启动
systemctl start httpd # 启动http服务
(2)安装MariaDB
为什么不用Mysql?
因为MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
安装
yum install -y mariadb-server mariadb
设置MariaDB开机启动和启动MariaDB服务
systemctl start mariadb
systemctl enable mariadb
查看MariaDB状态,running表示已经在运行
systemctl status mariadb
初始设置MariaDB,设置root密码,出于安全考虑,考虑删除匿名用户和禁用远程根登录,参见下面的示例配置。
mysql_secure_installation
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] y
Disallow root login remotely?
[Y/n] y
Remove test database and access
to it? [Y/n] y
Reload privilege tables now?
[Y/n] y
创建radius数据库和用户名密码
mysql -u root -p 回车后输入mysql的root管理员帐号密码,然后
MariaDB [(none)]> create database radius; # 创建radius数据库
MariaDB [(none)]> grant all on radius.* to
radius@"localhost" identified by "radpass"; # GRANT 权限 ON 数据库.* TO 用户名@主机名IDENTIFIED BY "密码"; 对某个特定数据库中的所有表单给予授权和创建数据库管理账户
MariaDB [(none)]> flush privileges; # mysql 新设置用户或更改密码后需用flush privileges刷新 mysql 的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。
MariaDB [(none)]> exit
# 退出MariaDB数据库
(3)安装PHP7
curl 'https://setup.ius.io/' -o setup-ius.sh
bash setup-ius.sh
yum remove php-cli mod_php php-common
yum -y install mod_php70u php70u-cli php70u-mysqlnd php70u-devel php70u-gd php70u-mcrypt php70u-mbstring php70u-xml php70u-pear
查看php版本
php -version
PHP 7.0.32 (cli) (built: Sep 13 2018 16:50:42) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
测试PHP,Apache网站数据根目录下新建info.php命名的php网页
vim /var/www/html/info.php
输入以下内容:
<?php
phpinfo();
?>
保存退出
重启Apache服务器,在浏览器打开info.php网页,显示php信息说明安装成功了。
systemctl restart httpd.service
http://your ip address//info.php
二、安装FreeRadius
yum -y install freeradius freeradius-utils freeradius-mysql
等待下载完成之后出现:Complete,即完整完成。
启动radius和设置为开机启动
systemctl start radiusd.service
systemctl enable radiusd.service
查看Radius使用的端口,然后添加Radius服务到防火墙中;
cat /usr/lib/firewalld/services/radius.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>RADIUS</short>
<description>The Remote Authentication Dial In User Service (RADIUS) is a protocol for user authentication over networks. It is mostly used for modem, DSL or wireless user authentication. If you plan to provide a RADIUS service (e.g. with freeradius), enable this option.</description>
<port protocol="tcp" port="1812"/>
<port protocol="udp" port="1812"/>
<port protocol="tcp" port="1813"/>
<port protocol="udp" port="1813"/>
</service>
firewall-cmd --state # 查看防火墙状态,启动状态才能添加规则,centos7中默认防火墙就是firewalld,一般不需要额外设置。
firewall-cmd --add-service=radius --permanent # 添加 Radius 服务到 firewalld 防火墙中。
success
firewall-cmd --reload # 让配置的防火墙策略立即生效
success
firewall-cmd --list-services # 列举区域中启用的服务
radius
三、配置FreeRadius
cd /etc/raddb/mods-config/sql/main/mysql/
mv setup.sql setup.sql-backup # 备份 setup.sql 配置文件
grep -v "#" /etc/raddb/mods-config/sql/main/mysql/setup.sql-backup > /etc/raddb/mods-config/sql/main/mysql/setup.sql # 过滤有 # 注释符号的信息行
进入 vim setup.sql 查看配置文件
- CREATE USER 'radius'@'localhost';
- SET PASSWORD FOR 'radius'@'localhost' = PASSWORD('radpass');
- GRANT SELECT ON radius.* TO 'radius'@'localhost';
- GRANT ALL on radius.radacct TO 'radius'@'localhost';
- GRANT ALL on radius.radpostauth TO 'radius'@'localhost';
mysql -u root -p 回车,输入密码后
然后执行source /etc/raddb/mods-config/sql/main/mysql/setup.sql
然后 use radius 回车,打开radius数据库
导入 schema.sql 表的信息
source /etc/raddb/mods-config/sql/main/mysql/schema.sql
导入完成后,可以用命令查看导入的数据表的信息
use radius; #打开radius数据库
show tables; #显示radius数据库里的所有表
可以看到如下的表结构
+------------------+
| Tables_in_radius |
+------------------+
| nas |
| radacct |
| radcheck |
| radgroupcheck |
| radgroupreply |
| radpostauth |
| radreply |
| radusergroup |
+------------------+
MySQL中表结构的定义
针对FreeRadius3,数据表的设计和结构定义在下面的文件中:
/etc/raddb/sql/mysql/schema.sql # 主数据库定义,8个表,包括
nas # 网络设备表
radacct # 计费情况表
radcheck # 用户检查信息表
radgroupcheck # 用户组检查信息表
radgroupreply # 用户组回复信息表
radpostauth # 认证后处理信息,可以包括认证请求成功和拒绝的记录。
radreply # 用户回复信息表
radusergroup # 用户和组关系表
exit # 退出 mysql 数据库。
为/etc/raddb/mods-enabled创建软连接
ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/
配置SQL模块/ raddb/mods-available/sql,并更改数据库连接参数,以适合自己的配置环境:
vim /etc/raddb/mods-available/sql
31 #driver = "rlm_sql_null"
32 driver = "rlm_sql_mysql"
88 #dialect = "sqlite"
89 dialect = "mysql"
90
91 # Connection info:
92 #
93 server = "localhost"
94 port = 3306
95 login = "radius"
96 password = "radpass"
97
98 # Database table configuration for everything except Oracle
99 radius_db = "radius"
247 read_clients = yes
250 client_table = "nas"
其他配置默认无需更改。
然后,将 /etc/raddb/mods-enabled/sql 所属组更改为radiusd:
chgrp -h radiusd /etc/raddb/mods-enabled/sql
添加启动服务,调整FreeRadius与MariaDB的启动顺序,FreeRadius必须在MariaDB启动之后启动,在[Unit]部分,增加After=mariadb.service,如下所示:
systemctl enable radiusd.service
vim /etc/systemd/system/multi-user.target.wants/radiusd.service
After=mariadb.service
- [Unit]
- Description=FreeRADIUS high performance RADIUS server.
- After=syslog.target network.target ipa.service dirsrv.target krb5kdc.ser vice
- After=mariadb.service
添加客户端(路由器、交换机等设备)连接设置,ip可以自由更改。
mv /etc/raddb/clients.conf /etc/raddb/clients.conf-backup # 备份 /etc/raddb/clients.conf 配置文件
grep -v "#" /etc/raddb/clients.conf-backup > /etc/raddb/clients.conf # 过滤有 # 注释符号的信息行
进入 vim /etc/raddb/clients.conf 查看配置文件
- client localhost {
- ipaddr = 127.0.0.1
- proto = *
- secret = testing123
- require_message_authenticator = no
- }
需要注意,上面配置的127.0.0.1主要用于测试,将来真正的客户端要按照下面的信息进行补充:
将来你真正的 raidus 客户端,如路由器、交换机等需要在这里配置ip信息,例如:
client x.x.x.x { # 这里的 x.x.x.x 就是交换机或者路由器等设备的IP地址
ipaddr = x.x.x.x # 交换机或者路由器等设备的IP地址
secret = xxxxxxxxxx # 自己定义的交换机或者路由器等设备和 radius 服务器的连接密码
# require_message_authenticator = no # 这个可以注释掉,不用管
}
可以执行 cat /var/log/radius/radius.log 去查看radius服务的日志看有没有错误。
四、安装FreeRADIUS管理界面Daloradius
进入Apache网站根目录,下载 daloradius 源文件
cd /var/www/html/
wget https://github.com/lirantal/daloradius/archive/master.zip
如出现 -bash: wget: command not found 等就用下面的命令安装相应软件,没出现忽略这步。
yum -y install wget unzip zip
解压压缩包,修改文件夹名称
unzip master.zip
mv daloradius-master/ daloradius
下载daloradius-0.9-9.tar.gz,解压后合并到daloradius文件夹中
tar -zxvf daloradius-0.9-9.tar.gz
mv daloradius-0.9-9 daloradius
进入daloradius目录,导入daloradius数据库
cd daloradius
mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
mysql -u root -p radius < contrib/db/mysql-daloradius.sql
设置daloradius目录用户组和用户,设置daloradius.conf.php权限
chown -R apache:apache /var/www/html/daloradius/
chmod 664 /var/www/html/daloradius/library/daloradius.conf.php
设置daloradius数据库连接信息,打开daloradius.conf.php文件,修改CONFIG_DB_USER,CONFIG_DB_PASS,CONFIG_DB_NAME。
vim /var/www/html/daloradius/library/daloradius.conf.php
(28-33行)
$configValues['CONFIG_DB_ENGINE'] = 'mysql';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306'; # 连接mysql数据库的端口
$configValues['CONFIG_DB_USER'] = 'root'; # 连接mysql数据库的账户
$configValues['CONFIG_DB_PASS'] = ' '; # 连接mysql数据库账号的密码
$configValues['CONFIG_DB_NAME'] = 'radius'; # 连接mysql的radius数据库
下面还有几个 daloradius 的 bug,默认配置中有几个文件路径和我们导入的不一样,把它改过来:
$configValues['CONFIG_FILE_RADIUS_PROXY'] = '/etc/raddb/proxy.conf'; (68行)
$configValues['CONFIG_PATH_DALO_VARIABLE_DATA'] = '/var/www/html/daloradius/var'; (70行)
$configValues['CONFIG_MAINT_TEST_USER_RADIUSSECRET'] = 'testing123'; (88行) # 注意这条,要和 /etc/raddb/clients.conf 文件设置的secret = xxxxxxxxxx 值一样。
配置完成后保存退出
重启radius、maridb、http服务
systemctl restart radiusd.service
systemctl restart mariadb.service
systemctl restart httpd
如果提示:Warning: radiusd.service changed on disk. Run ‘systemctl daemon-reload’ to reload units. 执行以下的命令,没有上面提示就忽略此步
systemctl daemon-reload # 重新加载守护进程
systemctl restart radiusd.service
cat /etc/httpd/logs/error_log,查看 http 服务的日志,发现有以下错误:
PHP Fatal error: Uncaught Error: Class 'DB' not found in /var/www/html/daloradius/library/opendb.php:86\nStack trace:\n#0 /var/www/html/daloradius/dologin.php(49): include()\n#1 {main}\n thrown in /var/www/html/daloradius/library/opendb.php on line 86
解决方法:安装php-pear-DB
yum install -y php-pear-DB
现在打开浏览器访问 http://your ip address//daloradius 就可以看到daloradius的界面了,默认登录的用户名和密码分别为 username: administrator password: radius
至此LAMP+FreeRadius+Daloradius Web管理界面已经安装成功,下面是Web界面汉化教程。
五、Daloradius 中文版设置
进入Daloradius 文件目录,修改config-lang.php,添加中文选项:
cd /var/www/html/daloradius
vim config-lang.php
<option value="zh"> Simplified Chinese </option> (79行)
进入lang目录,修改main.php,增加简体中文文件:(注:因为前面在daloradius文件中合并了master.zip文件,下面的操作就可以不做了,要是只下载了daloradius-0.9-9.tar.gz文件,还需做以下步骤)
cd lang/
vim main.php
(32行)
case "zh":
include (dirname(__FILE__)."/zh.php");
break;
下载文件zh.php;
链接:https://pan.baidu.com/s/10RX80RMIQRMYkcEzicF7lw 密码:z7wu
返回lang目录,将下载的zh.php文件放入lang目录,重启radius服务;
cd /var/www/html/daloradius/lang
将下载的zh.php上传至此目录。
systemctl restart radiusd.service
systemctl restart httpd
设置Config -> Language Settings ->Simplified Chinese
本文参考自:https://blog.csdn.net/zy517863543/article/details/78914150
CentOS7下搭建LAMP+FreeRadius+Daloradius Web管理的更多相关文章
- CentOS6.5下搭建LAMP+FreeRadius+Daloradius Web管理和TP-LINK路由器、H3C交换机连接,实现,上网认证和记账功能
什么是RADIUS服务: RADIUS:(Remote Authentication Dial In User Service)中文名为远程用户拨号认证服务,简称RADIUS,是目前应用最广泛的AAA ...
- Centos7下搭建LAMP平台环境 (转载)
1.启用Apache(httpd) Centos7默认已经安装httpd服务,只是没有启动.如果你需要全新安装,可以yum install -y httpd 启动服务:systemctl start ...
- Centos7下搭建LAMP平台环境
1.启用Apache2 Centos7默认已经安装httpd服务,只是没有启动.如果你需要全新安装,可以yum install -y httpd 启动服务:systemctl start httpd. ...
- Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
1.搭建MySQL数据库 安装MariaDB yum install mariadb-server -y 启动MySQL服务 emctl start mariadb #启动服务 emtcl enabl ...
- CentOs7下搭建LAMP环境
● 环境搭建 参考: http://blog.csdn.net/zph1234/article/details/51248124 http://www.jb51.net/os/188488.html ...
- Ubuntu18.04下搭建LAMP环境
一.Apache2 web 服务器的安装 : 可以先更新一下服务器 1.sudo apt-get update # 获取最新资源包 2.sudo apt-get upgrade ...
- centos7下搭建ceph luminous(12.2.1)--无网或网络较差
本博客的主要内容是在centos7下搭建luminous,配置dashboard,搭建客户端使用rbd,源码安装ceph,最后给出一些较为常用的命令.本博客针对初次接触ceph的人群. 搭建环境: 主 ...
- CentOS7下搭建zabbix监控(四)——Zabbix报警设置
CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 CentOS7下搭建zabbix监控(三)——Zabbix ...
- CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置
Zabbix监控端配置请查看:CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 (1).在CentOS7(被监控端)上部署Zabbix Agent 主机名:youxi2 IP地址: ...
随机推荐
- Linux 卸载 MySQL 数据库
1. 使用以下命令查看当前安装mysql情况 rpm -qa|grep -i mysql 显示之前安装过的数据库 2. 停止mysql服务.删除之前安装的mysql 删除命令: rpm -ev 包名若 ...
- camera理论基础和工作原理(转)
源: camera理论基础和工作原理
- MySQL备份与恢复-mydumper
上一片博文中,我们说明了mysqldump的备份与恢复.因为mysqldump是单线程导出,单线程恢复的,因此备份与恢复的时间比较长! 首先来安装mydumper: 下载源码:https://gith ...
- modelform添加属性
暗暗啊
- 安装PHP扩展32位与64位的误区(x86与x64的查看)
在安装PHP扩展(DLL,SO),除了需要对应的PHP版本外,在WINDOWS还需要区分(TS线程,NTS非线程),如何判断呢? 1.如何判断是NTS还是TS(WINDOWS用户) 看PHP所在目录中 ...
- Spring Boot(九):定时任务
Spring Boot(九):定时任务 一.pom包配置 pom包里面只需要引入springboot starter包即可 <dependencies> <dependency> ...
- rabbitmq heartbeat missing with heartbeat = N seconds原因总结
一直以来,在我们大规模使用rabbitmq的服务端应用中,都没有出现rabbitmq心跳超时而造成的的影响,反倒是在rabbitmq-cpp客户端出现过很多次该问题,一直以为客户端lib实现的问题(不 ...
- topcoder srm 440 div1
problem1 link 二分答案,然后计算总时间.跟$T$比较确定要增大答案还是减小答案. problem2 link 可以看作是以‘*’所在位置为根的树.所以每个非根节点都有一个父节点. 那么每 ...
- SVM学习笔记3-问题转化
在1中,我们的求解问题是:$min_{w,b}$ $\frac{1}{2}||w||^{2}$,使得$y^{(i)}(w^{T}x^{(i)}+b)\geq 1 ,1 \leq i \leq n$ 设 ...
- 配置Jenkins 实现自动发布maven项目至weblogic(svn+maven+weblogic12c)
Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放weblogic的7001端口 Linux(CentOS):firewall-cmd --zone=publ ...