在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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...