文章主要由以下幾部分組成:
0、概念理解: WPA/WPA2,EAP,IEEE, 802.11i, WiFi聯盟, 802.1x
1、編譯hostapd
2、配置hostapd的conf文件
3、外接路由器設置
4、配置hostapd的user文件
5、運行命令
0、概念理解
(1)802.11i 是一個標准,這種安全標准為增強WLAN的數據加密和認證性能,定義了RSN(Robust Security Network)的概念,標准范疇分為媒介層(MAC)與物理層(PHY)。該標准為整個802.11協議族共用。
(2)EAP一種可擴展的認證框架,各種認證方法可以得到很好的支持。
認證者(A),申請認證者(S),后端認證服務器(B, 本文是Radius服務器)
有以上三種角色組成的模式叫做BAS模式,
還有一種AAA模式:Authentication、Authorization and Accounting,認證、授權和計費。
(3)802.1X是802.1規范家族中的一員。簡單來說,802.1X詳細討論了EAP在Wired LAN上的實現,即EAPOL。
(4)IEEE 是一個組織,負責制定(1)(2)(3)中所說的802.11i。
(5)WiFi聯盟也是一個團體,組織。他們擁有 Wi-Fi 這個名詞的商標,並且會檢驗要使用Wi-Fi這個名詞的設備以核發證書。什么樣的無線傳輸可以稱之為WiFi,由他們認證。
(6) WPA 實現了 IEEE 802.11i 標准的大部分,是在 802.11i 完備之前替代 WEP 的過渡方案。WPA由WiFi聯盟建立,並提供該項接入方式的認證。2003年開始強制性實施。
英文縮寫: WPA (Wi-Fi Protected Access)
中文譯名: Wi-Fi網絡安全接入
認識了WPA, WPA2也就是WPA的第二代,是經由 Wi-Fi 聯盟驗證過的 IEEE 802.11i標准的認證形式。
WPA/WPA2有兩種認證模式,一種是個人版(預先秘鑰共享機制,即PSK)和企業版(使用802.1x框架)
最后,總結成如下圖,各個實體之間的關系。
1、編譯hostapd
(1) 配置.conf文件
該文檔使用的是hostapd-2.5源碼。
在執行make之前需要安裝openssl等開發包。這里編譯環境使用的是Ubuntu,因為開發環境比較容易配置。
到hostapd文件夾下,
一般有類似於“defconfig”的文件,將其重命名為“.config”。
首先,因為我們是將hostapd當做radius服務器,所以這一項的配置很重要。
然后后面根據需要配置各種EAP方法
(2) 執行make命令
make //生成hostapd運行文件
make hlr_auc_gw //編譯生成hlr_auc_gw 運行文件
2、配置hostapd.conf文件
dirver=none
ieee8021x=1
eap_server=1
eap_user_file=hostapd.eap_user
# TLS parameters (shared by EAP-PEAP, EAP-TTLS, EAP-FAST)
ca_cert=cas.pem
# Server certificate and private key from separate files
server_cert=server.pem
private_key=server.key
radius_server_clients=hostapd.radius_clients
radius_server_auth_port=1812 【randius服務器的端口】
注: server.pem, server.key, cas.pem可以復用hostapd文件夾下的同名文件,即拷貝過去配置好相對路徑就好。
其他參照里面的說明配置,EAP-FAST的項需要比較多的配置。(現在很少設備支持EAP-FAST這種認證方式)
3、配置路由器
使用路由器作為AP,所以需要讓AP知道如何把信息轉發給Radius服務器
配置一個SSID
配置路由器認證方式
關於上圖中的radiuis服務器IP地址,Radiuis端口和Radius密碼,參照以下步驟執行。
【如何獲取本機的radius IP地址】
先修改hostapd.conf配置文件:
RADIUS authentication server
auth_server_addr=192.168.1.102
auth_server_port=1812
auth_server_shared_secret=secret
然后在終端中運行 ./hostapd -ddK hostapd.conf 命令
可以看到local address就是本機的Radius服務器的IP地址是192.168.1.100,這個就是【radius服務器的IP地址】
這種投機取巧的辦法就是利用外部radius服務器打印本機的radius服務器地址。現在依舊將上面剛剛添加的幾行注釋掉,使用#
#RADIUS authentication server
#auth_server_addr=192.168.1.102
#auth_server_port=1812
#auth_server_shared_secret=secret
修改下面一行的密碼為12345678,這個就是radius【服務器的密碼】。
參考將路由器的組秘鑰更新周期改為0.
4、配置user文件,用於用戶登陸
剛剛在hostapd.conf文件中配置的
eap_user_file=hostapd.eap_user
注:就是用戶的登錄名和密碼,配置用戶名和密碼時候,每一種EAP method的用戶名不能相同,不然會出現找不到該method的情況。
其他的用戶配置就請閱讀上面的說明。添加新的EAP-Method 用戶可以參照PEAP的方法配置,但是用戶名不能相同。
5、運行命令,在hostapd文件夾下
./hlr_auc_gw -g hostapd.sim_db -m hlr_auc_gw.milenage_db
./hostapd -ddK hostapd.conf
(版權所有,轉載請告知)