玩 Wii 的一些心得 WordPress Wii Edition Plugin (WiiPress v1.3)

使用 Apple AirPort Express AP 透過 Radius Server 來做認証

使用 Apple AirPort Express AP 透過 Radius Server 來做認証

Case 1:
第一種是在 “連線權限控制” 的地方,除了可以自行輸入 MAC Address 來限制外,還可以使用 RADIUS Server,把 MAC Address 的清單放到 RADIUS 中

AirPort Express

使用 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 企業級的認証方式 (下次再介紹)

Leave a Reply

FireStats icon Powered by FireStats