IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

如何在Ubuntu 22.04中‧安裝及設定FreeRADIUS服務及daloRadius管控程式

01. 早2日終於成功刪除FreeRADIUS服務,今天試一下安裝和使用FreeRADIUS服務。

02. FreeRADIUS服務建基於LAMP上,所以先安裝apache、PHP及MariaDB。

sudo apt install apache2
sudo apt install php libapache2-mod-php php-{gd,common,mail,mail-mime,mysql,pear,db,mbstring,xml,curl}
sudo apt install mariadb-server



03. 設定MariaDB安全性程式。

sudo mysql_secure_installation
『Enter current password for root (enter for none)』:設定MariaDB用戶root密碼。
『Remove anonymous users』:移除匿名用戶。
『Disallow root login remotely』:移除root用戶遠端登入權限。
『Remove test database and access to it』:移除test數據庫。
『Reload privilege tables now』:重新載入特權表格。

04. 安裝FreeRADIUS服務。

sudo apt install freeradius freeradius-mysql freeradius-utils

05. FreeRADIUS服務預設是安裝後即時執行。如要進入除錯模式,先停止FreeRADIUS服務,再啟用除錯模式。

sudo systemctl stop freeradius
sudo freeradius -X


06. 除錯模式執行沒有問題後,按『Ctrl + C』結束除錯模式。並可以將FreeRADIUS服務加入系統啟動時載入。

sudo systemctl enable --now freeradius

07. 在MariaDB建立FreeRADIUS的資料庫。

sudo mysql -u root -p
CREATE DATABASE freeradius;
CREATE USER 'freeradius'@'localhost' IDENTIFIED by 'freeradius_db_password';
GRANT ALL PRIVILEGES ON freeradius.* TO 'freeradius'@'localhost';
FLUSH PRIVILEGES;
quit;


08. 將FreeRADIUS設定檔加入到FreeRADIUS資料庫內。

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

09. 檢查在MariaDB中,是否已成功建立FreeRADIUS資料庫。

sudo mysql -u root -p -e "use freeradius;show tables;"

10. 加入FreeRADIUS設定檔連結。

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

11. 修改更改FreeRADIUS設定檔。

sudo nano /etc/freeradius/3.0/mods-enabled/sql

將:
dialect = "sqlite"
更改為:
dialect = "mysql"

將:
driver = "rlm_sql_null"
# driver = "rlm_sql_${dialect}"
更改為:
# driver = "rlm_sql_null"
driver = "rlm_sql_${dialect}"

設定TLS證書路徑:
mysql {
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
}
warnings = auto
}

將:
# server = "localhost"
# port = 3306
# login = "radius"
# password = "radpass"
更改為:
server = "localhost"
port = 3306
login = "freeradius"
password = "freeradius_db_password"

將:
radius_db = "radius"
更改為:
radius_db = "freeradius"

將:
# read_clients = yes
更改為:
read_clients = yes

12. 將設定檔及設定檔資料夾加入到freerad用戶及組內。

sudo chgrp -h freerad /etc/freeradius/3.0/mods-available/sql
sudo chown -R freerad:freerad /etc/freeradius/3.0/mods-enabled/sql

13. 重新啟動FreeRADIUS服務,如沒有任何錯誤,即表示設定正確。

sudo systemctl restart freeradius.service

14. 為方便管控FreeRADIUS服務,可以安裝daloRadius作為網頁界面管控。

15. 下載及解壓程式,並移到適當位置,如『/opt』。

wget https://github.com/lirantal/daloradius/archive/master.zip
unzip master.zip
sudo mv daloradius-master /opt/freeradius


16. 切換到daloRadius資料夾,並將daloRadius設定檔加到MariaDB的FreeRADIUS資料庫內。

cd /opt/freeradius
sudo mysql -u root -p freeradius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
sudo mysql -u root -p freeradius < contrib/db/mysql-daloradius.sql

17. 設定daloRadius資料夾存取權限。

sudo chown -R daemon:daemon /opt/freeradius

18. 複製daloRadius設定檔。

sudo cp /opt/freeradius/library/daloradius.conf.php.sample /opt/freeradius/library/daloradius.conf.php

19. 設定daloRadius設定檔權限。

sudo chmod 664 /opt/freeradius/library/daloradius.conf.php

20. 修改daloRadius設定檔。

sudo nano /opt/freeradius/library/daloradius.conf.php
將:
$configValues['CONFIG_DB_USER'] = 'root';
$configValues['CONFIG_DB_PASS'] = '';
$configValues['CONFIG_DB_NAME'] = 'radius';
更改為:
$configValues['CONFIG_DB_USER'] = 'root';
$configValues['CONFIG_DB_PASS'] = 'mysql_password';
$configValues['CONFIG_DB_NAME'] = 'freeradius';

21. 因不會將daloRadius放在apache documentroot資料夾內,所以先建立apache alias設定。

sudo nano /etc/apache2/sites-enabled/000-default.conf
Alias "freeradius" "/opt/freeradius"
<Directory "/opt/freeradius">
AllowOverride All
Require ip 192.168.0.166
</Directory>

22. 重新啟動apache及FreeRADIUS服務。

sudo systemctl restart freeradius.service apache2

23. 打開瀏覽器,登入daloRadius。預設登入為『administrator』,密碼是『radius』。

24. 更改daloRadius管理員密碼。於『daloRadius』、『Config』、『Operators』、『List Operators』,選擇用戶『administrator』,設定新密碼。

25. 新增存取FreeRADIUS服務用戶。在『daloRadius』、『Management』、『Users』、『New User』,新增用戶名稱及密碼。

26. 要存取到FreeRADIUS服務,要先在daloRadius內設定『NAS』選項。在『daloRadius』、『Management』、『NAS』、『New NAS』,設定『NAS IP/Host』、『NAS Secret』、『NAS Type』、『NAS Shortname』。

27. 要測試FreeRADIUS服務是否能正常運行,先停止FreeRADIUS服務及啟用除錯模式。

sudo systemctl stop freeradius.service
sudo freeradius -X

28. FreeRADIUS服務需用到UDP 1812及1813埠位,需先設定防火牆開放相關埠位。

29. 下載『NTRadPing』程式及執行。

30. NTRadPing程式設定如下。

『RADIUS Server/port』:FreeRADIUS服務何服器IP地址及埠位。
『Reply timeout (sec.)』:連線測試時間。
『Retries』:連線測試次數。
『RADIUS Secret key』:第25項中,NAS設定的『NAS Secret』。
『User-Name』:第26項中,設定的用戶名稱。
『Password』:第26項中,設定的用戶密碼。

31. 如成功連接FreeRADIUS服務伺服器,便會在NTRadPing程式的『RADIUS Server reply』,見到連線內容。

32. 同時,會在FreeRADIUS除錯模式下,見到連線資料。

33. 最後,當然是將相關設定,加到要連線到FreeRADIUS服務的裝置上。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *