使用 Apple AirPort Express AP 透過 Radius Server 來做認証
使用 Apple AirPort Express AP 透過 Radius Server 來做認証
Case 1:
第一種是在 “連線權限控制” 的地方,除了可以自行輸入 MAC Address 來限制外,還可以使用 RADIUS Server,把 MAC Address 的清單放到 RADIUS 中
使用 RADIUS Server 的好處是,可以隨時增減 MAC Address 的紀錄,AirPort Express 不需要重開機
但若是用 AirPort 管理工具程式來設定,則每增減一個 MAC Address 時 AirPort Express 都要 Reboot,這樣無線網路就會暫時中斷,很不方便
AirPort Express 的設定:
只要填上 RADIUS Server 的 IP、Port 及 Secret Key 即可
Radius Server 的設定:
以 FC6 為例,用 yum 把 freeradius 及 freeradius-mysql 給裝起來 (我把資料放 MySQL 中)
$ yum install freeradius freeradius-mysql
再來是修改 FreeRadius 的主要設定檔
1./etc/raddb/radiusd.conf
我有改的部份:
hostname_lookups = yes
log_auth = yes
log_auth_badpass = yes
log_auth_goodpass = yes
# 要使用 MySQL,所以跟 sql 相關的都要打開 (把前面的 # 拿掉)
modules {
$INCLUDE ${confdir}/sql.conf
}
authorize {
sql
}
accounting {
sql
}
session {
sql
}
post-auth {
sql
}
2./etc/raddb/clients.conf
我的內部網段是 10.10.10.x 所以加一筆:
client 10.10.10.0/24 {
secret = mysecret
shortname = LAN
}
3./etc/raddb/users
若要使用 file 認証,在 “#John Doe” 附近的下面加上:
"test" Auth-Type := Local, User-Password == "testpassword"
Reply-Message = "Hello, %u"
再把底下兩行註解起來:
#DEFAULT Auth-Type = System
# Fall-Through = 1
4./etc/raddb/sql.conf (使用 MySQL 認証)
主要是把連接 MySQL 的 Server、帳號及密碼指定好:
server = "localhost" login = "root" password = "rootpass"
設定好後,重新啟動 radiusd 即可:
$ /etc/init.d/radiusd restart
MySQL Server 的設定:
1.建立 radius 資料庫及匯入 schema
$ echo "CREATE DATABASE radius" | mysql $ mysql radius < /usr/share/doc/freeradius-1.1.3/examples/mysql.sql
2.建立群組資料
$ mysql
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.254');
mysql> insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');
3.建立帳號
以 Client 無線網卡的 MAC Address 當帳號:
mysql> insert into radcheck (username,attribute,op,value) values ('001124-112233','User-Password',':=','mypassword');
4.將帳號加入群組
mysql> insert into usergroup (username,groupname) values (’001124-112233′,’user’);
要再新增帳號,就重覆 3. 4. 的步驟即可
5.測試
$ radtest 001124-112233 mypassword 10.10.10.251 0 mysecret
Sending Access-Request of id 69 to 10.10.10.251 port 1812
User-Name = "001123-112233"
User-Password = "mypassword"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Accept packet from host 10.10.10.251:1812, id=69, length=20
Service-Type = Framed-User
Framed-IP-Address = 255.255.255.254
Framed-IP-Netmask = 255.255.255.0
查看 /var/log/radius/radius.log,若成功的話,會有類似底下的訊息:
Thu Jan 11 13:33:29 2007 : Info: rlm_sql_mysql: Starting connect to MySQL server for #0 Thu Jan 11 13:33:29 2007 : Auth: Login OK: [001124-112233/mypassword] (from client LAN port 0)
Client (PC) 的設定:
不需要做任何設定,只要知道無線網卡的 MAC Address 有被建在 RADIUS 的資料庫中即可
除了這種方式外,另外也可以使用 WPA/WPA2 企業級的認証方式 (下次再介紹)
