其他的那几个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 hostapdiOS系统输入账号密码就能成功验证了,Android系统需要自己选择一下方法: