Table of contents
TOC
折叠目录
展开目录

使用扩展的端口访问控制列表创建安全策略

James McIllece|上次更新日期: 2017/3/10
|
1 参与者

适用于: Windows Server 2016

本主题提供访问控制列出 (Acl) 在 Windows Server 2016 中的扩展端口的信息。 您可以配置扩展的 Acl 上 HYPER-V 虚拟切换允许,并阻止从连接到虚拟网络适配器通过切换虚拟机 (Vm) 的网络通信。

本主题包含以下部分。

详细的 ACL 规则

HYPER-V 虚拟交换机用来外延 Acl 允许您创建详细的规则,以便你可以将它们应用于已连接到 HYPER-V 虚拟交换机用来的个别 VM 网络适配器。 创建详细的规则的能力对租户共享的服务器环境中的地址网络基于安全威胁允许企业和云服务提供商 (Csp)。

使用扩展的 Acl,而不是无需创建广泛规则来阻止或允许所有通信从到所有协议或 VM 中,你现在可以阻止或都允许网络通信的个别在虚拟机运行的协议。 你可以在 Windows Server 2016 年,包括以下 5 元套参数创建扩展的 ACL 规则: 源代码 IP 地址、目的地的 IP 地址、协议、源端口和目的地端口。 此外,每个规则可以指定网络交通方向(或缩小),并且操作规则支持(阻止或允许交通)。

例如,你可以配置端口 Acl vm 以允许所有传入和传出 HTTP 和 HTTPS 流量端口 80,同时阻止其他所有协议所有端口上的网络流量。

此功能指定协议交通可以或无法通过租户 Vm 接收了时配置安全策略的灵活性。

使用 Windows PowerShell 配置 ACL 规则

若要配置扩展的 ACL,必须使用 Windows PowerShell 命令添加 VMNetworkAdapterExtendedAcl。 此命令具有有关每个语法使用不同的四个不同语法:

  1. 将扩展的 ACL 添加到所有命名 VM 的第一个的参数-VMName 由指定的网络适配器。 语法:

    注意

    如果你想要添加到一个网络适配器,而不是所有扩展的 ACL,你可以使用参数指定的网络适配器的 VMNetworkAdapterName。

    Add-VMNetworkAdapterExtendedAcl [-VMName] <string[]> [-Action] <VMNetworkAdapterExtendedAclAction> {Allow | Deny}  
        [-Direction] <VMNetworkAdapterExtendedAclDirection> {Inbound | Outbound} [[-LocalIPAddress] <string>]  
        [[-RemoteIPAddress] <string>] [[-LocalPort] <string>] [[-RemotePort] <string>] [[-Protocol] <string>] [-Weight]  
        <int> [-Stateful <bool>] [-IdleSessionTimeout <int>] [-IsolationID <int>] [-Passthru] [-VMNetworkAdapterName  
        <string>] [-ComputerName <string[]>] [-WhatIf] [-Confirm]  [<CommonParameters>]  
    
  2. 添加扩展的 ACL 特定 VM 在特定虚拟网络适配器。 语法:

    Add-VMNetworkAdapterExtendedAcl [-VMNetworkAdapter] <VMNetworkAdapterBase[]> [-Action]  
        <VMNetworkAdapterExtendedAclAction> {Allow | Deny} [-Direction] <VMNetworkAdapterExtendedAclDirection> {Inbound |  
        Outbound} [[-LocalIPAddress] <string>] [[-RemoteIPAddress] <string>] [[-LocalPort] <string>] [[-RemotePort]  
        <string>] [[-Protocol] <string>] [-Weight] <int> [-Stateful <bool>] [-IdleSessionTimeout <int>] [-IsolationID  
        <int>] [-Passthru] [-WhatIf] [-Confirm]  [<CommonParameters>]  
    
  3. 添加扩展的 ACL 保留用于 HYPER-V 主机管理操作系统的所有虚拟网络适配器。

    注意

    如果你想要添加到一个网络适配器,而不是所有扩展的 ACL,你可以使用参数指定的网络适配器的 VMNetworkAdapterName。

    Add-VMNetworkAdapterExtendedAcl [-Action] <VMNetworkAdapterExtendedAclAction> {Allow | Deny} [-Direction]  
        <VMNetworkAdapterExtendedAclDirection> {Inbound | Outbound} [[-LocalIPAddress] <string>] [[-RemoteIPAddress]  
        <string>] [[-LocalPort] <string>] [[-RemotePort] <string>] [[-Protocol] <string>] [-Weight] <int> -ManagementOS  
        [-Stateful <bool>] [-IdleSessionTimeout <int>] [-IsolationID <int>] [-Passthru] [-VMNetworkAdapterName <string>]  
        [-ComputerName <string[]>] [-WhatIf] [-Confirm]  [<CommonParameters>]  
    
  4. 将扩展的 ACL 添加到已在 Windows PowerShell 如创建一个 VM 对象$vm = 获取 vm"my_vm"。 在接下来的代码行可以运行此命令以创建扩展的 ACL 与以下语法:

    Add-VMNetworkAdapterExtendedAcl [-VM] <VirtualMachine[]> [-Action] <VMNetworkAdapterExtendedAclAction> {Allow |  
        Deny} [-Direction] <VMNetworkAdapterExtendedAclDirection> {Inbound | Outbound} [[-LocalIPAddress] <string>]  
        [[-RemoteIPAddress] <string>] [[-LocalPort] <string>] [[-RemotePort] <string>] [[-Protocol] <string>] [-Weight]  
        <int> [-Stateful <bool>] [-IdleSessionTimeout <int>] [-IsolationID <int>] [-Passthru] [-VMNetworkAdapterName  
        <string>] [-WhatIf] [-Confirm]  [<CommonParameters>]  
    

详细的 ACL 规则示例

以下是如何使用你的几个示例添加 VMNetworkAdapterExtendedAcl配置扩展的端口 Acl 和创建虚拟机的功能的安全策略的命令。

注意

对于规则参数值方向在下表基于流量或 VM 创建规则。 如果 VM 都在接收的通信,交通是站;如果 VM 发送交通,交通是站。 例如,如果将规则应用于阻止站的通信 VM 中的入站交通方向为外部资源到 VM。 如果应用阻止站交通规则,站通信方向是从本地 VM 到外部资源。

强制应用程序级安全性

许多应用程序服务器使用标准化的 TCP/UDP 端口通信与客户端计算机,因为很容易创建规则来阻止或允许通过筛选交通转到和从端口命名即将向应用程序访问应用服务器。

例如,你可能想要允许用户通过使用远程桌面连接 (RDP) 登录到您的数据中心中的应用程序服务器。 由于 RDP 使用的 TCP 端口 3389,因此你可以快速设置以下规则:

源 IP目标 IP协议源端口目标端口方向操作
**TCP*3389允许

以下是两个使用 Windows PowerShell 命令,你就可以创建规则示例。 第一个示例规则阻止所有通信到 VM 名为"应用程序服务器。" 该第二个的示例规则应用于 VM 名为"应用程序服务器"的网络适配器,允许仅 RDP 到站的通信 VM。

注意

当您创建规则时,你可以使用的粗细参数,以确定顺序超 V 虚拟交换机用来处理规则订单。 值的粗细表达为整数;更高版本整数使用规则处理之前低整数使用规则。 例如,如果 VM 网络适配器,一个与 1 和一个与 10 粗细粗细到应用了两个规则与 10 的粗细规则应用第一次。

Add-VMNetworkAdapterExtendedAcl -VMName "ApplicationServer" -Action "Deny" -Direction "Inbound" -Weight 1  
Add-VMNetworkAdapterExtendedAcl -VMName "ApplicationServer" -Action "Allow" -Direction "Inbound" -LocalPort 3389 -Protocol "TCP" -Weight 10  

强制用户级别和应用程序级的安全性

因为规则可以匹配 5 元 IP 数据包(源 IP、目的地 IP、协议、源端口目标端口),规则可以强制比端口 ACL 更详细的安全策略。

例如,如果你想要提供对有限数量的客户端 DHCP 服务使用一组特定 DHCP 服务器的计算机,你可以 Windows Server 2016 计算机上运行的 HYPER-V,用户 Vm 位于配置以下规则:

源 IP目标 IP协议源端口目标端口方向操作
*255.255.255.255UDP*67缩小允许
*10.175.124.0/25UDP*67缩小允许
10.175.124.0/25*UDP*68允许

以下是有关如何使用 Windows PowerShell 命令创建这些规则的示例。

Add-VMNetworkAdapterExtendedAcl -VMName "ServerName" -Action "Deny" -Direction "Outbound" -Weight 1  
Add-VMNetworkAdapterExtendedAcl -VMName "ServerName" -Action "Allow" -Direction "Outbound" -RemoteIPAddress 255.255.255.255 -RemotePort 67 -Protocol "UDP"-Weight 10  
Add-VMNetworkAdapterExtendedAcl -VMName "ServerName" -Action "Allow" -Direction "Outbound" -RemoteIPAddress 10.175.124.0/25 -RemotePort 67 -Protocol "UDP"-Weight 20  
Add-VMNetworkAdapterExtendedAcl -VMName "ServerName" -Action "Allow" -Direction "Inbound" -RemoteIPAddress 10.175.124.0/25 -RemotePort 68 -Protocol "UDP"-Weight 20  

提供安全于 TCP/UDP 应用程序的支持

虽然大多数网络通信的数据中心中 TCP 和 UDP,是仍一些使用其他协议的交通。 例如,如果你想要允许的一组服务器运行依赖于 Internet 组管理协议 (IGMP) IP 多路广播应用,你可以创建以下规则。

注意

IGMP 有 0x02 指定的 IP 协议许多。

源 IP目标 IP协议源端口目标端口方向操作
**0x02**允许
**0x02**缩小允许

下面是使用 Windows PowerShell 命令,你就可以创建这些规则它的一个示例。

Add-VMNetworkAdapterExtendedAcl -VMName "ServerName" -Action "Allow" -Direction "Inbound" -Protocol 2 -Weight 20  
Add-VMNetworkAdapterExtendedAcl -VMName "ServerName" -Action "Allow" -Direction "Outbound" -Protocol 2 -Weight 20  

状态 ACL 规则

扩展 Acl 的另一项新功能可以配置状态规则。 状态规则筛选数据包基于五个属性数据包-中源 IP、目的地 IP、协议、源端口和目的地端口。

状态规则具有以下功能:

  • 它们始终允许通信,而不能用来阻止交通。

  • 如果您指定的值为参数方向归巢的并交通匹配规则、HYPER-V 虚拟交换机用来动态创建允许 VM 响应外部资源发送站交通匹配规则。

  • 如果你指定的参数值方向站并且交通的方法,规则、HYPER-V 虚拟交换机用来动态创建的匹配允许外部资源匹配规则归巢的 VM 接收的通信。

  • 它们包括几秒超时属性。 当网络数据包到达开关,并数据包匹配状态规则时,HYPER-V 虚拟切换创建状态,以便允许在两个方向相同流中的所有后续数据包。 如果没有通信沿任一方向超时值由指定的时间内,状态到期。

下面是您如何使用规则状态的示例。

允许站远程服务器交通仅在本地服务器联系之后

在某些情况下,因为有状态规则可以跟踪的一个已知的已建立连接,并且区分从其他连接连接,则必须采用状态规则。

例如,如果你想要允许 VM 应用程序服务器以启动上端口 80 向 Internet 上的 web 服务的连接,并且希望远程的 Web 服务器,能够响应 VM 通信,您可以配置允许从 VM Web 服务; 的初始站交通状态规则因为规则状态、返回到 VM 从 Web 服务器还允许通信。 出于安全原因,你还可以阻止所有其他网络到站的通信 VM。

来实现此规则配置,你可以使用下表中的设置。

注意

由于格式化限制和信息下表中的金额,显示的信息是不同比在本文档中的上一个表格。

参数规则 1规则 2规则 3
源 IP***
目标 IP***
协议**TCP
源端口***
目标端口**80
方向缩小缩小
操作拒绝拒绝允许
状态是的
超时(在秒钟内)不适用不适用3600

状态规则允许连接到远程的 Web 服务器的应用程序虚拟机服务器。 第一个数据包发送后,HYPER-V 虚拟交换机用来动态创建两个流状态,以允许所有数据包发送给和来自远程的 Web 服务器的所有老包。 当之间服务器数据包流停止时,流指出超时中指定的超时值为 3600 秒,或一小时。

下面是使用 Windows PowerShell 命令,你就可以创建这些规则它的一个示例。

Add-VMNetworkAdapterExtendedAcl -VMName "ApplicationServer" -Action "Deny" -Direction "Inbound" -Weight 1   
Add-VMNetworkAdapterExtendedAcl -VMName "ApplicationServer" -Action "Deny" -Direction "Outbound" -Weight 1  
Add-VMNetworkAdapterExtendedAcl -VMName "ApplicationServer" -Action "Allow" -Direction "Outbound" 80 "TCP" -Weight 100 -Stateful -Timeout 3600  
© 2017 Microsoft