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

技術小胖子發表於2017-10-31

1.目的背景

為了滿足裝置進行3A認證,提高安全性,所以搭建一套radius伺服器,並配合daloradius作為前端展示配置。

2.配置內容

2.1.所需系統及元件

作業系統:CentOS 7.0 x86_64 ,帶gnome桌面,配置地址為172.31.101.1

資料庫:mariadb v5.5.56

httpd:Server version: Apache/2.4.6 (CentOS)

php: v2.4.0

FreeRADIUS 3.0 

所需其他元件

php 

php-mysql 

php-gd

php-pear-DB 

通過yum安裝即可。

2.2.參考文件

freeradius安裝 
http://blog.csdn.net/cluniquecui/article/details/42490423

使用daloRADIUS Web程式管理FreeRADIUS服務 
http://wzlinux.blog.51cto.com/8021085/1736744

3.freeredius安裝

3.1.安裝FreeRADIUS 3.0 伺服器程式

yum install freeradius

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行), 取消該段內容的註釋。

3.3.2.關閉防火牆及selinux

Systemctl stop firewall
Systemctl disable firewall
setenforce 0

3.3.3.以除錯方式啟動freeradius

radiusd –X

3.3.4.使用測試工具測試

再開啟一個新的終端,以root身份登入,執行如下命令:
radtest steve testing localhost 0 testing123
搭建freeradius+daloradius作為認證伺服器

正常開啟radius伺服器的如下圖所示:
搭建freeradius+daloradius作為認證伺服器

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 radius@localhost 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 認證後處理資訊,可以包括認證請求成功和拒絕的記錄。

  1. 建立組資訊:(在此新建組名稱為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`);
  2. 建立使用者資訊:(在此新建使用者名稱為test,密碼為testpwd)
    insert into radcheck (username,attribute,op,value) values (`test`,`Cleartext-Password`,`:=`,`testpwd`);

  3. 將使用者加入組中:
    insert into radusergroup (username,groupname) values (`test`,`user`);

3.5.6.修改 FreeRADIUS中的mysql 認證配置

執行如下命令:

cd /etc/raddb/mods-enabled
ln -s ../mods-available/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”。保持並退出。

3.5.8.測試通過資料庫做使用者認證

  1. 重新以除錯方式執行freeradius:
    radiusd -X
  2. 再開啟一個新的終端,執行測試工具命令:
    radtest test testpwd localhost 1812 testing123

    完畢。

    4.daloRADIUS部署

    4.1.軟體下載

    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

    4.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/html/daloradius

    4.3.匯入資料庫

    cd /var/www/html/daloradius/contrib/db
    mysql -uradius -pradpass radius < ./mysql-daloradius.sql

    4.4.設定資料庫連線

    具體操作我們也是檢視INSTALL文件。

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

    #具體根據自己的引數設定

    $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`;

4.5. 使用daloRADIUS

具體的主機配置我這裡不再介紹,啟動Web服務,找一個瀏覽器輸入:http://yourip/daloradius

從INSTALL文件中可以看到,第一次登入的使用者是administrator,密碼是radius。如果生產環境使用的話一定要修改以下密碼,這個使用者的資訊在表operators裡面。
搭建freeradius+daloradius作為認證伺服器

5.安裝中出現的問題及解決方法

在安裝freeradius和mariaDB的時候基本上沒有問題,但是在安裝daloradius的時候,出現了很多問題,問題主要集中在httpd伺服器和php配置上。

5.1.登入daloRADIUS提示沒有url

首頁業務空白,是由於檔案存放路徑問題造成,一定要放在/var/www/html/下才可。

5.2.登入daloRADIUS出現403 forbbien

提示:“you have no pessmion to access…….”

是由於沒有關閉selinux

5.3.登入成功後出現空白頁

安裝pear和pear db即可解決問題

yum install php-pear
 pear install db

注意,在安裝db的時候會提示某個包的安裝版本不夠,需要使用pear install PEAR更新後可以繼續安裝DB

5.4.無法讀取日誌

在日誌或其他配置介面,提示沒有許可權讀寫檔案
/var/www/html/daloradius/library/daloradius.conf.php

需要賦予較高許可權,使用如下命令解決
chmod 777 /var/www/html/daloradius/library/daloradius.conf.

5.5.daloradius安裝

在daloradius-0.9-9的資料夾中有個”INSTALL”檔案,使用文字開啟後可以看到大部分安裝提示和操作指引。

     本文轉自YANGCHAO1987 51CTO部落格,原文連結:http://blog.51cto.com/11555417/2059991,如需轉載請自行聯絡原作者

     本文轉自YANGCHAO1987 51CTO部落格,原文連結:http://blog.51cto.com/11555417/2059991,如需轉載請自行聯絡原作者


相關文章