Radius 服务器上的机器帐户身份验证

Radius 服务器上的机器帐户身份验证

我的工作站在 Linux 下。我在 Windows 2008 上有一个 Active Directory 域控制器 + Radius 服务器。我可以使用“radtest”工具验证用户帐户“radius-01”:

    $ radtest -t pap radius-01 password123 195.234.133.32 1812 password123
    Sending Access-Request of id 98 to 195.234.73.2 port 1812
            User-Name = "radius-01"
            User-Password = "password123"
            NAS-IP-Address = 127.0.1.1
            NAS-Port = 1812
    rad_recv: Access-Accept packet from host 195.234.133.32 port 1812, id=98, length=84
            Framed-MTU = 1344
            Framed-Protocol = PPP
            Service-Type = Framed-User
            Class = 0x537004f00000013700010200ac1c0...

我已使用 Samba 将我的 Linux PC 加入到 Active Directory 域 ARB-HRK:

    [root@shev-arb]# net ads testjoin
    Join is OK

我可以转储机器密码:

    [root@shev-arb]# tdbdump /var/lib/samba/private/secrets.tdb
    {
    key(34) = "SECRETS/MACHINE_PASSWORD/ARB-HRK"
    data(15) = "yGgXJsquRnpT0g\00"
    }

如何在 Radius 服务器上验证我的机器帐户?

有人知道这方面的工具吗,例如:

    radtest   shev-arb$ yGgXJsquRnpT0g 195.234.133.32 1812 password123

(该命令失败)

答案1

在 Windows 域中,对于使用 MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 作为身份验证方法的旧系统(例如使用 IKEV1 PAP 的情况),使用机器机密的机器身份验证默认处于禁用状态。在这种情况下,您可能会在 NPS 上遇到 DPC 身份验证失败,错误为 0xc0000199(NO_LOGON_WORKSTATION_TRUST_ACCOUNT)。

要为特定计算机帐户启用机器身份验证。请执行以下操作:

  • 编辑 UserAccountControl 属性,以便删除 WORKSTATION_TRUST_ACCOUNT 并将 NORMAL_ACCOUNT 添加到值中。
  • 如果 UserAccountControl 的现有值为 x,则计算更新该值至 (x-4096+512),以使机器身份验证正常工作。

按照此知识库文章中给出的说明进行操作:http://support.microsoft.com/kb/305144或者:

  1. 在域控制器上运行 adsiedit.msc
  2. 展开树并选择计算机叶,它将显示为 CN=Hostname
  3. 右键单击并选择属性
  4. 在属性窗口中选择 userAccountControl 属性。双击进行编辑。
  5. 通过从现有值中减去 3584 来更新数字。
  6. 按“OK”关闭编辑,按“OK”关闭属性对话框。

测试完成后恢复正常设置。

radtest -t mschap'主机/shev-arb.arb-hrk.net'yGgXJsquRnpT0g 195.234.133.32 1812 密码123
正在向 195.234.133.32 端口 1812 发送 ID 为 139 的访问请求
...
rad_recv:来自主机 195.234.133.32 端口 1812 的访问接受数据包,id=139,长度=142
...

相关内容