Linux平臺下搭建freeRADIUS集成MySQL並整合***

    昨天分享了本身在Ubuntu下搭建L2TP ×××服務器的歷程,並貼出了本身測試運行的效果圖片,這個比較適合我的購買服務器搭建×××。可是搭建×××後,沒法實現AAA功能,管理帳號也是利用文件。爲此,選擇搭建freeRADIUS同時與MySQL整合,一樣選擇Ubuntu平臺。閒話少說 ,就是幹.......
mysql

 1)部署freeradius服務器sql

@1主要文件做用:數據庫

radiusd.conf sql.conf  做用爲radiusmysql 接連client.conf NAS freeradius 服務鏈接用的vim

@2 安裝bash

a)初始化機器環境,安裝必備的服務器軟件服務器

#sudo -i //得到root權限
#apt-get install mysql freeradius freeradius-mysql freeradius-utils

因爲我使用的是apt安裝的freeRadius,因此radiusd不能使用,應該用如下方法解決:session

sudo ln -s freeradius radiusd

隨後即可以使用radiusd -X.socket

b)安裝完freeradius後,對其進行測試ide

打開其users文件,並添加用戶post

# vi /etc/freeradius/users

wKiom1kKybnzOhoUAABgylowgx0965.jpg-wh_50

圖 1: 配置users

users文件中的steve項反註釋掉,同時,將添加另一項測試帳號(自定義):

User:Dhfijk  Password:XXXXXX

@3 測試服務器 radiusd -X

當測試radiusd -X,使用radtest steve testing localhost 1812 testing123進行測試時,出現Failed to find IP address for zhantengfei-***這時須要將主機名加入文件 /etc/hosts添加:127.0.0.1 dhfijk-***

這時,有可能遇到如下問題:

a)客戶端測試出現:client no response ......

b)服務器測試窗口出現:Listen to the unknown client 172.16.0.61(本機外網IP....

這時須要對client.conf文件進行相關配置,修改客戶端信息,將freeRadius服務器IP寫入

wKioL1kK0azDgclfAAAonvaltwE666.jpg-wh_50

圖 2: 配置client.conf

並在 /etc/hosts文件中配置 IP和主機名:

wKioL1kK0kXSAVutAABMnRJY8Vc591.jpg-wh_50

圖 3: 配置hosts

使用radiusd -X進入調試模式測試,啓動 radiusd 時可能會出現以下錯誤

Failed binding to authentication address *port 1812:Address already in use

用命令lsof -i:1812查看佔用進程,通常就是freeradius自己,kill -9 PID強制終止該進程,或者sudo service freeradius stop,而後從新運行命令radiusd -X(或者freeradius -X)即可以運行服務程序了


wKiom1kK0qbyIN51AAB7jT9ejgo171.jpg-wh_50

圖4 : radiusd -X

另外開一個終端窗口,做爲客戶端使用,進行測試,輸入如下語句

radtest 帳號 密碼 localhost 0 testing123(對應填寫在users文件中自定義的userName和passWord)

其中,localhost是客戶端的IP0是客戶端向服務端發送數據包的端口號,testing123是通訊密碼secret
 wKiom1kK026D1bvdAABHwMHTKKI178.jpg-wh_50

圖5:Access-Accept服務器響應

  在客戶端添加鏈接radius服務器的地址和密碼

/usr/local/radius-client/etc/radiusclient/servers

加入:freeradius server IP               testing123

添加字典,讓其支持Windows客戶端dictionary文件最後添加如下字典

#  vim  /etc/radiusclient/dictionary

   INCLUDE /etc/radiusclient/dictionary.microsoft
    INCLUDE /etc/radiusclient/dictionary.ascend
    INCLUDE /etc/radiusclient/dictionary.merit
    INCLUDE /etc/radiusclient/dictionary.compat
    INCLUDE /etc/radiusclient/dictionary.sip

2)集成Mysql

     @1 安裝MySQL服務端和客戶端

apt-get install mysql-server mysql-client

  安裝過程當中根據提示,設置root用戶以及對應的登陸密碼,並以設定的用戶名和密碼登陸 MySQL -u root -p  ,爲了使freeRadius鏈接到MySQL數據庫,將用戶信息記錄在數據庫,必須在相應的配置文件中進行相關配置,具體配置流程以下。

    1 首先配置freeRadius核心配置文件radiusd.conf

vim /etc/freeradius/radiusd.conf

$INCLUDE sql.conf進行反註釋,去掉#

     2 修改配置文件sql.conf

vim /etc/freeradius/sql.conf

  此配置文件包含了訪問的數據庫的用戶名和密碼,也包含了數據庫服務器的IP地址,以及各類默認的表的信息。操做總可使用默認值,若想本身定義,便修改相應的項,但必須保持一致。

wKioL1kK41SgcxcMAAA6QzsN76c414.jpg-wh_50

圖 6  sql.conf配置文件

默認的數據庫名爲MySQL,服務器爲localhost,及數據庫服務器地址,同時指定了默認的登陸「radius」和登陸密碼「radpass」在此文件中反註釋掉如下信息。


 wKioL1kK46PwB9xmAAAgVWIvT-g513.png-wh_50


取消readclients = yes nas_table = "nas"行表示freeRadius能夠在radius數據庫中的nas表中加載client,能夠不在client.conf中讀取NAS信息。

  在以上操做中集成MySQL時,可能遇到這個問題,若是將sql.conf文件中的server改爲MySQL服務器對應的ip地址,將報告一下錯誤

couldn't connect socket to MySQL server radius@172.25.11.224:radius

應該維持原來的localhost,由於MySQL Server freeRadius Server在同一機器上,即指代本機地址便可。

     3 修改default文件,開啓AAA功能

vim /etc/freeradius/sites-available/default
authorize {
......
Sql 取消掉sql行的#註釋,反註釋之
......
} 
accounting {
.....
sql
......
}
session {
......
}
post-auth {
.......
}

 4 用戶信息管理

:~# mysql -u root -p
mysql>create database radius;
mysql> use radius;

將存儲用戶必要的表到收入radius數據庫:

mysql> source /etc/freeradius/sql/mysql/admin.sql

(創建radius對應的用戶名和密碼,並賦予全部權限,如下導入的sql文件做用相似)

mysql> source /etc/freeradius/sql/mysql/ippool.sql
mysql> source /etc/freeradius/sql/mysql/cui.sql
mysql> source /etc/freeradius/sql/mysql/nas.sql
mysql> source /etc/freeradius/sql/mysql/wimax.sql
mysql> source /etc/freeradius/sql/mysql/schema.sql

導入後能夠查看如下radius數據庫中的表項mysql>show tables;


 wKioL1kK5MbyVYwNAAA321OO1Vw870.png-wh_50

圖 7 存儲用戶信息的radius數據庫表項

 5 添加用戶信息

radius數據庫的表現中加入用戶組以及隸屬於用戶組的用戶名和登陸密碼,以及用戶的各項相關信息。

 @1在radgroupreply表中創建名爲user的用戶組,並制定該組的相關屬性信息

insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local'); 
加入Auth-Type屬性
insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User'); 
加入'Service-Type'屬性
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.255'); 
加入Framed-IP-Address屬性
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');
加入Framed-IP-Netmask屬性,PPP通訊的掩碼不限


 @2 radcheck表中加入用戶dhfijk

insert into radcheck (username,attribute,op,value) 
values ('dhfijk','Cleartext-Password',':=','xxxxxx');xxxxxx

 @3 將用戶與所屬組進行關聯

insert into radusergroup (username,groupname) values ('dhfijk','user');

dhfijk用戶加入到所屬的user

6 進行遠程測試

   當用戶在client.conf中時,進行測試

:~# radtest steve testing 172.25.11.224 1812 testing123

wKioL1kK5hzQBzvPAACMb71Szi0177.jpg-wh_50 

圖 8 遠程測試RADIUS驗證功能(1

遠程測試迴應請求爲Access-Accept,代表從172.25.11.223發給172.25.11.224的數據包經過了172.25.11.224主機上的freeRadius服務器的驗證。

當用戶在MySQL數據庫中時,進行測試

:~# radtest dhfijk xxxxxx 172.25.11.224 1812 testing123

wKioL1kK5tOSV3pzAABqc51tWuw980.jpg 

圖 8 遠程測試RADIUS驗證功能(2

遠程測試迴應請求爲Access-Accept,代表從172.25.11.223發給172.25.11.224的數據包經過了172.25.11.224主機上的freeRadius服務器的驗證。

以上驗證結果會在radius數據庫中的radpostauth表中

wKioL1kK55ajgDppAABItJ7k00g211.jpg-wh_50 

圖 9 遠程測試RADIUS驗證記錄

以上測試結果證實,L2TP ×××服務器所在主機上的radiusClientfreeRadiusServer的通訊是正常的,而且freeRadiusMySQL集成是成功的。

3)集成L2TP服務器

 1 修改options.xl2tp配置文件

  vim /etc/ppp/options.xl2tp

 在L2TP配置文件中加入

plugin /usr/lib/pppd/2.4.5/radius.so
plugin /usr/lib/pppd/2.4.5/radattr.so
radius-config-file /etc/radiusclient/radiusclient.conf

 這幾行配置代碼做用即是在客戶端向×××服務器發起鏈接時,將轉向認證服務器,經過認證後才鏈接。

 2 修改servers配置文件

 vim /etc/radiusclient/servers

wKiom1kK6N_hhmXjAAAUdAloO5M867.png-wh_50 

圖 10 radiusClientradiusServer配置

 以上servers配置文件中172.25.11.224freeRadius服務器IP地址,testing123爲默認的radiusClientradiusServer的通訊祕鑰。

 3 修改相關配置文件,添加字典,支持Windows客戶端

cd  /usr/share/freeradius/
cp * /etc/radiusclient/將該目錄下的dictinary文件複製到radiusClient目錄下。

同時將該目錄下的dictionary文件末尾添加INCLUDE信息

vim /etc/radiusclient/dictionary

添加:

INCLUDE /etc/radiusclient/dictionary.
INCLUDE /etc/radiusclient/
INCLUDE /etc/radiusclient/dictionary.
INCLUDE /etc/radiusclient/dictionary.
INCLUDE /etc/radiusclient/dictionary.sip(省略此句不異影響)

 4 配置radiusClient.conf

radiusclient.conf文件中配置radiusServer相關信息。

wKioL1kK6bKj9KkeAACQtJsqEMI242.png-wh_50

圖 11 配置radiusClient端的radius服務器信息

指定freeRadius服務器的IP和端口:

authserver      172.25.11.224:1812
acctserver      172.25.11.224:1813

指定服務器配置文件位置:

servers         /etc/radiusclient/servers

同時需注意dictionary的路徑。

   到這裏,操做基本就完成了,能夠嘗試對系統進行測試,以上內容是在上一篇內容成功的基礎上進行操做,若是你想搭建×××系統,請先閱讀上篇內容並實驗。

相關文章
相關標籤/搜索