L2TP/IPsec 服务器 - 在 AD 中为特定用户保留一个 IP 地址

L2TP/IPsec 服务器 - 在 AD 中为特定用户保留一个 IP 地址

我已经使用 xl2tpd 设置了一个相当简单的 L2TP/IPsec 服务器,该服务器在 xl2tpd.conf 中为 VPN 客户端配置了一个 IP 地址池。现在,如果 VPN 客户端使用具有正确密码的特定用户名,我需要为其分配特定的 IP 地址。问题是,pppd 配置为运行身份验证助手来向 Active Directory 域验证用户身份,这样我就无法使用 chap.secrets 文件为使用给定用户名建立的连接指定 IP 地址。此外,pppd 从 xl2tpd 的池中接收建议的 (?) IP 地址,因此在身份验证之前会分配一个地址,而且它似乎还忽略了ipcp-accept-remote选项文件中的指令,该指令在技术上允许 L2TP 客户端指定其所需的 IP 地址,或者我只是在客户端的设置中设置一个静态 IP 地址。Windows 7 中的客户端。

如何让 pppd 在通过 Windows AD 进行身份验证后为连接分配特定的 IP 地址?

编辑:看起来,配置了 NTLM 身份验证帮助程序后,pppd 永远不会使用 chap-secrets 文件,因此我输入的任何内容都不会被使用。那么,这完全不可能吗?

答案1

没有什么是不可能的,简而言之,只是需要更多或其他工具。我已经设法设置了一个 RADIUS 服务器,使用 freeradius 不干扰基于 Windows 的内容,但可能 MS-RADIUS 服务器及其msRADIUSFramed-IP-Address属性也可以。为“普通”用户配置了一个池,通过用户文件DEFAULT设置分配它,然后设置两种类型的身份验证(需要更多测试,无论如何 ntlm_auth over mschap 有效),然后进行用户名匹配以直接在 freeradius 配置中分配 ip 地址。虽然愚蠢但有效。

一组技巧:首先,我未能正确填充Stripped-User-Name属性,因此将mschap:User-Name其提供给 ntlm_auth,否则质询/响应将针对全名而不是缩写名称形成,并且 ntlm_auth 会立即失败,因为 winbind 不期望全名。也许我应该让它以正确的方式工作,但是当 UPN 开始调用时,winbindd 容易失败,并且 sssd 后端不使用 NTLM 来验证 mschap 序列。其次,我在授权序列中移动得files更早mschap,以便拥有两种类型的用户,即本地存储和域存储。第三,我首先使用 PAP 测试了所有内容,当转换到 mschap 时,我发现 mschap 报告 ntlm_auth 无法读取与 winbindd。我无法让 radiusd 以受限用户身份(超出时间)正确启动 ntlm_auth,而是让 radiusd 以 root 身份启动。 (当您要制作针对域进行身份验证的生产 RADIUS 服务器时,请以正确的方式执行此操作!)但是,RADIUS 仅监听 127.0.0.1,因此预计安全性不会变差。

相关内容