利用VPN远程访问,可以让用户在任何位置都可快捷方便地访问内网资源。但如何对这些VPN访问进行安全认证,是维护网络运作不可忽视的问题。使用RADIUS(Remote Authentication Dial-In User Service)服务器,就可以很好地完成任务。RASIUS是一种客户端/服务器协议,当用户利用远程连接工具连接到远程访问服务器、VPN服务器(这些服务器称为RADIUS客户端)等目标主机上时,这些主机就可以进行用户身份验证、授权访问、记账操作等相关的任务,提交给RADIUS服务器来完成。
使用域管理员身份登录某台服务器,在服务器管理器左侧点击“角色”项,在右侧点击“添加角色”链接,在向导界面中点击“下一步”,在“选择服务器角色”窗口中选择“网络策略和访问服务”项,在“下一步”窗口中选择“网络策略服务器”,之后点击“安装”完成安装操作。对于本机可以在管理工具菜单中点击“网络策略服务器”项,来启动网络策略服务器。
在本例中,网络策略服务器隶属于域环境,所以需要在网络策略服务器窗口左侧选择“NPS(本地)”项,在右键菜单上点击“在Active Directory中注册服务器”项,系统会弹出提示窗口。点击确定按钮,将网络策略服务器注册到其所隶属的域,或者以域管理员身份登录RADIUS服 务 器,在PowerShell界面中执行“netsh ras add registeredserver”命令,来实现同样的效果。
最直接的方法是,以域管理员身份登录域控制器,在Active Directory管理中心中的“User”中双击“RAS and Servers”组,在管理窗口左侧点击“添加”按钮,将RADIUS服务器添加到该组中。
在本例中,VPN服务器就是RADIUS客户端。当网络策略服务器安装之后,系统默认将其视为RADIUS服务器,这就需要指定RADIUS客户端。在RADIUS服务器上打开网络策略服务器控制台窗口,在左侧选择“NPS(本地)→RADIUS客户端和服务器→RADIUS客户端”项,在右键菜单中点击“新建”项,在新建RADIUS客户端窗口(如图1)中的“设置”面板中选择“启用此RADIUS客户端”项,在“友好名称”栏中输入客户端名称(例如“VPN服务”),在“地址(IP或DNS)”栏中输入VPN服务器的IP地址或者计算机名称,如果输入的是计算机名称,需要点击“验证”按钮,来检测是否可以解析到VPN服务器的IP地址。
在“共享机密”栏中选择“手动”项,可以手工输入密码。也可以选择“生成”项,让系统自动创建密码。注意,密码是区分大小写的,在RADIUS客户端也需要设置相同的密码,否则RADIUS服务器将拒绝接受客户端发送来的各种请求信息。
在“高 级”面 板 中选 择“Microsoft”或 者“RADIUS Standard”均可。选 择“Accept-Request消息必须包含Message-Authenticator”项,表示双方采用了 PAP、CHAP、MSCHAP、MS-CHAP v2安全验证方式的话,则需要RADIUS客户端发送消息验证程序属性,这样如有假冒的RADIUS客户端,就可将其IP找出,这样可以提高双方通讯安全性。如果采用的是EAP验证方式,则默认选中该功能。
图1 创建RADUIS客户端
图2 配置RADIUS客户端属性
图3 添加RADIUS服务器
选 择“RADIUS客户端支持NAP”项,表示客户端需要支持网络访问保护功能,即客户端必须是健康的。保存设置信息后,就可以将VPN服务器变成RADIUS客户端了。在VPN服务器上打开路由和远程访问控制台,在左侧点击“路由和远程访问→VPN(本地)”项,在属性窗口(如图2)中的“安全”面板中的“身份验证提供程序”列表中选择“RADIUS身份验证”项。
点击“配置”按钮,在弹出窗口中点击“添加”按钮,在添加RADIUS服务器窗口(如图3)中的“服务器名称”栏中输入RADIUS服务器的IP,在“共享机密”栏中输入上述密码。在“超时”栏中设置合适的数值,默认为5秒。如果VPN服务器将访问请求发送给该RADIUS服务器后,在预设时间内没有收到回应信息,就会将验证请求发送给其他的RADIUS服务器,当然,需要存在多台RADIUS服务器方可。
如果存在多台RADIUS服务器,可以在“初始分数”栏中为该RADIUS服务器设置优先级参数,该值越大优先级越高。在发送验证请求时,VPN服务器会优先将其发送给优先级高的RADIUS服务器。在“端口”栏中可以更改RADIUS服务器的端口号,默认为1812。
选择“一直使用消息验证者”项,则需要RADIUS服务器端上选择“Accept-Request消息必须包含Message-Authenticator”项与之匹配。在“安全”面板中的“记账提供程序”列表中选择“RADIUS记账”项,表示VPN服务器将记账操作转交给RADIUS服务器来处理。所谓记账,指的是记录每一个远程连接的状态,例如接受或者拒绝远程连接,记录登录和注销操作等。点击“配置”按钮可以对其进行配置,具体测操作大体和上述相同,记账服务的默认端口号为1813。
图4 查看连接请求策略信息
在一些情况下,单一的RADIUS服务器无法满足需求,这就需要使用RADIUS代理服务。那么,RADIUS服务器是自行处理连接请求,还是将其转发给其他的RADIUS服务器,其实是由内置的连接请求策略决定的。当安装好网络策略服务器后,其实际上就变成了RADIUS服务器。通过设置连接请求策略,就可以确定是让该RADIUS服务器来处理连接请求,还是交由另外的RADIUS服务器来处理验证请求。在RADIUS服务器的网络策略服务器控制台(如图4)左侧点击“NPS(本地)→策略→连接请求策略”项,在窗口右侧显示其内置的名称为“Use Windows authentication for all users”的连接请求策略,双击该策略,在属性窗口中的“条件”面板中显示只要一个星期内任意时段都可以连接的控制功能。
在“设置”面板中左侧点击“身份验证”项,在右侧默认选择“在此服务器上时请求进行身份验证”项,表示直接由该RADIUS服务器对连接请求进行验证。如果选择“将请求转发到以下远程RADIUS服务器组进行身份验证”项,该机就会充当RADIUS代理服务器的角色,在列表中选择RADIUS服务器组的特定RADIUS服务器。当然,前提是必须创建RADIUS服务器组方可。如果选择“不验证凭据就接受用户”项,则直接允许用户的任意连接请求。
在网络策略服务器控制台左侧选择“NPS(本地)→RADIUS客户端和服务器→远程RADIUS服务器组”项,在右键菜单上点击“新建”项,在弹出窗口的“组名”栏中设置RADIUS服务器组的名称,点击“添加”按钮,在打开窗口中的“服务器”栏中输入目标RADIUS服务器的IP,点击“验证”按钮,如果输入的是计算机名称,可以点击“验证”按钮,检测是否可以解析其IP。
按照同样的方法,可以添加其他的RADIUS服务器。在上述窗口右侧显示创建的RADIUS服务器组信息,双击目标组,在属性窗口中显示所包含的所有RADIUS服务器。双击目标RADIUS服务器,在属性窗口中可以更改其地址、身份验证方式、共享密码、记账端口等参数。在“负载均衡”面板中可以设置该RADIUS服务器的优先级和权重,优先级为1表示等级最高。当RADIUS代理服务器在转发连接请求时,优先级越高,转发的频率也越高,即首先转发给优先级高的RADIUS服务器。如果两台RADIUS优先级相同,则比较权重参数,权重越高,转发的频率就越高。