Hyper-V中的访问控制列表

本文涉及的产品
云防火墙,500元 1000GB
简介:

微软在Windows Server 2012中对虚拟交换机做了很多的改进和增强,其中不但增加了诸如RSS、dVMQ、端口映射以及支持PVLAN等技术,还提供了非常实用的访问控制列表(ACL)功能。

在Technet中可以查看到Windows Server 2012中对于ACL的称谓叫做Port Access Control Lists,它是基于源/目的地址、方向和动作(允许/拒绝)来进行规则筛选的:

Local or Remote Address Direction Action

12-34-56-78-9A-BC

Inbound

Allow

12-34-56-78-9A-BC

Outbound

Allow

FF-FF-FF-FF-FF-FF

Inbound

Allow

Any

Inbound

Deny

Any

Outbound

Deny

通过上面的列表可以看到在2012的ACL功能当中是支持IP与MAC地址的,并且像“Any”这类通配指令也是支持的,所以对于熟悉主流网络设备的童鞋来讲不需要适应过程,可谓是极易于上手的。

那么在Windows Server 2012R2中,ACL功能又得到了加强,被称为“Extended Port Access Control Lists”即扩展端口访问控制列表,不难看出这就好比网络设备上的标准ACL与扩展ACL一样,后者在原有基础上增加支持源/目的端口、协议、权重等,下面就实际演示一下Windows Server操作系统中的ACL功能:

##########################################################################################

演示环境:

主机:Windows 8.1

虚拟机:Windows Server 2008R2 SP1 Standard


因为ACL功能对操作系统版本没有过分的要求,它是属于Hypervisor层的技术,所以我就用自己的笔记本电脑(Windows8.1)启用Hyper-V功能即可,如下图所示我准备了两台测试虚机,一台叫做SQL2008R2(运行SQL2008R2),另一台叫做WIN2008R2(运行IIS7)

wKioL1PoUQWhUS0hAAQVRxhB51c046.jpg

在开始配置ACL之前,我把两台虚拟机的防火墙都关闭,其中SQL2008R2的IP为192.168.10.12,它是能够PING通WIN2008R2(192.168.10.11)的,如下图:

wKiom1PoTAXiDjjxAAW8WK0iTyE706.jpg

此外可以看到SQL2008R2这台虚机当前TCP 1433端口处于监听状态

wKioL1PoTR6AfvRNAAVn-AWem-8863.jpg

回到WIN2008R2这台机器上,此时也是能够PING通192.168.10.12(SQL2008R2)的

wKiom1PoTAaRWkm0AAUIkF33l80512.jpg

并且已经安装了Web Server角色,本机默认站点可以正常访问,而且可以telnet到SQL2008R2的1433端口

wKioL1PoTR-BxQVYAAR3JtrXySE907.jpg

##########################################################################################

测试环境准备好之后,来看一下主机上的PowerShell,主要筛选一下Hyper-V Module下的ACL相关命令,可以看到本文前面提到过的“标准ACL”与“扩展ACL”,如下图:

wKiom1PoTAazraHQAAMIlhQQ8cg664.jpg

接着就来试一下标准ACL的效果,实用下面的命令对虚机WIN2008R2配置一条ACL,针对目的地址192.168.10.12的出方向进行Deny操作。

wKioL1PoTSDAtb97AAGF6Q2N5Vw476.jpg

配置生效后可以通过Get命令查询已存在的ACL,如下图所示:

wKiom1PoTAey9XV7AAKdBPlha0w993.jpg

此时回到WIN2008R2再去PING SQL2008R2时已经不可达了。

wKioL1PoTSCTmksKAAPRnCJ65dc404.jpg

接着删掉刚刚生效的ACL

wKiom1PoTAfz5ta_AANrIqDB8VU689.jpg

再去WIN2008R2重新PING SQL2008R2,通信又恢复正常了。

wKioL1PoTSCAT2GiAATmhNyFif8748.jpg

此外除了IP意外,还可以使用MAC地址作为筛选条件,如下图所示,还是对于WIN2008R2这台虚机,使用MAC地址并拒绝入方向流量。

wKiom1PoTAjQ2J4OAAPpDKWm6Xg930.jpg

来到SQL2008R2上去PING WIN2008R2可以看到ACL生效了。

wKiom1PoTAiAFG2MAAQVtxhuQl8579.jpg

##########################################################################################

上面的演示主要是针对Windows Server 2012中的“标准ACL”进行的操作,而在R2当中,“扩展ACL”又分为两类,在Technet中对此介绍为Detailed ACL rules以及Stateful ACL rules;那么它们有什么区别呢?众所周知,在很多会话类的通信中,我们需要对于进出方向都做规定才可以保证链接通畅,举个例子,某台客户端电脑要访问外网的一台Web Server,那么为了安全考虑,管理员首先要permit这台客户端电脑出方向的请求,比如允许它访问外网80端口的tcp协议,那么当Web Server收到访问请求后,需要返回给客户端电脑相应的数据包,此时就需要管理员permit客户端本地端口的入方向请求。OK,入方向请求没问题,关键是本地端口是多少?开启1024~5000端口?别闹。。。。


到这一步就会发现即便是扩展ACL也不太好实现我们的需求,那么怎么办?对于这些特定场景的需求,特别是有状态类会话怎么办?于是乎变有了上面提到的Stateful ACL rules。


顾名思义,Stateful ACL就跟有状态防火墙(Stateful Firewall)是一样的,究其工作原理大致如下:

  1. 数据包到了防火墙这里时,状态检测引擎会查看该连接请求是否为一个初始化连接(即是否携带SYN标记)。

  2. 接下来就去与ACL规则最比对,当然如果不满足的就丢掉了,满足的话就继续。

  3. 防火墙内会有一个状态表,并把这个连接作为一条会话添加进表中进行维护。

  4. 表内条目大致会包括一些源/目的地址、源/目的端口号、连接时间等信息。

  5. 后续数据包再到达时,如果不是初始化连接请求,即没有SYN,则直接去跟状态表中的内容最比对。

  6. 如果后续数据包与状态表中信息匹配,则直接转发,不需要再去与ACL中的规则做比对,如果不属于任何会话则丢弃。

  7. 此外会话还包含一个timeout值,当超过这个保活时间后,会话会被删除。

##########################################################################################

下面来看一下Stateful ACL的特别之处,下图中是一条没有附加“-Stateful”参数的ACL,针对于虚机SQL2008R2的本地1433端口入方向进行允许,另外还加了一条“-Weight”权重值参数,该参数值越大越先被执行,因为Hyper-V内的ACL并没有一条默认的规则,例如deny any any之类的,所以Weight值会被用来与其他ACL配合使用。

wKioL1PoVJ3yqD9sAAH-ey3AadE441.jpg

仅仅配置了这条ACL后,SQL2008R2这台机器的1433端口还是不能被WIN2008R2访问的,如下图所示;除非我再加一条针对WIN2008R2入方向的ACL,但那样就比较繁琐了

wKioL1PoTSGQ99srAAUv_QvyWiM732.jpg

接着再试一下Stateful ACL的效果,同样是刚才的命令,只不过在后面追加了一个“-Stateful”并赋予$true,如下图:

wKiom1PoTAmhgUS0AAKsCFQTaRg927.jpg

由于Stateful ACL会自动打开返回流量的端口,并根据timeout值维护这个会话,因此WIN2008R2可以telnet到SQL2008R2的1433端口了。

wKioL1PoTSKjrCcyAALwqy6WtBc658.jpg

同样对于Web访问类请求也适用,下图中SQL2008R2受到ACL的限制是无法访问WIN2008R2的IIS站点的。

wKioL1PoTSKybPcJAAMo9o2GWJU893.jpg

通过-Stateful参数允许SQL2008R2出方向的TCP80请求,如下图:

wKiom1PoTAnhH4pFAAN-UtuO5Wg852.jpg

ACL生效,拖Stateful的福,可以访问WIN2008R2的默认站点了。

wKioL1PoTSPSVuYvAASn8QSsSkY309.jpg

###########################################################################################

Hyper-V的ACL使虚拟机的网络安全性得到了多一层的保护,在上面的测试中我没有添加“-timeout”参数,有需要的筒子可以自行查看get-help;不过遗憾的是,我没有找到在大范围环境中批量执行ACL的途径,纵然VMM可以集成Cisco Nexus 1000v之类的第三方产品,但是一方面需要投入额外成本,另一方面又增加了维护开销;当然如果纯粹使用PS脚本应该也是可行的,但要是能在今后增加图形化界面的全局配置想必是极好的。



本文转自maomaostyle 51CTO博客,原文链接:http://blog.51cto.com/maomaostyle/1538554,如需转载请自行联系原作者


相关文章
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
1804 7
|
安全 网络安全 数据安全/隐私保护
【专栏】IT 知识百科:访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限
【4月更文挑战第28天】访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限。ACL工作原理包括定义规则、匹配规则和执行操作。标准ACL基于源IP过滤,扩展ACL则提供更多筛选条件。时间及用户基础的ACL提供更细化的控制。优点在于增强安全性和精细管理,但管理复杂性和性能影响也是挑战。未来,ACL将趋向智能化和自动化,与更多安全技术结合,以提升网络安全。**
903 0
|
网络协议 网络虚拟化 数据安全/隐私保护
访问控制列表(ACL)配置
访问控制列表(ACL)配置
309 1
访问控制列表(ACL)配置
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
948 4
|
网络协议 安全 网络性能优化
了解访问控制列表 (ACL):概念、类型与应用
了解访问控制列表 (ACL):概念、类型与应用
1168 2
|
网络虚拟化 数据安全/隐私保护 数据中心
对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令
本文对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令,帮助网络工程师更好地理解和使用这两个品牌的产品。通过详细对比,展示了两者的相似之处和差异,强调了持续学习的重要性。
625 2
|
网络协议 安全 网络安全
Cisco-命名ACL访问控制列表
Cisco-命名ACL访问控制列表
256 4
|
安全 网络协议 网络安全
Cisco-扩展ACL访问控制列表
Cisco-扩展ACL访问控制列表
250 1
|
安全 网络安全 数据安全/隐私保护
Cisco-标准ACL访问控制列表
Cisco-标准ACL访问控制列表
240 1
ly~
|
消息中间件 搜索推荐 大数据
一般情况下在 RocketMQ 中添加 access key 的步骤: 一、确定配置文件位置 RocketMQ 的配置文件通常位于安装目录下的 conf 文件夹中。你需要找到 broker.conf 或相关的配置文件。 二、编辑配置文件 打开配置文件,查找与 ACL(访问控制列表)相关的配置部分。 在配置文件中添加以下内容:
大数据广泛应用于商业、金融、医疗和政府等多个领域。在商业上,它支持精准营销、客户细分及流失预测,并优化供应链管理;金融领域则利用大数据进行风险评估、市场预测及欺诈检测;医疗行业通过大数据预测疾病、提供个性化治疗;政府运用大数据进行城市规划和公共安全管理;工业领域则借助大数据进行设备维护、故障预测及质量控制。
ly~
898 2

热门文章

最新文章