可以使用Microsoft的网络策略服务器(NPS)将Windows 2008及更高版本配置为RADIUS服务器。这允许使用Windows Server本地用户帐户或Active Directory对OpenV-P- N,入网门户,PPPoE服务器甚至pfSense GUI本身进行身份验证。

为NPS选择服务器

NPS需要最少的资源,适合在大多数环境中添加到现有的Windows Server。Microsoft建议将其安装在Active Directory域控制器上,以提高NPS针对Active Directory进行身份验证环境中的性能。它也可以安装在成员服务器上,这在某些环境中可能是合乎需要的,以减少对域控制器的攻-击途径。每个可通过网络访问的服务都为破坏服务器提供了另一种可能的途径。NPS具有可靠的安全记录,特别是与必须在域控制器上运行以供Active Directory运行的其他服务相比,因此在大多数网络环境中这并不是一个问题。大多数环境下,只需要在其中一个域控制器上安装NPS。

安装

在Windows Server 2008上:

  • 导航到服务器管理器

  • 单击左侧的角色并展开它

  • 单击右侧的“添加角色

  • 单击“下一步”跳过介绍屏幕

在Server 2012上:

  • 打开“系统管理”仪表板

  • 单击“添加角色和功能”

  • 单击过去基于角色或基于功能的安装

  • 再次单击“下一步”

  • 从列表中选择服务器

  • 再次单击下一步”

在任一服务器版本上,其余步骤类似:

  • 检查角色列表中的网络策略和访问服务

  • 如果出现,请单击添加功能

  • 在每个屏幕上单击“下一步”,直到向导结束

  • 单击“完成”或“安装”,具体取决于Windows服务器版本

配置

要配置NPS,请打开服务器管理器,并且应该存在网络策略和访问服务(2008)或NAP(2012)。

首先为pfSense添加RADIUS客户端,然后配置远程访问策略。

添加RADIUS客户端

打开NPS配置:

在Server 2008上:

  • 打开服务器管理器

  • 展开其下的视图,直到可以看到RADIUS客户端和服务器

  • 单击“RADIUS客户端”

在Server 2012上:

  • 打开服务器管理器仪表板

  • 单击NAP

  • 右键单击服务器列表中的服务器

  • 单击网络策略服务器

  • 展开RADIUS客户端和服务器

  • 单击“RADIUS客户端”


添加新的RADIUS客户端:

  • 右键单击RADIUS客户端

  • 单击添加,如上图所示。

  • 输入防火墙友好名称,如下图所示这可以是主机名或FQDN。

  • 输入防火墙地址(IP或DNS),该地址必须是pfSense将从中发起RADIUS请求的IP地址,或者是将解析为该IP地址的FQDN。

    注意

    这是最靠近RADIUS服务器的防火墙接口的IP地址。如果可以通过防火墙LAN接口访问RADIUS服务器,这就是LAN IP地址。在pfSense不是外围防火墙且WAN接口驻留在RADIUS服务器所在的内部网络的部署中时,必须输入WAN IP地址。


  • 输入共享密钥,如下图所示在发出RADIUS访问请求时,pfSense使用此共享密钥进行身份验证。Windows可以通过单击Generate“生成”自动创建一个

  • 单击确定。

NPS配置现已完成。RADIUS客户端已配置完成,如下图所示


RADIUS可以在用户管理器使用,还支持用于IPsec和Open×××的RADIUS,用于入网门户和PPPoE服务器等。

配置用户和网络策略

用户是否可以通过RADIUS进行身份验证是通过网络策略控制的使用网络策略,管理员可以将用户置于特定的Active Directory组中以允许×××访问,还可以提供更高级的功能,例如时间限制。

有关远程访问策略的更多信息,请参阅Microsoft的文档,网址为http://technet.microsoft.com/en-us/library/cc785236%28WS.10%29.aspx

添加网络策略

  • 打开NPS配置窗口

  • 展开NPS(本地)策略,然后展开网络策略

  • 右键单击“网络策略”

  • 单击新建

  • 输入策略名称AllowfrompfSense

  • “网络访问服务器类型”设置为“未指定”

  • 单击下一步

  • 在“指定条件”窗口中单击“添加

  • 选择Windows组

  • 单击添加

  • 输入或选择包含×××用户的用户组的名称,例如×××Users

  • 单击确定

  • 单击下一步

  • 选择已授予权限

  • 单击下一步

  • 根据需要为pfSense上的功能选择其他身份验证方法

    保留已选中已启用的任何其他方法。

    • 保留选择现有身份验证方法

    • 如果此策略将用于IPsec IKEv2 EAP-RADIUS身份验证,请选择Microsoft:安全密码(EAP-MSCHAP v2)

    • 选择加密身份验证(CHAP)

    • 选择未加密的身份验证(PAP,SPAP)

  • 单击下一步

  • 如果向导显示查看帮助主题的提示,请单击“拒绝”

  • 如有必要,配置任何其他访问限制

  • 在其余屏幕上单击“下一步”,直到到达最终屏幕

  • 单击完成

编辑现有网络策略

可以更改现有策略以更改其约束或其他属性。例如,要编辑旧策略以使其可供IPsec用于IKEv2 EAP-RADIUS:

  • 打开NPS配置窗口

  • 展开NPS(本地)策略,然后展开网络策略

  • 编辑当前正在使用的策略

  • 单击“强制选项卡

  • 单击验证方法

  • 单击添加

  • 选择Microsoft:安全密码(EAP-MSCHAP v2)

  • 单击确定

  • 单击“应用”以重新启动NPS

  • 单击确定

NPS故障排除

如果身份验证失败,本节将介绍用户遇到NPS时遇到的最常见问题。

验证端口

首先确保NPS正在使用默认端口1812如果先前已安装NPS服务器,则可能已使用非标准端口进行配置。

  • 打开NPS配置窗口

  • 右键单击控制台左上角的NPS(本地)

  • 单击属性

  • 单击“端口”选项卡

  • 验证身份验证端口配置。通过用逗号分隔多个端口来指定它们。(如下图所示)。端口1812必须是为身份验证配置的端口之一。

  • 必要时验证Accounting端口。如果需要RADIUS记帐,则端口1813必须是此框中指定的端口之一。


检查事件查看器

当服务器应答RADIUS身份验证请求时,NPS将使用身份验证请求的结果登录到事件查看器中的系统日志。如果拒绝访问,则会记录拒绝访问的原因。

在事件属性的“描述”字段中,“原因”行说明身份验证失败的原因。常见的两个失败原因是:用户输入错误的用户名或密码;当用户帐户设置为拒绝访问或NPS中配置的网络策略不允许该用户访问时,“用户帐户的远程访问权限被拒绝”。如果NPS正在记录验证成功,但客户端收到错误的用户名或密码消息,则在NPS和pfSense中配置的RADIUS密钥不匹配。

可以在自定义视图-服务器角色-是网络策略和访问服务下轻松找到事件查看器中的NPS日志。

​使用Windows Server进行RADIUS身份验证的更多相关文章

  1. ios – 整个专属网络和CNSetSupportedSSID如何工作?

    如果是这样,用户会以某种方式得到通知,他/她应该这样做吗?>iOS会启动此应用程序,以便用户可以进行身份验证吗?>该应用程序会收到一些回调吗?

  2. 使用 Siesta 处理 Swift 网络请求

    通过资源为中心而不是请求为中心的设计,Siesta提供一个全局的符合RESTful的可被观察的模型。这篇教程里,我将展示给你如何通过使用Siesta,让你的网络处理代码变得更加Swiftly。Siesta支持对请求初始化和配置进行解耦,所以在请求资源的时候,不用担心过多关于请求具体的细节。比如,你无需担心loadIfNeeded被调用的太频繁,Siesta允许你在指定时间内忽略重复的请求。配合Siesta,我们能自动执行认证以及重试因为认证失败的请求。

  3. android – Google Cloud Messaging无法在公司网络上使用4.1.2设备

    我已经实现了一个简单的GCM客户端和服务器.客户端使用currentGCMclientAPIs(而不是deprecatedhelperlibrary).服务器(C#和.NET)遵循相应的serverguidelines(使用HTTP).我的服务器在公司域内的计算机上运行,因此我将客户端设备连接到公司网络内的Wi-Fi接入点,但可以访问Internet.简而言之,我的问题是4.3手机上收到通知,但连

  4. android – 在Internet上发布我的RESTful Web服务

    什么是最好的方法?例如,我可以使用AmazonWebServices或ApacheHTTPServer吗?

  5. android – 谷歌GCM推送通知服务器的IP范围?

    想知道有没有人在这里碰巧知道google的gcm服务器的ip范围?

  6. Pfsense拒绝连接到mitmproxy服务器

    具有pfsense的虚拟机不信任mitmproxy作为具有自己CA的代理服务器我尝试在通过两个适配器连接的虚拟机上模拟pfsense软件防火墙的流程。我向内部网络添加了另一台带有mitmproxy的机器,我在mitmprox服务器上收到类似这样的错误:TLS客户端握手失败。客户端不信任pkg00-at.netgate.com的代理证书。根据我的阅读,mitmproxx服务器有一个ca,我可以从中下载SSL证书,所以我做了,我尝试从其GUI添加到pfsense中的可信CA。它通过互联网重定向所有请求。

  7. centos – 通过私人网络从外部Vagrant盒子拒绝连接

    虽然有很多事情可能是错误的,但第一个要检查的是访客内部的防火墙:它可能就像拥有端口22但不是端口80的规则一样简单.

  8. centos – 绑定和开放端口

    我最近在CentOS盒子上安装了Bind.一切似乎只在端口53打开时工作.但是,我在配置文件中注意到rndc.conf中有一行显示“default-port953”;我没有打开端口953,Bind似乎正在工作.我能保持953关闭吗?RNDC在953上听的重点是什么?

  9. centos – Laggy服务器,似乎iptables正在做负载

    我将多个/24个类中包含的几千个IP添加到CentOS盒中,因此我日夜扫描.由于这个服务器将是一个主力,它只需要在SSH和http/s上可用,我最终阻止了邮件端口和ping回复.这解决了http/s上的高响应时间,但iptables增加了服务器上的负载.我正进入(状态:我怎样才能解决这个问题,因为服务器在做基本的事情时非常慢,比如通过SSH接受命令?

  10. centos – 配置Postfix通过端口587发送/中继电子邮件Gmail(smtp.gmail.com)

    使用Centos5.4,使用Postfix.我可以做一个并且msg被发送到gmail,但它驻留在垃圾邮件文件夹中,这是预期的.我的目标是能够生成电子邮件消息,并让它们出现在常规收件箱中!据我了解Postfix/Gmail,可以将Postfix配置为使用端口587通过经过身份验证的/有效用户发送/中继邮件,这将不再将邮件视为垃圾邮件.我已经尝试了一些基于网络上不同网站/文章的参数,没有运气.一些文章,实际上似乎与其他文章冲突!还与IRC上的一些人交谈,但仍有疑问……所以,我再次转向Serverfault!

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部