使用 FreeRADIUS、MySQL、EAP-PEAP、TLS 建立安全的 WiFi 连接

使用 FreeRADIUS、MySQL、EAP-PEAP、TLS 建立安全的 WiFi 连接

我正在尝试设置如图所示的无线网络,但我不知道如何保护它。

Wifi 网络图片:

在此处输入图片描述

我的基本问题是:如何安全地将密码存储到 MySQL 数据库中,以便 FreeRADIUS 可以读取它?

这是我想要实现的更长的版本:

  1. 用户连接到无线网络
  2. 用户将提示输入用户名和密码
  3. 使用正确的凭证,RADIUS 服务器将发送证书,并可形成 TLS 连接。

我已经设置了使用明文密码,但显然我想使用某种哈希来保护密码。现在密码以明文形式存储在数据库中。从此兼容性表中我了解到,如果我将 PEAP 与 MSCHAPv2 一起使用,则需要使用 NT 哈希密码。http://deployingradius.com/documents/protocols/compatibility.html

当我使用 daloRADIUS 添加用户时,只有 Cleartext-、User-、Crypt-、MD5-、SHA1- 和 CHAP-Password 选项。没有 NT 哈希密码选项。我想这意味着我不能将 daloRADIUS 用作 Web GUI。我想我只需编写一个 shell 脚本,即可轻松在数据库中添加和删除用户。

在 FreeRADIUS 中我已配置/etc/freeradius/mods-available/eap

eap {
    default_eap_type = peap
peap {
    default_eap_type = mschapv2

如果我理解正确的话,我现在使用的是 EAP-PEAP 和 MSCHAPv2 以及 TLS。我知道我正在使用 TLS,因为第一次尝试登录无线网络时,freeradius-X调试模式会出现以下错误。尝试 TLS 后,系统会要求用户输入用户名和密码。

(28) eap_peap: <<< TLS 1.2  [length 0002]
(28) eap_peap: ERROR: TLS Alert read:fatal:unknown CA 
(28) eap_peap: ERROR: TLS_accept: Failed in SSLv3 read client certificate A
(28) eap_peap: ERROR: SSL says: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
(28) eap_peap: ERROR: SSL_read failed inside of TLS (-1), TLS session failed
(28) eap_peap: ERROR: TLS receive handshake failed during operation
(28) eap_peap: ERROR: [eaptls process] = fail
(28) eap: ERROR: Failed continuing EAP PEAP (25) session.  EAP sub-module failed
(28) eap: Sending EAP Failure (code 4) ID 162 length 4
(28) eap: Failed in EAP select

使用明文密码身份验证可以工作,但是当我尝试输入某种散列密码时,身份验证失败,如下所示。

(36)   Found Auth-Type = EAP
(36)   # Executing group from file /etc/freeradius/sites-enabled/inner-tunnel
(36)     authenticate {
(36) eap: Expiring EAP session with state 0x024362c402167826
(36) eap: Finished EAP session with state 0x024362c402167826
(36) eap: Previous EAP request found for state 0x024362c402167826, released from the list
(36) eap: Peer sent packet with method EAP MSCHAPv2 (26)
(36) eap: Calling submodule eap_mschapv2 to process data
(36) eap_mschapv2: # Executing group from file /etc/freeradius/sites-enabled/inner-tunnel
(36) eap_mschapv2:   Auth-Type MS-CHAP {
(36) mschap: WARNING: No Cleartext-Password configured.  Cannot create NT-Password
(36) mschap: WARNING: No Cleartext-Password configured.  Cannot create LM-Password
(36) mschap: Creating challenge hash with username: joujou
(36) mschap: Client is using MS-CHAPv2
(36) mschap: ERROR: FAILED: No NT/LM-Password.  Cannot perform authentication
(36) mschap: ERROR: MS-CHAP2-Response is incorrect
(36)     [mschap] = reject
(36)   } # Auth-Type MS-CHAP = reject
(36) eap: Sending EAP Failure (code 4) ID 85 length 4

那么你能帮助我吗?我有什么选项可以对密码进行哈希处理?

以下是我使用的软件和硬件:

  • 主要是 Windows 10 笔记本电脑
  • TP-Link Archer C7 v2 无线接入点,运行 OpenWRT Chaos Calmer 15.05 / Luci(git-15.248.30277-3836b45)
  • 2 个 ESXi 虚拟机:一个运行 PfSense 2.2.6,另一个运行 Ubuntu Server 14.04。
  • 在 Ubuntu Server 上,我安装了带有 MySQL 和 daloRADIUS 0.9-9 的 FreeRADIUS 3.0.10。

相关内容