NPS 的多个 IP 和范围和子网的正则表达式

Regex for multiple IPs and ranges and subnets for NPS

我正尝试在我们公司的 radius 身份验证中为多个 cisco 和 linux 设备在服务器 2016 上使用 NPS 拆分不同的团队。

我已将所有 IP 范围和单个 IP 添加到 Radius 客户端,并且可以通过广告用户组成员身份访问它们。现在我想再创建几个 AD 组并让每个组只能访问设备的子集,我正在努力处理 "client ipv4 address" 字段中要求的正则表达式以包含每个组的所有设备。

以下适用于第一组需要访问的 99% 的设备。 192.168.1|2|10|11|12|20|21|22..+ 然后我想授予它访问 10.0.0.99 的单个设备(但该范围内没有其他设备)和其他一些单个 IP,例如 172.0.0.45、172.0.0.46、10.10.10.50、10.10.10.52

192.168.x.x 范围工作正常,但使用分隔符添加额外的 IP 会停止整个字符串的工作,例如 , 或 |或每组之前的 ^ 和之后的 $。

尝试使用捕获组。

(192\.168\.(1|2|10|11|12|20|21|22)\..+)|(10\.0\.0\.99)|(172\.0\.0\.45)|(172\.0\.0\.46)|(10\.10\.10\.50)|(10\.10\.10\.52)

Try it online

您的正则表达式也有一些漏洞,因为您没有转义 .

为了最大限度地提高安全性,请记住反斜杠 .,除非它们被用作 "wildcards"(匹配任何内容。

它还需要在任何 | 管道周围有 ( 方括号 ),否则它们将以您可能不希望的方式进行解释。

有关详细信息,请参阅 Microsoft regex page