Hostapd配置EAP-PEAP/MSCHAPV2

Hostapd支持很多EAP方法,但是我自己测试了一轮下来,可以说只有PEAP的兼容性最好。

其他的那几个EAP方法,比如TTLS,兼容性实在太差,当然这也可能是Hostapd内置的EAP服务不完善导致的。

前段时间我配置过一个FreeRadius里面的EAP-TLS,那个还可以。实际上Hostapd可以和FreeRadius对接,只不过我觉得没啥必要折腾了,PEAP/MSCHAPV2足够安全了。

如果你要按照本文来配置EAP-PEAP/MSCHAPV2的话需要先做一做前置:

Debian10使用Hostapd搭建WiFi热点

PEAP需要一个SSL证书,由于各种原因这里我用Let’s encrypt的话不太方便,就用自签证书解决了。

安装下面的软件包即可获得一个自签证书:

apt -y install ssl-cert

如果要重签证书:

make-ssl-cert generate-default-snakeoil --force-overwrite

证书和私钥的路径:

/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key

接下来编辑Hostapd配置文件:

nano /etc/hostapd/hostapd.conf

修改如下配置:

wpa_key_mgmt=WPA-EAP

也可以改成如下内容,这样支持两种验证方法:

wpa_key_mgmt=WPA-PSK WPA-EAP

加入如下配置:

ieee8021x=1
eapol_version=2
eap_server=1
eap_user_file=/etc/hostapd/hostapd.eap_user
server_cert=/etc/ssl/certs/ssl-cert-snakeoil.pem
private_key=/etc/ssl/private/ssl-cert-snakeoil.key

然后新建一个存用户信息的配置文件:

nano /etc/hostapd/hostapd.eap_user

按照如下格式来配置,一行一个账号/密码:

*  PEAP
"imlala"  MSCHAPV2  "password"  [2]
"lalala"  MSCHAPV2  "password"  [2]

其他的EAP方法配置可以参考:

https://w1.fi/cgit/hostap/plain/hostapd/hostapd.eap_user

最后重启Hostapd即可完成配置:

systemctl restart hostapd

iOS系统输入账号密码就能成功验证了,Android系统需要自己选择一下方法:

全部为采集文章,文中的 联系方式 均不是 本人 的!

发表评论