雖然新的Unifi Cloud key Beta 版本內部已經內建FreeRadius Server.
但是穩定性不佳 因此本案例是使用Raspberry Pi來做FreeRasius Server+ DaloRadius的GUI.
同樣可以架設Unifi 與其他Radis Server驗證.
首先下載 RASPBIAN JESSIE 安裝作業系統,安裝完畢之後先接上螢幕跟鍵盤滑鼠來操作,因為還沒開啟SSH,無法遠端登入。
再來使用 sudo rasps-config,選第五項
再選SSH去啟動
離開之後再使用以下指令更新:
<span style="font-size: 14pt;">$ sudo apt-get update $ sudo apt-get upgrade $ sudo rpi-update</span>
然後再重開機。
完成之後就開始使用遠端登入 Raspberry Pi 做操作,這次實驗的結構圖如下
然後就要安裝 Apache、MySQL、PHP
<span style="font-size: 14pt;">$apt-get install freeradius freeradius-mysql apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql php-pear php5-gd php-db</span>
安裝完畢之後下載 DaloRADIUS 安裝檔,在 RASPBIAN JESSIE 裡,apache 的預設路徑是在 /var/www/html,前面的版本是在 /var/www/,這個分別要注意一下。
<span style="font-size: 14pt;">cd /usr/src wget http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz tar zxvf daloradius-0.9-9.tar.gz -C /var/www/html mv /var/www/html/daloradius-0.9-9/ /var/www/html/daloradius cd /var/www/html/daloradius </span>
然後開始建立 FreeRADIUS/DaloRADIUS 的資料庫,這邊登入MySQL的密碼都是登入作業系統的密碼。
<span style="font-size: 14pt;">mysql -uroot -p
mysql>create database radiusdb;
mysql>exit
mysql -u root -p radiusdb < /var/www/html/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
mysql -u root -p
mysql>CREATE USER 'radiususer'@'localhost';
mysql>SET PASSWORD FOR 'radiususer'@'localhost' = PASSWORD('radiuspass');
mysql>GRANT ALL ON radiusdb.* to 'radiususer'@'localhost';
mysql>exit
</span>
然後要設 定DaloRADIUS 與資料庫連結
<span style="font-size: 14pt;">nano /var/www/html/daloradius/library/daloradius.conf.php</span>
<span style="font-size: 14pt;">$configValues['DALORADIUS_VERSION'] = '0.9-9'; $configValues['FREERADIUS_VERSION'] = '2'; $configValues['CONFIG_DB_ENGINE'] = 'mysql'; $configValues['CONFIG_DB_HOST'] = 'localhost'; $configValues['CONFIG_DB_PORT'] = '3306'; $configValues['CONFIG_DB_USER'] = 'radiususer'; $configValues['CONFIG_DB_PASS'] = 'radiuspass'; $configValues['CONFIG_DB_NAME'] = 'radiusdb';</span>
FreeRADIUS的使用者名單路徑是在 /etc/freeradius/users,在做資料庫連結前最好先做測試來檢查運作是否正常。
<span style="font-size: 14pt;">nano /etc/freeradius/users</span>
更改下面這兩行 :
<span style="font-size: 14pt;">#"John Doe" Cleartext-Password := "hello"
# Reply-Message = "Hello, %{User-Name}"</span>
變成這樣:
<span style="font-size: 14pt;">"John Doe" Cleartext-Password := "hello"
Reply-Message = "Hello, %{User-Name}"</span>
<span style="font-size: 14pt;">$/etc/init.d/freeradius stop $freeradius -XXX</span>
<span style="font-size: 14pt;">Info: Ready to process requests.</span>
再按下 ctrl+c 結束連線。
重新啟動 freeradius 服務
<span style="font-size: 14pt;">$/etc/init.d/freeradius start</span>
使用 radtest 來確定可以通過認證
<span style="font-size: 14pt;">$radtest "John Doe" hello 127.0.0.1 0 testing123</span>
成功會看到下面的訊息:
<span style="font-size: 14pt;">Sending Access-Request of id 180 to 127.0.0.1 port 1812 User-Name = "John Doe" User-Password = "hello" NAS-IP-Address = 127.0.1.1 NAS-Port = 0 Message-Authenticator = 0x00000000000000000000000000000000</span>
這些都通過就可以切換到MySQL認證的部份
<span style="font-size: 14pt;">$nano /etc/freeradius/radiusd.conf</span>
對下面這兩行的內容刪除掉註解符號:
<span style="font-size: 14pt;"># $INCLUDE sql.conf # $INCLUDE sql/mysql/counter.conf</span>
改成:
<span style="font-size: 14pt;">$INCLUDE sql.conf $INCLUDE sql/mysql/counter.conf</span>
再把 /etc/freeradius/sql.conf 內的資訊修改成前面更改過的帳號密碼:
<span style="font-size: 14pt;">$nano /etc/freeradius/sql.conf</span>
<span style="font-size: 14pt;"> server = "localhost" #port = 3306 login = "radiususer" password = "radiuspass" # Database table configuration for everything except Oracle radius_db = "radiusdb"</span>
編輯 /etc/freeradius/sites-enabled/default 並把所有 sql 前的註解都拿掉
<span style="font-size: 14pt;">$nano /etc/freeradius/sites-enabled/default</span>
把 authorize{} 中 sql 前的註解符號刪掉
<span style="font-size: 14pt;"># 找出 sql.conf 中的 “Authorization Queries” sql</span>
把 accounting{} 中 sql 前的註解符號刪掉
<span style="font-size: 14pt;"># 找出 sql.conf 中的 “Accounting queries” sql</span>
把 session{} 中 sql 前的註解符號刪掉
<span style="font-size: 14pt;"># 找出 sql.conf 中的 “Simultaneous Use Checking Queries” sql</span>
把 post-auth{} 中 sql 前的註解符號刪掉
<span style="font-size: 14pt;"># 找出 sql.conf 中的 “Authentication Logging Queries” sql</span>
測試設定的結果,先停止 freeradius 服務
<span style="font-size: 14pt;">$service freeradius stop</span>
再啟用 freeradius 偵錯模式
<span style="font-size: 14pt;">$freeradius -X</span>
沒有顯示任何錯誤就可以繼續進行下去。
然後要將無線基地台設定為 client 才能讓其他裝置透過 client 與 FreeRADIUS 主機連線。
<span style="font-size: 14pt;">$nano /etc/freeradius/clients.conf</span>
最下面新增 AP 的資訊
<span style="font-size: 14pt;">client 192.168.1.112 {
padder = 192.168.1.112 #AP的IP
secret = testing123 #預設的secret
shortname = oss #隨意命名作為識別
}</span>
重新啟動 FreeRADIUS 服務
<span style="font-size: 14pt;">$service freeradius restart</span>
http://192.168.1.110/daloradius
預設密碼:radius














