我们有一个大约 20 人的小办公室,每个人都使用 MacBook,还可以选择连接手机。以前我们使用带有共享密钥的普通 Wi-Fi,但最近我将其重新配置为 WPA Enterprise,所有用户都收到了自己的凭据:登录名/密码对。身份验证通过freeradius
在 AWS EC2 机器上运行的服务进行。
RADIUS 服务器未配置为使用任何证书,每个用户在/etc/freeradius/users
文件中都有一个如下所示的条目:
john.doe Cleartext-Password := "my_password"
Run Code Online (Sandbox Code Playgroud)
RADIUS 客户端已以简约的方式配置 - 这是我们的 /etc/freeradius/clients.conf
client RADIUSClient {
ipaddr = <our office external IP>
secret = <secret key shared with the Access Point>
require_message_authenticator = no
}
Run Code Online (Sandbox Code Playgroud)
此设置似乎适用于所有手机和大多数 MacBook。MacBooks 首先抱怨一个不受信任的自签名证书(这是可以理解的),但是在将此证书设置为受信任后,一切正常。
然而,一些 MacBook 在成功连接后,开始以随机间隔(1-30 分钟)显示身份验证错误:
Authentication failed on network “Network SSID”.
The authentication server is unresponsive. Contact your network administrator to check the network infrastructure.
Run Code Online (Sandbox Code Playgroud)
此对话框中有一个“断开连接”按钮。然而,在用户按下此按钮之前,MacBook 会保持完美连接。窗口可以从屏幕上移开,但它一次又一次地弹到中心,刺激用户。单击“断开连接”会断开笔记本电脑与 Wi-Fi 的连接,然后在几秒钟内 Mac 重新连接到同一网络,并在 …
我们有一个企业 VPN 服务器,在装有 Ubuntu 16.04 Xenial 的 AWS 实例上运行 OpenVPN 2.3。服务器已使用 Ansible playbook 进行配置。
我计划升级到 Ubuntu 18.04 Bionic,它还将 OpenVPN 升级到 2.4 版(这是一个预期的副作用,因为 OpenVPN 2.3 已被弃用)。所以我创建了一个带有 Bionic 的测试实例,并针对它运行了 Ansible playbook。配置包括通过 Google Authenticator 的 MFA,所以我也~/.google_authenticator
从旧服务器复制文件并应用chmod 400
到它。
在新服务器工作之前,我还必须解决一些兼容性问题:
openvpn-plugin-auth-pam.so
文件位置已更改,现在无需在服务器配置中指定其完整路径。CAP_AUDIT_WRITE
openvpn
systemd 服务中缺少权限(在此处查看更多详细信息)但是,即使在该身份验证之后,新服务器上的身份验证仍然失败。这是我的/etc/pam.d/openvpn
样子:
auth required pam_google_authenticator.so
Run Code Online (Sandbox Code Playgroud)
如果我用 替换这一行auth required pam_permit.so
,我将成功通过身份验证(当然使用任何密码)并连接,所以问题肯定是 MFA 介入的地方。
同时,pamtester
告诉我pam_google_authenticator.so
工作正常:
$ sudo pamtester openvpn vlad authenticate
Verification code:
pamtester: successfully authenticated
Run Code Online (Sandbox Code Playgroud)
这是我在尝试对 VPN 服务器进行身份验证时在 …