Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

Recommended Posts

防火墙作为一种网络安全产品,通过控制进出网络的流量,保护网络的安全。防火墙的基本原理是通过分析数据包,根据已有的策略规则,允许或阻断数据流量。除此之外,防火墙也具有连通网络的功能,实现安全可信区域(内部网络)和不信任区域(外部网络)之间的桥接。

应用负载网关是山石网科面向电信运营商、广电市场、院校和大中型企业开发的负载均衡产品,能够使负载分担、安全与网络深度融合。用户可以将其部署在多ISP链路的出口,通过对链路状态的检测,采用对应的调度算法将数据合理、动态的分发到不同链路上,以提高链路利用率。

StoneOS 应用负载网关系统架构

组成StoneOS应用负载网关系统架构的基本元素包括:

  • 安全域:域是一个逻辑实体,将网络划分为不同部分,应用了安全策略的域称为“安全域”。例如,trust安全域通常为内网等可信任网络,untrust安全域通常为互联网等存在安全威胁的不可信任网络。
  • 接口:接口是流量进出安全域的通道,接口必须绑定到某个安全域才能工作。默认情况下,接口都不能互相访问,只有通过策略规则,才能允许流量在接口之间传输。
  • 虚拟交换机(VSwitch):具有交换机功能。VSwitch工作在二层,将二层安全域绑定到VSwitch上后,绑定到安全域的接口也被绑定到该VSwitch上。一个VSwitch就是一个二层转发域,每个VSwitch都有自己独立的MAC地址表,因此设备的二层转发在VSwitch中实现。并且,流量可以通过VSwitch接口,实现二层与三层之间的转发。
  • 虚拟路由器(VRouter):简称为VR。VRouter具有路由器功能,不同VR拥有各自独立的路由表。系统中有一个默认VR,名为trust-vr,默认情况下,所有三层安全域都将会自动绑定到trust-vr上。系统支持多VR功能且不同硬件平台支持的最大VR数不同。多VR将设备划分成多个虚拟路由器,每个虚拟路由器使用和维护各自完全独立的路由表,此时一台设备可以充当多台路由器使用。多VR使设备能够实现不同路由域的地址隔离与不同VR间的地址重叠,同时能够在一定程度上避免路由泄露,增加网络的路由安全。
  • 策略:策略是设备的基本功能,控制安全域间/不同地址段间的流量转发。默认情况下,设备会拒绝设备上所有安全域/接口/地址段之间的信息传输。策略规则(Policy Rule)决定从安全域到另一个安全域,或从一个地址段到另一个地址段的哪些流量该被允许,哪些流量该被拒绝。

StoneOS系统的架构中,安全域、接口、虚拟路由器和虚拟交换机之间具有从属关系,也称为“绑定关系”。

http://docs.hillstonenet.com/cn/Content/Resources/Images/deploy_fw_architecture.png

各个元素之间的关系为:接口绑定到安全域,安全域绑定到VSwitch或VRouter,进而,接口也就绑定到了某个VSwitch或VRouter。一个接口只能绑定到一个安全域上,一个安全域可以绑定多个接口。二层安全域只能绑定到VSwitch上,三层安全域只能绑定到VRouter上。

安全策略规则

默认情况下,所有的接口之间的流量都是拒绝的。不同的安全域之间、相同的安全域之内的接口流量均不能互访。要实现接口的互访,只有通过创建策略规则,才能将流量放行。 如果既有从源到目的的访问,又有反方向的主动访问,那么就要创建两条策略规则,允许双方向的流量通过;如果只有单方向的主动访问,而反方向只回包即可,那么只需要创建源到目的的一条单方向的策略。

根据接口所属的安全域、VSwtich或VRouter的不同,要创建不同的策略才能允许接口互访,具体的规则如下:

  • 属于同一个安全域的两个接口实现互访:
    需要创建一条源和目的均为该安全域的策略。
    例如,要实现上图中的eth0/0与eth0/1的互访,需要创建从L3-zone1到L3-zone1的允许流量通过的策略;或者,要实现eth0/3与eth0/4的互访,要创建源和目的均为L2-zone2的策略。
  • 两个二层接口所在的安全域属于同一VSwitch,实现接口互访:
    需要创建两条策略,第一条策略允许从一个安全域到另一个安全域流量放行,第二条策略允许反方向的流量通过。
    例如,要实现上图中的eth0/2与eth0/3的互访,需要创建从L2-zone1到L2-zone2的策略和L2-zone2到L2-zone1这两条策略。
  • 两个二层接口所在的安全域属于不同的VSwtich的,实现接口互访:
    每个VSwtich都具有唯一的一个VSwtich接口(VSwitchIF),该VSwtichIF与某个三层安全域绑定。要实现互访,需要创建放行策略,源是一个VswichIF所属的三层安全域,目的是另一个VSwtichIF所属的三层安全域。同时,还需要创建反方向的策略。
  • 两个三层接口所在的安全域属于同一VRouter,实现接口互访:
    需要创建策略允许从一个安全域到另一个安全域的流量放行。例如,要实现eth0/0和eth0/5的互访,要创建从L3-zone1到L3-zone2的允许流量通过的策略,然后再创建反方向的策略。
  • 两个三层接口所在的安全域从属于不同的VRouter的,实现接口互访:
    若要实现接口互访,需要创建策略规则,允许从一个VRouter到另一个VRouter之间的流量放行。
  • 同一VRouter下的二层接口和三层接口,实现互访:
    创建允许流量通过的策略,策略的源是二层接口的VSwtichIF所绑定的三层安全域,策略的目的是三层接口所属的三层安全域。然后,再创建反向策略。
    例如,要实现eth0/0与eth0/2的互访,需要创建从L3-zone1到L2-zone1的策略,以及反向策略。

数据包处理流程

二层转发域中的转发规则

在一个VSwitch,即一个二层转发域中,应用负载网关StoneOS通过源地址学习建立MAC地址转发表。每个VSwitch都有自己的MAC地址转发表。StoneOS根据数据包的类型(IP数据包、ARP包和非IP且非ARP包),分别进行不同的处理。

对于IP数据包,StoneOS遵循以下转发规则:

  1. 收到数据包。
  2. 学习源地址,更新MAC地址转发表。
  3. 如果目的MAC地址是单播地址,则根据目的MAC地址查找出接口。这时又有以下两种情况:
    • 如果目的MAC地址为VSwitch接口的MAC地址,并且VSwitch接口有IP地址,则按照路由转发规则进行转发;若VSwitch接口没有IP地址,则丢弃。
    • 根据目的MAC地址找到出接口。如果找到的出接口是数据包的源接口,则丢弃该数据报,否则从出接口继续转发数据包。
    • 如果在MAC地址表中没有找到出接口(未知单播),直接跳到第6步。
  4. 根据入接口和出接口确定源域和目的安全域。
  5. 查找策略规则。如果策略规则允许则转发数据包;如果策略规则不允许,则丢弃数据包。
  6. 如果在MAC地址转发表中没有找到出接口(未知单播),StoneOS则尝试将数据包发给VSwitch中的所有其它二层接口,此时的操作流程为:把其它的每一个二层接口做为出接口,二层接口所在的二层安全域作为目的域,查询策略规则,如果策略允许,则在该二层接口转发数据包,如果策略不允许,则丢弃数据包。概括地说,对未知单播的转发即为策略限制下的广播。对于广播和多播IP包的处理类似于对未知单播的处理,不同的是广播和多播IP包会被同时拷贝一份进行三层处理。

对于ARP包,广播包和未知单播包转发到VSwitch中的其它所有接口,同时,复制一份由ARP模块进行处理。

三层转发域的转发规则

http://docs.hillstonenet.com/cn/Content/Resources/Images/PacketFlow_L3_new.png
  1. 识别数据包的逻辑入接口,可能是一般无标签接口,也可能是子接口。从而确定数据包的源安全域。
  2. StoneOS对数据包进行合法性检查。如果源安全域配置了攻击防护功能,系统会在这一步同时进行攻击防护功能检查。
  3. 会话查询。如果该数据包属于某个已建立会话,则跳过4到10,直接进行第11步。
  4. 目的NAT(DNAT)操作。如果能够查找到相匹配的DNAT规则,则为包做DNAT标记。因为路由查询需要DNAT转换的IP地址,所以先进行DNAT操作。
    *说明:如果系统配置静态一对一BNAT规则,那么先查找匹配的BNAT规则。数据包匹配了BNAT规则之后,按照BNAT的设定进行处理,不再查找普通的DNAT规则。
  5. 路由查询。系统的路由查询顺序从前到后依次为:策略路由(PBR)> 源接口路由(SIBR)> 源路由(SBR)> 目的路由(DBR)> ISP路由。此时,系统得到了数据包的逻辑出接口和目的安全域。
  6. 源NAT(SNAT)操作。如果能够查找到相匹配的SNAT规则,则为包做SNAT标记。
    *说明:如果系统配置静态一对一BNAT规则,那么先查找匹配的BNAT规则。数据包匹配了BNAT规则之后,按照BNAT的设定进行处理,不再查找普通的DNAT规则。
  7. 下一跳VR查询。如果下一跳为VR,则继续查看指定的下一跳VR是否超出最大VR数限制(当前版本系统仅允许数据包最多通过3个VR),如果超过则丢弃数据包,如果未超过,返回4;如果下一跳不是VR,则继续进行下一步策略查询。
  8. 策略查询。系统根据数据包的源安全域、目的安全域、源IP地址和端口号、目的IP地址和端口号以及协议,查找策略规则。如果找不到匹配的策略规则,则丢弃数据包;如果找到匹配的策略规则,则根据规则指定的行为进行处理,分别是:
    • 允许(Permit):允许数据包通过。
    • 拒绝(Deny):拒绝数据包通过。
    • 隧道(Tunnel):将数据包转发到指定的隧道。
    • 是否来自隧道(Fromtunnel):检查数据包是否来自指定的隧道,如果是,则允许通过,如果不是,则丢弃。
    • Web认证(WebAuth):对符合条件的流量进行Web认证。
  1. 第一次应用类型识别。系统根据策略规则中配置的端口号和服务,尝试识别应用类型。
  2. 会话建立。
  3. 如果需要,进行第二次应用类型识别。根据数据包的内容和流量行为再次对应用类型进行精确识别。
  4. 应用层行为(ALG)控制。为特定的复杂协议实施自适应处理。
  5. 根据会话中记录的信息,例如NAT标记等,执行相应的处理操作。
  6. 将数据包转发到出接口。
Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...