我们有一个大约 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 重新连接到同一网络,并在 …
我正在尝试使用 Freeradius 设置经过身份验证的 wifi 网络。我已经设法使用自签名证书等使事情正常进行。
问题是 Windows 客户端需要取消选中MSCHAPv2 设置中的“自动使用我的 Windows 登录名和密码[等]”选项。当我使用 Eduroam 连接到我当地的大学时,它会自动要求输入用户名和密码,而不是发送 Windows 登录凭据。系统管理员是如何做到这一点的?它是某种被发回的 RADIUS 属性吗?
我的指令中有以下指令 /etc/pam.d/sshdRHEL5 盒子上的文件中有点困惑。这些指令用于使 LDAP+RADIUS+OTP 工作。我想要做的是告诉 pam 不要检查用户 UID < 499 的 LDAP+RADIUS+OTP,并且还要排除 UID = 30027 进行相同的检查。
该指令按预期工作。它检查 UID 是否 >= 499,如果是,则跳过(验证足够的 pam_unix.so nullok_secure)。
auth [success=1 default=ignore] pam_succeed_if.so uid >= 499 quiet
Run Code Online (Sandbox Code Playgroud)
我在这里很困惑。这应该做 LDAP+RADIUS+OTP 因为 success=1 但不知何故它仍然有效。如果为真,它不应该跳过下一条规则吗?
auth [success=1 default=ignore] pam_succeed_if.so uid eq 30027 quiet
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_radius_auth.so
auth required /lib/security/pam_google_authenticator.so forward_pass
Run Code Online (Sandbox Code Playgroud)
虽然,我已经让事情按照我想要的方式工作,但我对它的逻辑感到困惑。
好的,这就是我在使用 uid 为 30327 的本地用户 ssh 时在 /var/log/secure 中得到的信息 -
Aug 8 08:21:30 journey sshd[9357]: Accepted keyboard-interactive/pam for sidd from 10.1.1.178 port …Run Code Online (Sandbox Code Playgroud) 我是瞎搞与FreeRADIUS和MySQL (MariaDB)它似乎FreeRADIUS的服务将无法启动时正常启动。但它开始使用root用户或在调试模式 ( radiusd -X)下很好,并且工作得很好!调试模式显示没有错误。
systemctl 命令显示radiusd.service 启动失败。
/var/log/messages 输出:
Aug 21 15:52:29 nexus-test systemd: Starting The Apache HTTP Server...
Aug 21 15:52:29 nexus-test systemd: Starting MariaDB database server...
Aug 21 15:52:29 nexus-test systemd: Starting FreeRADIUS high performance RADIUS server....
Aug 21 15:52:29 nexus-test systemd: Started OpenSSH server daemon.
Aug 21 15:52:29 nexus-test mysqld_safe: 140821 15:52:29 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
Aug 21 15:52:29 nexus-test mysqld_safe: 140821 15:52:29 mysqld_safe Starting mysqld daemon with databases …Run Code Online (Sandbox Code Playgroud) 我目前正在运行带有 FreeRADIUS2 的 CentOS 5.5 机器。我现在打开了简单的身份验证(用户名和密码是通过 /etc/raddb/users 设置的)。我想让 FreeRADIUS 通过我当前的 OpenLDAP 服务器对用户进行身份验证。有人可以指出我正确的方向吗?
谢谢。
我在 Windows 7(内置 802.1x 请求方)上使用 TLS 机器身份验证进行有线 802.1x 部署,并带有必要的证书(在 Linux 上生成的 FreeRadius v2.2.3)。正在使用 Cisco C2960 POE 交换机。
在 Windows 7 上:
根 CA 存在于本地计算机 -> 受信任的根证书存储中
客户端证书存在于本地计算机 -> 个人存储中。
两个证书都是有效的,并且 802.1x 工作得很好。
但是,当本地计算机 -> 个人存储中存在另一个有效证书且名称以比 Radius 客户端证书更高的字母开头(字母表中的 D 高于 L)时,该证书(具有更高的字母)将被发送到 Radius 服务器,将无法正确验证。
需要其他一些有效证书,所以我不确定是否有解决方案,或者这是设计使然(或者 Windows 7 是否只是使用证书存储中“列表顶部”的证书)。我已经尝试了 Microsoft 修补程序 KB2769121(802.1X 身份验证在具有多个证书的基于 Windows 7 或基于 Windows 2008 R2 的计算机上失败),但它不起作用。还有其他人有这个问题吗?任何帮助将不胜感激。
我已经编辑了我/etc/pam.d/sshd的 Radius 身份验证;我添加了这一行:
auth required pam_radius_auth.so
Run Code Online (Sandbox Code Playgroud)
另外,我已经注释掉了这一行:
@include common-auth
Run Code Online (Sandbox Code Playgroud)
现在,如果 Radius 服务器已启动,则使用 Radius 的 SSH 身份验证是可以的,但如果 Radius 服务器已关闭,则无法回退使用本地 linux 帐户。
关于在哪里编辑文件以允许我在 Radius 服务器出现故障时回退到本地 linux 帐户的任何建议?
我正在学习如何使用freeradius,版本是v2.1.12。当我运行 radtest 时,服务器没有响应,我看到服务器端调试消息如下:
Received packet from 127.0.0.1 with invalid Message-Authenticator! (Shared secret is incorrect.) Dropping packet without response.
Run Code Online (Sandbox Code Playgroud)
这是 radtest 命令:radtest -x selftest password 127.0.0.1 0 secret
这是我对 /etc/freeradius/clients.conf 的编辑:
client selftest {
ipaddr = 127.0.0.1
secret = secret
}
Run Code Online (Sandbox Code Playgroud)
这是我对 /etc/freeradius/users 的编辑:
selftest Cleartext-Password := "password"
Run Code Online (Sandbox Code Playgroud)
以下是 radtest 的完整输出:
radtest -x selftest password 127.0.0.1 0 secret
Sending Access-Request of id 238 to 127.0.0.1 port 1812
User-Name = "selftest"
User-Password = "password"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
Message-Authenticator …Run Code Online (Sandbox Code Playgroud) 我的任务是设置 freeRADIUS 以提示用户输入他们的第二个身份验证因素(例如 Google Authenticator OTP),但没有先检查用户的密码。
我完全盲目地进入了这个领域,之前没有 RADIUS 经验。我们有一个提示用户登录的 web 应用程序,因此密码身份验证已经完成。然后,我们需要提示用户输入第二个身份验证因素以执行某些操作。我们不想反复要求用户输入他们的密码(并且在本地缓存它显然是一个禁忌)所以我们想要做的是以某种方式配置 freeRADIUS,以便它:
这甚至可行吗?就像我说的,我之前没有任何 RADIUS 经验,所以如果这是一个愚蠢的问题,我深表歉意。
有没有办法在不重新启动服务的情况下重新加载 Freeradius 客户端配置?我在用着:
Ubuntu Server 12
Freeradius 2.1.10
MySQL v5.5.20 (I'm storing the clients in the "nas" table)
Run Code Online (Sandbox Code Playgroud) 使用 FreeRADIUS 我需要针对 Web 后端对 RADIUS 用户进行身份验证,并且一直在尝试使用 rlm_rest 模块来做到这一点。见这里。
在我的站点配置中,我有这样的事情:
authorize {
rest
}
Run Code Online (Sandbox Code Playgroud)
在身份验证部分,我尝试了以下操作:
authenticate {
Auth-Type REST {
rest
}
}
Run Code Online (Sandbox Code Playgroud)
或者
authenticate {
rest
}
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,我都会收到以下错误: (2) ERROR: No Auth-Type found: rejecting the user via Post-Auth-Type = Reject
在我的 Web 服务器上,我正在返回 ,204 code因为它似乎应该在没有额外进程的情况下对用户进行身份验证。见这里。授权似乎工作正常,但一旦到达身份验证部分,就会返回该错误。
我需要知道的是允许 rlm_rest 模块完成请求的身份验证部分所需的“用户”文件条目和站点可用条目的组合。谢谢,