搭建freeradius+daloradius作為認證服務器

來源:本站原創 IT必備工具 超過2,618 views圍觀 0條評論

CENTOS
Note: CentOS and RedHat link their LDAP libraries against NSS. FreeRADIUS uses OpenSSL. NSS and OpenSSL cannot be used in the same application, as they will cause it to crash. FreeRADIUS therefore must use libldap from the LDAP Toolbox Project, which uses OpenSSL

To use these packages, create a Yum / DNF repository file

echo ‘[ltb-project]
name=LTB project packages
baseurl=https://ltb-project.org/rpm/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-project’ > /etc/yum.repos.d/ltb-project.repo
Create a Yum / DNF repository file for NetworkRADIUS

echo ‘[networkradius]
name=NetworkRADIUS-$releasever
baseurl=http://packages.networkradius.com/centos/$releasever/repo/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/packages.networkradius.com.gpg’ > /etc/yum.repos.d/networkradius.repo

——————————-安裝FreeRADIUS 3.0 服務器程序
yum install -y freeradius.x86_64
   
3.2.安裝FreeRADIUS工具包(freeradius-utils)
yum install freeradius-utils

3.3.FreeRADIUS 3.0的測試
3.3.1.修改用戶管理配置文件
該文件是/etc/raddb/users,使用vi工具打開,命令如下:
vi /etc/raddb/users
打開文件后,查找 steve Cleartext-Password :="testing" (76-84行), 取消該段內容的注釋。   

[[email protected] lang]# cat /etc/raddb/users |egrep -v "^#|^$"
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

[[email protected] lang]#

 

3.3.2.關閉防火墻及selinux
Systemctl stop firewall
Systemctl disable firewall
setenforce 0
3.3.3.以調試方式啟動freeradius
radiusd –X

再打開一個新的終端,以root身份登錄,執行如下命令:
radtest steve testing localhost 0 testing123

[[email protected] lang]# radtest steve testing localhost 0 testing123
Sent Access-Request Id 198 from 0.0.0.0:46416 to 127.0.0.1:1812 length 75
    User-Name = "steve"
    User-Password = "testing"
    NAS-IP-Address = 10.21.2.4
    NAS-Port = 0
    Message-Authenticator = 0x00
    Cleartext-Password = "testing"
Received
Access-Accept———–出現即為正常
Id 198 from 127.0.0.1:1812 to 0.0.0.0:0 length 71
    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
    Filter-Id = "std.ppp"
    Framed-MTU = 1500
    Framed-Compression = Van-Jacobson-TCP-IP

3.4.MariaDB的安裝
默認情況下,CengOS 7.0已經安裝了mariadb,版本為5.5.35。如果想安裝最新版的Mariadb,裝方法與FreeRADIUS類似,執行如下命令,系統會升級到最新版本:
yum intsall mariadb

3.5.FreeRADIUS與MariaDB的對接
3.5.1.安裝freeradius-mysql組件
yum install freeradius-mysql

3.5.2.激活和啟動mariadb服務
默認情況下,mariadb并沒有被激活,使用如下命令激活服務:
systemctl enable mariadb
然后,使用如下命令,啟動mariadb:
systemctl start mariadb
使用如下命令,查詢mariadb服務的狀態:
systemctl status mariadb

3.5.3.創建數據庫
命令如下:
mysql -u root –p
要求輸入密碼時,直接回車即可。

mysql>create database radius;
mysql>grant all on radius.* to [email protected] identified by "radpass";
mysql>exit;
   

3.5.4.導入表結構
命令如下:

mysql -u root radius < /etc/raddb/mods-config/sql/main/mysql/scheama.sql
上面的指令,共導入了7個表,分別是:
radcheck 用戶檢查信息表
radreply 用戶回復信息表
radgroupcheck 用戶組檢查信息表
radgroupreply 用戶組檢查信息表
radusergroup 用戶和組關系表
radacct 計費情況表
radpostauth 認證后處理信息,可以包括認證請求成功和拒絕的記錄。

建立組信息:(在此新建組名稱為user)
insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Auth-Type’,’:=’,’Local’);
insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Service-Type’,’:=’,’Framed-User’);
insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Framed-IP-Address’,’:=’,’255.255.255.255′);
insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Framed-IP-Netmask’,’:=’,’255.255.255.0′);

建立用戶信息:(在此新建用戶名為test,密碼為testpwd)
insert into radcheck (username,attribute,op,value) values (‘test’,’Cleartext-Password’,’:=’,’testpwd’);

將用戶加入組中:
insert into radusergroup (username,groupname) values (‘test’,’user’);
3.5.6.修改 FreeRADIUS中的mysql 認證配置
執行如下命令:

cd /etc/raddb/mods-enabled
ln -s ../mods-available/sql    —-改變認證為SQL認證,而非本地認證

3.5.7.修改 FreeRADIUS中的mysql 配置文件
該配置文件位于/etc/raddb/mods-available目錄,名稱為sql
可以通過vi來修改,命令如下:
vi /etc/raddb/mods-available/sql
找到driver = “rlm_sql_null”這一行,修改為driver = “rlm_sql_mysql”。保持并退出。

同時修改配置為正確配置,不然會報錯
vim /etc/raddb/mods-enabled/sql
server = "localhost"
port = 3306
login = "radius"
password = "radpass"

3.5.8.測試通過數據庫做用戶認證
重新以調試方式運行freeradius:
radiusd -X
再打開一個新的終端,運行測試工具命令:
radtest test testpwd localhost 1812 testing123
完畢。

   
—————————安裝FreeRADIUS管理界面Daloradius

wget http://nchc.dl.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
#解壓
tar xf daloradius-0.9-9.tar.gz
cd daloradius-0.9-9
#查看安裝說明
more INSTALL

2、解決依賴

在INSTALL中我們可以看到程序的需求,需要滿足這些需求,否則不能正常運行。

Apache 1/2
PHP 4/5
PHP GD
PHP DB Abstraction Layer (may require PHP Pear)
PHP Mail
MySQL 4/5

#安裝httpd
yum install httpd -y
#安裝php及組件
yum install php php-mysql php-gd -y
# 安裝
yum install php-pear-DB -y
#轉移php文件
cp -a daloradius-0.9-9 /var/www/daloradius
 
 
3、導入數據庫

    第一種情況:radius數據庫已經存在了。

    就是說已經在MySQL中創建了radius數據庫,并且創建了相應的表,這個在安裝FreeRADIUS服務的時候已經完成了,這種情況操作就比較簡單了。

cd /var/www/html/daloradius/contrib/db
mysql -uradius -pradpass radius < ./mysql-daloradius.sql
    第二種情況:radius數據庫不存在。

    這種情況下先要創建radius,然后在導入數據表。

#創建數據庫
mysqladmin create radius
#使用FreeRADIUS 1.x版本,執行下面命令
mysql -uroot -p radius < fr1-mysql-daloradius-and-freeradius.sql
#使用FreeRADIUS 2.x版本,執行下面命令
mysql -uroot -p radius < fr2-mysql-daloradius-and-freeradius.sql

 

4.4.設置數據庫連接
具體操作我們也是查看INSTALL文檔。

cd /var/www/html/daloradius/library
vim daloradius.conf.php

 

設置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

#具體根據自己的參數設定
$configValues[‘CONFIG_DB_ENGINE’] = ‘mysql’;
$configValues[‘CONFIG_DB_HOST’] = ‘localhost’;
$configValues[‘CONFIG_DB_PORT’] = ‘3306’;
$configValues[‘CONFIG_DB_USER’] = ‘radius’;
$configValues[‘CONFIG_DB_PASS’] = ‘radpass’;
$configValues[‘CONFIG_DB_NAME’] = ‘radius’;
##這個路徑和程序放置路徑有關系
$configValues[‘CONFIG_PATH_DALO_VARIABLE_DATA’] = ‘/var/www/html/daloradius/var’;

重啟服務
# systemctl restart radiusd.service
# systemctl restart mariadb.service
# systemctl restart httpd

登錄web界面
默認用戶名: administrator
密碼: radius
http://ip-address/daloradius/login.php
   
   
Daloradius 中文版設置
進入Daloradius 文件目錄,修改config-lang.php,添加中文選項:
# cd /var/www/html/daloradius
# vim config-lang.php

    <option value="zh"> Simplified Chinese </option>

進入lang目錄,修改main.php,增加簡體中文文件:

# cd lang/
# vim main.php

    case "zh":
            include (dirname(__FILE__)."/zh.php");
            break;

下載地址:http://www.voidcn.com/article/p-zdwbbrrt-rz.html

 

– 返回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
   
———————-排錯1
   
   
rlm_sql (sql): Opening additional connection (0), 1 of 32 pending slots used
rlm_sql_mysql: Starting connect to MySQL server
rlm_sql_mysql: Couldn’t connect to MySQL server @:radius
rlm_sql_mysql: MySQL error: Access denied for user ”@’localhost’ to database ‘radius’
rlm_sql_mysql: Socket destructor called, closing socket
rlm_sql (sql): Opening connection failed (0)
rlm_sql (sql): Removing connection pool
/etc/raddb/mods-enabled/sql[20]: Instantiation failed for module "sql"

解決:取消注釋
vim /etc/raddb/mods-enabled/sql
server = "localhost"
port = 3306
login = "radius"
password = "radpass"

——————-daloradius報錯
Could not open the file for writing: /var/www/html/daloradius/library/daloradius.conf.php
Check file permissions. The file should be writable by the webserver’s user/group

解決:修改權限
chown apache:apache /var/www/html/daloradius/library/daloradius.conf.php

——————-daloradius報錯 :密碼加密后顯示明文

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=3896轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
?
?
萌宠夺宝游戏