在Ubuntu 20.04上使用daloRADIUS安裝FreeRADIUS

在本教程中,我們提供了有關如何在Ubuntu 20.04上使用daloRADIUS安裝FreeRADIUS的分步指南。 FreeRADIUS 是一個開放源代碼的高性能和高度可配置的RADIUS套件,可在諸如802.1x(WiFi),撥號,PPPoE,VPN,VoIP等系統上提供集中式網絡身份驗證。 達羅RADIUS 另一方面是用於管理FreeRADIUS服務器的高級Web應用程序。

FreeRADIUS支持各種各樣的數據庫後端,包括OpenLDAP,MySQL,Redis,Microsoft AD,Apache Cassandra,PostgreSQL等。

在Ubuntu 20.04上使用daloRADIUS安裝FreeRADIUS

在本演示中,我們將使用MySQL作為後端數據庫來設置FreeRADIUS。因此,在繼續操作之前,請確保滿足以下先決條件。

先決條件

更新和升級您的系統軟件包;

apt update
apt upgrade

通過以下鏈接在Ubuntu 20.04上安裝LAMP Stack;

在Ubuntu 20.04上安裝LAMP Stack

安裝其他必需的PHP模塊;

apt install php-gd php-mail php-mail-mime php-mysql php-pear php-db php-mbstring php-xml php-curl

在Ubuntu 20.04上安裝和配置FreeRADIUS

安裝FreeRADIUS

滿足以上所有前提條件後,請繼續在Ubuntu 20.04上安裝FreeRADIUS。 FreeRADIUS 3.0.x是撰寫本文時的最新穩定發行版,可在默認的Ubuntu 20.04存儲庫上使用。

要在Ubuntu 20.04上安裝FreeRADIUS和其他FreeRADIUS實用程序,包括MySQL數據庫後端實用程序,請執行以下命令;

apt install freeradius freeradius-mysql freeradius-utils

在調試模式下運行FreeRADIUS

通常,在完成安裝後,FreeRADIUS可以在默認配置下正​​常運行。要進行驗證,請在調試模式下運行FreeRADIUS,以確認已準備好處理請求。

在調試模式下運行FreeRADIUS之前,您需要首先停止其服務(安裝後自動啟動);

systemctl stop freeradius

完成後,在調試模式下運行FreeRADIUS。

freeradius -X

如果FreeRADIUS按預期運行,您應該會看到一行, 準備處理請求

   	max_connections = 16
   	lifetime = 0
   	idle_timeout = 30
   }
}
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel
Listening on auth address * port 1812 bound to server default
Listening on acct address * port 1813 bound to server default
Listening on auth address :: port 1812 bound to server default
Listening on acct address :: port 1813 bound to server default
Listening on proxy address * port 59191
Listening on proxy address :: port 33772
Ready to process requests

通過按停止調試模式 Ctrl + C

啟動並啟用FreeRADIUS以在系統啟動時運行;

systemctl enable --now freeradius

在防火牆上打開FreeRADIUS

FreeRADIUS使用UDP端口 1812 用於身份驗證和授權以及UDP端口 1813 作為配偶 港口。因此,如果UFW正在運行,請打開這些端口。

ufw allow to any port 1812 proto udp
ufw allow to any port 1813 proto udp

通過運行以下命令確認端口打開;

ss -alun4 | grep -E ':1812|:1813'
UNCONN  0       0               127.0.0.1:18120          0.0.0.0:*              
UNCONN  0       0                 0.0.0.0:1812           0.0.0.0:*              
UNCONN  0       0                 0.0.0.0:1813           0.0.0.0:*

創建FreeRADIUS MySQL數據庫和數據庫用戶

登錄MySQL服務器並創建FreeRADIUS數據庫;

mysql -u root -p
create database radiusdb;

創建FreeRADIUS數據庫用戶並授予上面創建的數據庫的所有特權;

create user [email protected] identified by '[email protected]';
grant all on radiusdb.* to [email protected];

重新加載特權表以影響更改並退出數據庫。

flush privileges;
quit

創建FreeRADIUS SQL模式

FreeRADIUS附帶了位於下面的默認數據庫模式 /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql。將該模式導入到上面創建的FreeRADIUS數據庫中;

mysql -u root -p radiusdb < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql

配置FreeRADIUS以使用SQL

要配置FreeRADIUS使用SQL模塊,請打開SQL模塊配置文件。

vim /etc/freeradius/3.0/mods-available/sql

將SQL方言設置為 MySQL的,然後定義上面創建的FreeRADIUS數據庫連接設置。

...
sql {
        #
        #  The dialect of SQL being used.
        #
        #  Allowed dialects are:
        #
        #       mssql
...
        dialect = "mysql"

        # The driver module used to execute the queries.
        #driver = "rlm_sql_null"
        driver = "rlm_sql_${dialect}"
...
        # Connection info:
        #
        server = "localhost"
        port = 3306
        login = "radiusadmin"
        password = "[email protected]"
...
        # Database table configuration for everything except Oracle
        radius_db = "radiusdb"
...

默認情況下,使用MySQL數據庫會強制使用TLS證書。在本演示中,我們不使用TLS證書,因此注釋掉了MYSQL TLS部分。

...
        mysql {
                # If any of the files below are set, TLS encryption is enabled
                #tls {
                #       ca_file = "/etc/ssl/certs/my_ca.crt"
                #       ca_path = "/etc/ssl/certs/"
                #       certificate_file = "/etc/ssl/certs/private/client.crt"
                #       private_key_file = "/etc/ssl/certs/private/client.key"
                #       cipher = "DHE-RSA-AES256-SHA:AES128-SHA"
                #
                #       tls_required = yes
                #       tls_check_cert = no
                #       tls_check_cert_cn = no
                #}

...

通過取消注釋(除去哈希),使FreeRADIUS服務器能夠從數據庫讀取客戶端 #read_clients = yes

...
        # Set to 'yes' to read radius clients from the database ('nas' table)
        # Clients will ONLY be read on server startup.
        read_clients = yes
...

接下來,通過創建SQL mods的符號鏈接(啟用到啟用mods的啟用)來啟用SQL模塊。

ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/

如下所示,將所有權用戶和已啟用的SQL模塊(符號鏈接)的組更改為freerad。

chown -h freerad.freerad /etc/freeradius/3.0/mods-enabled/sql

重新啟動FreeRADIUS服務,

systemctl restart freeradius

驗證FreeRADIUS對SQL數據庫的使用

要驗證FreeRADIUS現在可以正常使用MySQL數據庫,請在FreeRADIUS數據庫中填充一些虛擬數據。以上面創建的FreeRADIUS數據庫用戶身份登錄FreeRADIUS數據庫;

mysql -u radiusadmin -p
use radiusdb;

在以下位置創建虛擬用戶條目 radcheck 表;

insert into radcheck (id,username,attribute,op,value) values("1", "demouser", "Cleartext-Password", ":=", "demopass");

驗證相同;

select * from radcheck where id="1";
+----+----------+--------------------+----+----------+
| id | username | attribute          | op | value    |
+----+----------+--------------------+----+----------+
|  1 | demouser | Cleartext-Password | := | demopass |
+----+----------+--------------------+----+----------+
1 row in set (0.01 sec)

退出數據庫,停止FreeRADIUS,然後在調試模式下再次運行它以驗證它是否運行良好。

systemctl stop freeradius
freeradius -X

FreeRADIUS提供了一個簡單的測試工具, radtest,它將數據包發送到RADIUS服務器並顯示答覆。使用的語法 radtest 命令行工具是;

radtest {username} {password} {hostname} 10 {radius_secret}

閱讀手冊頁, man radtest,以獲取有關所使用選項的更多信息。

因此,當FreeRADIUS以調試模式運行時,請打開另一個終端並運行下面的test命令。 注意testing123 是本地主機客戶端的共享機密,請檢查 clients.conf

radtest demouser demopass localhost 10 testing123

如果你得到 Access-Accept,在驗證後響應,則完成POC。

Sent Access-Request Id 129 from 0.0.0.0:40930 to 127.0.0.1:1812 length 78
	User-Name = "demouser"
	User-Password = "demopass"
	NAS-IP-Address = 10.0.2.15
	NAS-Port = 10
	Message-Authenticator = 0x00
	Cleartext-Password = "demopass"
Received Access-Accept Id 129 from 127.0.0.1:1812 to 127.0.0.1:40930 length 20

停止FreeRADIUS調試模式並啟動服務。

systemctl start freeradius

在Ubuntu 20.04上安裝和配置daloRADIUS

daloRADIUS是用於管理FreeRADIUS服務器的高級Web應用程序。 daloRADIUS主頁託管在sourceforge上, https://sourceforge.net/projects/dalo​​​​radius。要下載最新版本,只需從sourceforge主頁獲取即可。

下載daloRADIUS zip文件後,將其解壓縮到您的Web根目錄;

unzip daloradius-1.1-2.zip 'daloradius/*' -d /var/www/html/
ls /var/www/html/
daloradius

daloRADIUS附帶了其默認的MySQL表。將這些表導入到上面創建的FreeRADIUS數據庫中。

mysql -u root -p radiusdb < /var/www/html/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
mysql -u root -p radiusdb < /var/www/html/daloradius/contrib/db/mysql-daloradius.sql

如下所示,將daloRADIUS Web配置文件的所有權配置給Apache Web用戶。

chown -R www-data.www-data /var/www/html/daloradius/

將daloRADIUS主配置文件的權限配置為 664 如下所示;

chmod 664 /var/www/html/daloradius/library/daloradius.conf.php

配置daloRADIUS數據庫連接設置;

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

根據您的設置來設置連接設置。

...
$configValues['DALORADIUS_VERSION'] = '1.1-2';
$configValues['DALORADIUS_DATE'] = '08 Aug 2019';
$configValues['FREERADIUS_VERSION'] = '2';
$configValues['CONFIG_DB_ENGINE'] = 'mysqli';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radiusadmin'; 
$configValues['CONFIG_DB_PASS'] = '[email protected]';
$configValues['CONFIG_DB_NAME'] = 'radiusdb';
...

保存並退出配置文件並重新啟動FreeRADIUS。

systemctl restart freeradius

從Web訪問daloRADIUS

現在,您可以從Web訪問daloRADIUS,因此可以輕鬆管理FreeRADIUS。使用地址, http://server-IP-Or-Hostname/daloradius

使用默認憑據登錄:用戶名: administrator 密碼: radius

在Ubuntu 20.04上使用daloRADIUS安裝FreeRADIUS

然後你去。您已在Ubuntu 20.04上成功安裝了帶有daloRADIUS的FreeRADIUS。探索RADIUS…

參考

在Debian / Ubuntu上安裝FreeRADIUS 3.x

Sidebar