在ubtunu使用apt-get安裝和配置freeradius

来源:https://www.cnblogs.com/stationing/archive/2017/12/30/8149631.html
-Advertisement-
Play Games

安裝freeradius之前先要確保已經安裝了mysql、因為後來要用到、沒有安裝使用apt-get來安裝 然後就是安裝freeradius的部件 安裝完成後freeradius就會自動啟動了、由於莪們要使用調試模式來啟動freeradius、所以先關閉freeradius服務先 註意: 使用ubt ...


安裝freeradius之前先要確保已經安裝了mysql、因為後來要用到、沒有安裝使用apt-get來安裝

apt-get install mysql-server

然後就是安裝freeradius的部件

sudo apt-get install freeradius freeradius-ldap freeradius-mysql

安裝完成後freeradius就會自動啟動了、由於莪們要使用調試模式來啟動freeradius、所以先關閉freeradius服務先

service freeradius stop

註意:

使用ubtuntu的apt-get方式來安裝freeradius的位置會和源碼不同、源碼安裝的預設位置是

/usr/local/etc/raddb/

而使用ubuntu的apt-get方式的配置文件則安置在

/etc/freeradius/

 

然後修改/etc/freeradius/下的users文件、

複製代碼
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
複製代碼

把這幾行反註釋、也就是使用一個名為steve、密碼為testing的用戶來測試一下是否通則登錄freeradius伺服器、保存後退出然後啟動radius的調試模式

freeradius -X

然後打開另一個終端、使用radtest來測試用戶是否能夠通過

radtest steve testing localhost 1812 testing123

這句前steve和testing代表用戶和密碼、localhost和1812則是freeradius的IP地址和埠號、testing123則是freeradius服務端與客戶端之間通訊的key、由/etc/freeradius目錄下的clients.conf定義、在client localhost欄位的secret參數、

複製代碼
client localhost {
...
...
secret = testing123
...
...
}
複製代碼

註意這個secret欄位最好不要少於8個位元組、更多具體的詳細說明請看clients.conf文件中secret參數前面的註釋說明

 

radtest成功通過後則會顯示Access-Accept狀態、

另外、如果邇一個不好運、確實在linux系統中存在steve的用戶、這樣子的話freeradius伺服器則會跳過邇現在的用戶配置直接去查詢系統的配置、這時的密碼就會以系統密碼為準、

這裡在users文件中定義的密碼就會失效、而且如果改用戶是禁止在linux上登錄的話、則會直接把用戶打回成 Access-Reject。

=========================================================================================================================================

FreeRadius安裝完後預設只允許本機的client客戶端訪問radius伺服器

添加代理主機,編輯文件clients.conf 

 #vi clinets.conf  

 在文件末尾添加客戶端,格式如下

# 添加一個子網 192.168.2.0/24 的網段可訪問

client 192.168.2.0/24 {
        secret          = 111111  #radius客戶端認證密鑰
}
:wq!
  #強制保存退出

關閉防火牆 Iptables -F

 

至此freeradius測試環境搭建完成,可以使用測試賬號登陸。本人測試已成功。

P.S.:如果客戶端不具備公網地址或者由於處於某種防火牆之下、會有可能造成訪問失敗、

========================================================================================================================================

接下來的工作是使用mysql資料庫與freeradius連接

首先要做的就是建立相應的radius資料庫、進入mysql

mysql -uroot -p

然後建立radius資料庫

CREATE DATABASE radius;

之後使用exit退出mysql、然後建立一系統的表格、freeradius已經自帶有sql腳本、莪們執行這些腳本就可以自行建立了、首先定位到這些腳本的位置先

cd /etc/freeradius/sql/mysql

看見有不少sql文件

複製代碼
-rw-r--r-- 1 root root      661 2010-01-04 21:56 admin.sql
-rw-r----- 1 root freerad 4543 2010-01-04 21:56 counter.conf
-rw-r--r-- 1 root root 1242 2010-01-04 21:56 cui.conf
-rw-r--r-- 1 root root 452 2010-01-04 21:56 cui.sql
-rw-r----- 1 root freerad 14375 2012-01-31 23:26 dialup.conf
-rw-r----- 1 root freerad 14379 2012-01-31 23:25 dialup.conf.bak
-rw-r----- 1 root freerad 4058 2010-01-04 21:56 ippool.conf
-rw-r----- 1 root freerad 579 2010-01-04 21:56 ippool.sql
-rw-r----- 1 root freerad 400 2010-01-04 21:56 nas.sql
-rw-r----- 1 root freerad 4318 2010-01-04 21:56 schema.sql
-rw-r--r-- 1 root root 1844 2010-01-04 21:56 wimax.conf
-rw-r--r-- 1 root root 407 2010-01-04 21:56 wimax.sql
複製代碼

其中admin.sql可以為mysql建立一個專門管理radius資料庫的管理員

schema.sql則是用來建立radius資料庫最基本的表格、

其它的sql就不用管先了、是其它附加模塊才需要導入的

首先導入admin.sql

mysql -u root -pPASSWD radius < admin.sql
mysql -u root -pPASSWD radius < schema.sql

其中的USERNAME和PASSWD代表mysql管理員的帳戶和密碼、通常是使用最高許可權的root用戶來執行、【特別要註意格式!!!】

schema.sql同樣也是照此格式來執行導入到資料庫、如果結果正常的話、可以使用radius賬戶進入mysql資料庫

mysql -u radius -p

預設密碼是"radpass"(沒有引號)、登錄後再查看資料庫、

use radius;
show tables;

會看到已經建立有相應的表格了、現在就完成了mysql資料庫的部署了、之後再去配置freeradius的相關數據吧、

 

 1 MySQL中表結構的定義
 2 
 3 /etc/raddb/sql/mysql/schema.sql 主資料庫定義,7個表,包括
 4 radcheck 用戶檢查信息表
 5 radreply 用戶回覆信息表
 6 radgroupcheck 用戶組檢查信息表
 7 radgroupreply 用戶組檢查信息表
 8 radusergroup 用戶和組關係表
 9 radacct 計費情況表
10 radpostauth 認證後處理信息,可以包括認證請求成功和拒絕的記錄。

 

修改/etc/freeradius/radiusd.conf、定位到該行

 $INCLUDE  sql.conf

將之反註釋、啟動sql.conf、

然後編輯/etc/freeradius/sql.conf

sql {
  #
  # Set the database to one of:
  #
  # mysql, mssql, oracle, postgresql
  #
  database = "mysql"

  #
  # Which FreeRADIUS driver to use.
  #
  driver = "rlm_sql_${database}"

  # Connection info:
  server = "localhost"
  #port = 3306
  login = "radius"
  password = "radpass"

  # Database table configuration for everything except Oracle
  radius_db = "radius"
  ...
}

預設情況下、使用ubuntu的apt-get命令來安裝freeradius會自動檢測到已經安裝了mysql而自動把database設置為mysql、如果邇的不是這樣顯示請設置成mysql、然後再再看password這個參數、如果邇之前已經更改了radius用戶的密碼、這裡要做相應的修改、其餘的參數就預設好了、

修改了sql.conf、再設置相應的設備通知其使用mysql作為數據存儲設備、

vim /etc/freeradius/sites-available/default

把authorize{}欄位下的file註釋掉、反註釋sql、這裡的file指的就是usrs文件、將不再把用戶信息寫在users而使用mysql來存儲用戶信息、

把accounting{} 欄位下的sql反註釋、啟用sql來記錄統計信息、

把session{}欄位下的sql反註釋、啟用用戶同時登錄限制功能、這裡還需要修改其它地方、一會再說

把post-auth{} 欄位的sql反註釋、啟用用戶登錄後進行數據記錄功能、

整個文件如下所示

複製代碼
authorize {
  ...
# files
sql
  ...
}
accounting {
...
sql
...
}
session {
radutmp
#
# See "Simultaneous Use Checking Queries" in sql.conf
sql
}

post-auth {
...
sql
...
}
複製代碼

 註釋:↑↑↑↑↑↑↑↑上段配置文件中 “...”的意思代表還有其他文檔,請勿修改

編輯dialup.conf文件

vim /etc/freeradius/sql/mysql/dialup.conf

找到這幾行、將之反註釋

    # Uncomment simul_count_query to enable simultaneous use checking
simul_count_query = "SELECT COUNT(*) \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime IS NULL"

之後整個對mysql的radius配置就已經完成了

 

建立組信息:(這些命令不用做任何修改,直接ctrl+c→ctrl+v就好了)(複製mysql> 後面的)
Liunx@ubuntu# mysql -u root -p

mysql> use radius;

mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local'); mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User');
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.255'); 
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');

  #建立用戶信息:

  mysql> insert into radcheck (username,attribute,op,value) values ('test','User-Password',':=','123');

  將用戶加入組中:

  mysql> insert into radusergroup (username,groupname) values ('test','user');

  添加用戶回覆信息:

  mysql> insert into radreply(username,attribute,op,value) values('test','Reply-Message','=','Yes,Good!');

註釋:“mysql> 表示進入mysql狀態。”  “test 表示需要自己輸入用戶名的變數  123 是表示自己輸入密碼的變數”

退出測試賬號是否認證成功

service freeradius stop  #停止freeradius服務

freeradius -X  #調試模式啟動freeradius服務

打開另一個終端

radtest test 123 localhost 1812 testing123

輸入以下結果證明成功

Sending Access-Request of id 232 to 127.0.0.1 port 1812
        User-Name = "test"
        User-Password = "123"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=232, length=49
        Reply-Message = "Yes,Good!"
        Service-Type = Framed-User
        Framed-IP-Netmask = 255.255.255.0
        Framed-IP-Address = 255.255.255.255

  註釋:“testing123 是raidus密碼”上文中提到修改代理主機有一個認證密鑰,如果用本機測試切勿使用上文中的密鑰,否則會認證失敗。

    當涉及到wifi 802.1x認證的時候radius密碼填寫上文中提到的密鑰。
【如下圖】Radius伺服器就填寫搭建服務的主機IP地址就可以埠號預設1812,怎麼修改我也不知道。


設置完成後去mysql裡面查看一下各個表格。
Liunx@ubuntu# mysql -u root -p

mysql> use radius;

 mysql> show tables;
 +------------------+
 | Tables_in_radius |
 +------------------+
 | radacct          |
 | radcheck         |
 | radgroupcheck    |
 | radgroupreply    |
 | radpostauth      |
 | radreply         |
 | radusergroup     |
 +------------------+
7 rows in set (0.00 sec)


mysql> select * from radusergroup; +---------------+-----------+----------+ | UserName | GroupName | priority | +---------------+-----------+----------+ | fredf | dynamic | 1| | barney | static | 1| | dialrouter | netdial | 1| +---------------+-----------+----------+ rows in set (0.01 sec) mysql> +----+----------------+--------------------+------------------+------+ | id | UserName | Attribute | Value | Op | +----+----------------+--------------------+------------------+------+ | 1 | fredf | Cleartext-Password | wilma | := | | 2 | barney | Cleartext-Password | betty | := | | 2 | dialrouter | Cleartext-Password | dialup | := | +----+----------------+--------------------+------------------+------+ rows in set (0.01 sec) mysql> select * from radreply; +----+------------+-------------------+---------------------------------+------+ | id | UserName | Attribute | Value | Op | +----+------------+-------------------+---------------------------------+------+ | 1 | barney | Framed-IP-Address | 1.2.3.4 | := | | 2 | dialrouter | Framed-IP-Address | 2.3.4.1 | := | | 3 | dialrouter | Framed-IP-Netmask | 255.255.255.255 | := | | 4 | dialrouter | Framed-Routing | Broadcast-Listen | := | | 5 | dialrouter | Framed-Route | 2.3.4.0 255.255.255.248 | := | | 6 | dialrouter | Idle-Timeout | 900 | := | +----+------------+-------------------+---------------------------------+------+ rows in set (0.01 sec) mysql> select * from radgroupreply; +----+-----------+--------------------+---------------------+------+ | id | GroupName | Attribute | Value | Op | +----+-----------+--------------------+---------------------+------+ | 34 | dynamic | Framed-Compression | Van-Jacobsen-TCP-IP | := | | 33 | dynamic | Framed-Protocol | PPP | := | | 32 | dynamic | Service-Type | Framed-User | := | | 35 | dynamic | Framed-MTU | 1500 | := | | 37 | static | Framed-Protocol | PPP | := | | 38 | static | Service-Type | Framed-User | := | | 39 | static | Framed-Compression | Van-Jacobsen-TCP-IP | := | | 41 | netdial | Service-Type | Framed-User | := | | 42 | netdial | Framed-Protocol | PPP | := | +----+-----------+--------------------+---------------------+------+ rows in set (0.01 sec)

 

 大功告成!!!!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 硬體:pixhawk 2.4.8 代碼:2017/12/30 PX4 firemare px4fmuv2 MCU: STM32F427VIT6, STN32F103C8T6. 感測器: MPU6000; L3GD20; LSM303D; MS5611, 省略了一個L3GD20焊盤. CAN口用的是M ...
  • fxml文件使用SceneBuilder打開報錯 解決方法:Window-->Preferences-->JavaFX-->browse 路徑是可執行的JavaFX Scene Builder文件,例如:C:\Program Files (x86)\Oracle\JavaFX Scene Build ...
  • 作者 彭東林 QQ 405728433 平臺 Linux-4.10.17 Qemu-2.8 + vexpress-a9 DDR:1GB 參考 Linux 虛擬記憶體和物理記憶體的理解 Linux進程分配記憶體的兩種方式--brk() 和mmap() Linux中的mmap的使用 程式(進程)記憶體分佈 解析 ...
  • 部署Flask項目到騰訊雲伺服器CentOS7 安裝git 安裝依賴包 支持SSL傳輸協議 解壓功能 C語言解析XML文檔的 安裝gdbm資料庫 實現自動補全功能 sqlite資料庫: 安裝python3.6 下載python 創建目錄 下載編譯python的c和c++: 配置: 編譯: 備份(重命 ...
  • 學習目標: -current_date 當前時間 TZ_OFFSET -current_timestamp 含小數秒當前時間 FROM_TZ -localtimestamp 含小數秒本地時間 TO_TIMESTAMP -dbtimezone 資料庫時區 TO_TIMSTAMP_TZ -session ...
  • 1、創建存儲過程 調用上述存儲過程(CALL語句調用一個先前用CREATE PROCEDURE創建的程式) 註意: 指定參數為IN, OUT, 或INOUT 只對PROCEDURE是合法的。(FUNCTION參數總是被認為是IN參數)指定參數為IN, OUT, 或INOUT 只對PROCEDURE是 ...
  • 真是醉了,最近筆記本壞了沒辦法,只好給自己的平板裝資料庫,而且平板沒有網線介面,只有用校園網下,500KB,很酸爽。。。 上午上了一下午,然後又解了個壓,解壓解了半小時,平板的配置是真的低。。。 又安裝了一下午,好不容易裝起來了,又發現唉,同志,恢複數據吧。。 實在很煩了,就休息了一下子,晚上8點才 ...
  • http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html Apache Hadoop YARN YARN的主要功能包括:資源管理和任務調度及監控,它們各自都是獨立的守護進程。要實現這個目標,必須有一個全局 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...