MAC 服务器上开启 RADIUS 作 WIFI 验证

Airport 配合 MoLo 10.8 可以在 server.app 以 GUI 方式开启 radius 服务,非常方便,开启后你的 wifi 会使用 WPA2 企业级验证,cool 哦,需要输入用户名密码。

如果没有 Airport,其实任何支持 WPA 企业级验证的路由器都行,Tomato,DDWrt 等等,我们手动设置下 radius 服务即可。

在这里我用的是一台 Mac mini server 开启 radius 服务,airport + tomato 路由器使用这个 radius 做主验证服务器。

我们先准备好一份 cert + key

打开 keychain ,选择 system->my certificates,看到一个类似 你macnini名字.local 的证书,选中它和它的 key,导出到桌面成 wifi.p12

终端执行命令:

openssl pkcs12 -in ~/Desktop/wifi.p12 -out /etc/raddb/certs/server.key -nodes -nocerts  
openssl pkcs12 -in ~/Desktop/wifi.p12 -out /etc/raddb/certs/server.crt -nodes -nokeys  
radiusconfig -installcerts /etc/raddb/certs/server.key /etc/raddb/certs/server.crt  
#以上安装证书
dseditgroup -q -o create -u admin -n . com.apple.access_radius  
#以上添加radius到sacl
radiusconfig -setconfig auth yes  
radiusconfig -setconfig auth_badpass yes  
radiusconfig -setconfig auth_goodpass yes  
radiusconfig -autorotatelog on -n 15  
chmod -R 775 /private/var/log/radius  
#以上打开log
radiusconfig -addclient 你AP的IP地址 myAP other  
#添加AP到radius,会提示你输入一个 secret,输入,记住
OK,先终端工作到这,我们打开 server.app  

选择 Open Directory 打开次服务,然后 View->Show System Accounts,点 Users,添加一个网络用户,例如 epgay,再到 Groups,找到 radius (可以用旁边的搜苏框),双击,在蹦出的对话框下面有个 members,点 + 号把 epgay 添加进去。

好了,让我们回到终端:

radiusd -X
打开 radius debug 模式,然后我们做点测试,在本地 terminal 下执行

sudo radtest epgay 密码 macmini服务器IP 18128 你设置的secret

如果本地没有 radtest 命令,在服务器上也行。。

如果一切OK,你会看到:

Sending Access-Request of id 96 to 192.168.1.xx port 1812  
    User-Name = "epgay"
    User-Password = "wktoo"
    NAS-IP-Address = 192.168.1.xx
    NAS-Port = 18128
    Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 192.168.1.xx port 1812, id=96, length=20  

那么我们完工了,最后配置 radius 作为永久服务:

radiusconfig -start

最后我们到 airport 和 tomato 里设置 wifi 验证为 WPA2 enterprise 即可。你最好还再配置一个 radius 作为备用,否则你的 Mac mini 挂了,wifi 便无法使用。