CentOS7下搭建LAMP+FreeRadius+Daloradius Web管理
freeradius服務(wù)官網(wǎng):http://freeradius.org/
daloradius Web管理頁面官網(wǎng):https://sourceforge.net/projects/daloradius/
CentOS6.5下搭建LAMP+FreeRadius+Daloradius Web管理和TP-LINK路由器、H3C交換機(jī)連接,實(shí)現(xiàn),上網(wǎng)認(rèn)證和記賬功能:https://www.cnblogs.com/opsprobe/p/9420502.html
?
一、搭建LAMP服務(wù)環(huán)境:
(1)安裝Apache服務(wù)器
yum -y install httpd httpd-devel
?
systemctl enable httpd? ?# 設(shè)置http服務(wù)為開機(jī)啟動(dòng)
systemctl start httpd? ? ? # 啟動(dòng)http服務(wù)
?
(2)安裝MariaDB
為什么不用Mysql??
因?yàn)镸ariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可。開發(fā)這個(gè)分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風(fēng)險(xiǎn),因此社區(qū)采用分支的方式來避開這個(gè)風(fēng)險(xiǎn)。?
安裝
yum install -y mariadb-server mariadb
?
設(shè)置MariaDB開機(jī)啟動(dòng)和啟動(dòng)MariaDB服務(wù)
systemctl start mariadb
systemctl enable mariadb
?
查看MariaDB狀態(tài),running表示已經(jīng)在運(yùn)行
systemctl status mariadb
?
初始設(shè)置MariaDB,設(shè)置root密碼,出于安全考慮,考慮刪除匿名用戶和禁用遠(yuǎn)程根登錄,參見下面的示例配置。
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
?
創(chuàng)建radius數(shù)據(jù)庫和用戶名密碼
mysql -u root -p ????回車后輸入mysql的root管理員帳號密碼,然后
MariaDB [(none)]> create database radius;? ? # 創(chuàng)建radius數(shù)據(jù)庫
MariaDB [(none)]> grant all on radius.* to radius@"localhost" identified by "radpass";? ??#?GRANT 權(quán)限 ON 數(shù)據(jù)庫.* TO 用戶名@主機(jī)名IDENTIFIED BY "密碼";? ?對某個(gè)特定數(shù)據(jù)庫中的所有表單給予授權(quán)和創(chuàng)建數(shù)據(jù)庫管理賬戶
MariaDB [(none)]> flush privileges;? ? #?mysql 新設(shè)置用戶或更改密碼后需用flush privileges刷新 mysql 的系統(tǒng)權(quán)限相關(guān)表,否則會(huì)出現(xiàn)拒絕訪問,還有一種方法,就是重新啟動(dòng)mysql服務(wù)器,來使新設(shè)置生效。
MariaDB [(none)]> exit??? # 退出MariaDB數(shù)據(jù)庫
?
(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網(wǎng)站數(shù)據(jù)根目錄下新建info.php命名的php網(wǎng)頁
vim /var/www/html/info.php
輸入以下內(nèi)容:
<?php
phpinfo();
?>
保存退出
?
重啟Apache服務(wù)器,在瀏覽器打開info.php網(wǎng)頁,顯示php信息說明安裝成功了。
systemctl restart httpd.service
http://your ip address//info.php
?
二、安裝FreeRadius? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
yum -y install freeradius freeradius-utils freeradius-mysql
?
等待下載完成之后出現(xiàn):Complete,即完整完成。
?
啟動(dòng)radius和設(shè)置為開機(jī)啟動(dòng)
systemctl start radiusd.service
systemctl enable radiusd.service
?
查看Radius使用的端口,然后添加Radius服務(wù)到防火墻中;
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? ? #?查看防火墻狀態(tài),啟動(dòng)狀態(tài)才能添加規(guī)則,centos7中默認(rèn)防火墻就是firewalld,一般不需要額外設(shè)置。
?
firewall-cmd --add-service=radius --permanent? ? #??添加 Radius 服務(wù)到 firewalld 防火墻中。
success
firewall-cmd --reload? ? # 讓配置的防火墻策略立即生效
success
firewall-cmd --list-services? ? # 列舉區(qū)域中啟用的服務(wù)
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?? ? ?# 過濾有 # 注釋符號的信息行
進(jìn)入 vim setup.sql 查看配置文件
mysql -u root -p? ?回車,輸入密碼后
然后執(zhí)行source /etc/raddb/mods-config/sql/main/mysql/setup.sql
然后?use radius?回車,打開radius數(shù)據(jù)庫
導(dǎo)入 schema.sql 表的信息
source /etc/raddb/mods-config/sql/main/mysql/schema.sql
導(dǎo)入完成后,可以用命令查看導(dǎo)入的數(shù)據(jù)表的信息
use radius;? ? ? ? #打開radius數(shù)據(jù)庫
show tables;? ? ? #顯示radius數(shù)據(jù)庫里的所有表
?
可以看到如下的表結(jié)構(gòu)
+------------------+
| Tables_in_radius |
+------------------+
| nas????????????? |
| radacct????????? |
| radcheck???????? |
| radgroupcheck??? |
| radgroupreply??? |
| radpostauth????? |
| radreply???????? |
| radusergroup???? |
+------------------+
?
MySQL中表結(jié)構(gòu)的定義
?
針對FreeRadius3,數(shù)據(jù)表的設(shè)計(jì)和結(jié)構(gòu)定義在下面的文件中:
/etc/raddb/sql/mysql/schema.sql? ? ?# 主數(shù)據(jù)庫定義,8個(gè)表,包括
nas? ?# 網(wǎng)絡(luò)設(shè)備表
radacct? ? ?# 計(jì)費(fèi)情況表
radcheck? ?# 用戶檢查信息表
radgroupcheck? ?# 用戶組檢查信息表
radgroupreply? ? # 用戶組回復(fù)信息表
radpostauth? ? # 認(rèn)證后處理信息,可以包括認(rèn)證請求成功和拒絕的記錄。
radreply? ? # 用戶回復(fù)信息表
radusergroup? ? ?# 用戶和組關(guān)系表
?
exit? ? ? # 退出 mysql 數(shù)據(jù)庫。
為/etc/raddb/mods-enabled創(chuàng)建軟連接
ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/
?
配置SQL模塊/ raddb/mods-available/sql,并更改數(shù)據(jù)庫連接參數(shù),以適合自己的配置環(huán)境:
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"
?
其他配置默認(rèn)無需更改。
然后,將 /etc/raddb/mods-enabled/sql 所屬組更改為radiusd:
chgrp -h radiusd /etc/raddb/mods-enabled/sql
?
添加啟動(dòng)服務(wù),調(diào)整FreeRadius與MariaDB的啟動(dòng)順序,FreeRadius必須在MariaDB啟動(dòng)之后啟動(dòng),在[Unit]部分,增加After=mariadb.service,如下所示:?
systemctl enable radiusd.service
vim /etc/systemd/system/multi-user.target.wants/radiusd.service
?
After=mariadb.service
?
?
添加客戶端(路由器、交換機(jī)等設(shè)備)連接設(shè)置,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? ? ? # 過濾有 # 注釋符號的信息行
進(jìn)入?vim /etc/raddb/clients.conf 查看配置文件
?
需要注意,上面配置的127.0.0.1主要用于測試,將來真正的客戶端要按照下面的信息進(jìn)行補(bǔ)充:
將來你真正的 raidus 客戶端,如路由器、交換機(jī)等需要在這里配置ip信息,例如:
client?x.x.x.x {? ? ? ? ? ? ? ? ? # 這里的 x.x.x.x 就是交換機(jī)或者路由器等設(shè)備的IP地址
???ipaddr =?x.x.x.x? ? ? ? ? ? # 交換機(jī)或者路由器等設(shè)備的IP地址
???secret =?xxxxxxxxxx?? ? ?# 自己定義的交換機(jī)或者路由器等設(shè)備和 radius 服務(wù)器的連接密碼
? ?# require_message_authenticator = no? ? ?# 這個(gè)可以注釋掉,不用管
}
?
可以執(zhí)行?cat /var/log/radius/radius.log?去查看radius服務(wù)的日志看有沒有錯(cuò)誤。
?
四、安裝FreeRADIUS管理界面Daloradius
進(jìn)入Apache網(wǎng)站根目錄,下載 daloradius 源文件
cd /var/www/html/
wget https://github.com/lirantal/daloradius/archive/master.zip
如出現(xiàn) -bash: wget: command not found 等就用下面的命令安裝相應(yīng)軟件,沒出現(xiàn)忽略這步。
yum -y install wget unzip zip
解壓壓縮包,修改文件夾名稱
unzip master.zip
mv daloradius-master/ daloradius
?
下載daloradius-0.9-9.tar.gz,解壓后合并到daloradius文件夾中
wget http://liquidtelecom.dl.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
tar -zxvf daloradius-0.9-9.tar.gz
mv daloradius-0.9-9 daloradius
?
進(jìn)入daloradius目錄,導(dǎo)入daloradius數(shù)據(jù)庫
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
?
設(shè)置daloradius目錄用戶組和用戶,設(shè)置daloradius.conf.php權(quán)限
chown -R apache:apache /var/www/html/daloradius/
chmod 664 /var/www/html/daloradius/library/daloradius.conf.php
?
設(shè)置daloradius數(shù)據(jù)庫連接信息,打開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數(shù)據(jù)庫的端口
$configValues['CONFIG_DB_USER'] = 'root';? ? ? ? ? ? # 連接mysql數(shù)據(jù)庫的賬戶
$configValues['CONFIG_DB_PASS'] = ' ';? ? ? ? ? ? ? ? ?# 連接mysql數(shù)據(jù)庫賬號的密碼
$configValues['CONFIG_DB_NAME'] = 'radius';? ? ? ? # 連接mysql的radius數(shù)據(jù)庫
?
下面還有幾個(gè) daloradius 的 bug,默認(rèn)配置中有幾個(gè)文件路徑和我們導(dǎo)入的不一樣,把它改過來:
$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 文件設(shè)置的secret = xxxxxxxxxx 值一樣。
?
配置完成后保存退出
?
重啟radius、maridb、http服務(wù)
systemctl restart radiusd.service
systemctl restart mariadb.service
systemctl restart httpd
如果提示:Warning: radiusd.service changed on disk. Run ‘systemctl daemon-reload’ to reload units. 執(zhí)行以下的命令,沒有上面提示就忽略此步
systemctl daemon-reload? ? ?# 重新加載守護(hù)進(jìn)程
systemctl restart radiusd.service
?
cat? /etc/httpd/logs/error_log,查看 http 服務(wù)的日志,發(fā)現(xiàn)有以下錯(cuò)誤:
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
?
現(xiàn)在打開瀏覽器訪問?http://your ip address//daloradius?就可以看到daloradius的界面了,默認(rèn)登錄的用戶名和密碼分別為 ?username: administrator? ? ?password: radius
?
至此LAMP+FreeRadius+Daloradius Web管理界面已經(jīng)安裝成功,下面是Web界面漢化教程。
?
五、Daloradius 中文版設(shè)置
進(jìn)入Daloradius 文件目錄,修改config-lang.php,添加中文選項(xiàng):
cd /var/www/html/daloradius
vim config-lang.php
?
<option value="zh"> Simplified Chinese </option>? ?(79行)
?
進(jìn)入lang目錄,修改main.php,增加簡體中文文件:(注:因?yàn)榍懊嬖赿aloradius文件中合并了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服務(wù);
cd /var/www/html/daloradius/lang
將下載的zh.php上傳至此目錄。
?
systemctl restart radiusd.service
systemctl restart httpd
?
設(shè)置Config -> Language Settings ->Simplified Chinese
?
本文參考自:https://blog.csdn.net/zy517863543/article/details/78914150
轉(zhuǎn)載于:https://www.cnblogs.com/opsprobe/p/9769555.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的CentOS7下搭建LAMP+FreeRadius+Daloradius Web管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScriptDate对象
- 下一篇: 你的专业知识并不等于你的能力——如何提升