移动云云主机中安全组“有状态”和“无状态”的区别
安全组作为虚拟防火墙,提供云内单台或者多台实例的网络访问控制,实现网络安全隔离,安全组可以分为有状态安全组和无状态安全组。
- 有状态安全组会追踪连接的状态,动态按需增加该连接特定的反向对等安全规则,在保证该连接双向流量正常通过的情况下,提供更好的安全防护。(有状态安全组下,ICMP协议较为特殊,在创建单向ICMP的放通规则后,无流量触发也会自动创建反向放通规则。在删除单向ICMP规则后,反向规则也会一并删除。)比如:
定义一条有状态安全组规则:
允许 TCP 任何端口 访问 目的地址183.209.49.6/32 端口80
该安全组加载到特定实例,如地址为202.112.52.10的VM。如果从源地址202.112.52.10 使用源端口50518 访问目的地址183.209.49.6的80端口,此时有状态安全组会根据连接的状态,动态增加一条反向的安全规则来保证回程流量的通过,此时的规则为:
允许 TCP 源地址202.112.52.10/32 任何端口 访问 目的地址183.209.49.6/32 目的端口80
允许 TCP源地址183.209.49.6/32 源端口80 访问 目的地址202.112.52.10/32 目的端口50518 (动态规则)
新增的动态规则仅放通了到发起连接端(本机)的源端口(本例中50518),既保证了流量的正常通过,也限制了其他未授权放通端口的访问,增加了安全性。
对于TCP,有状态安全组也会检查连接建立时TCP标记位(SYN, FIN等),仅放通有效的TCP连接。
新增动态规则在两端无流量交互一段时候后自动老化。
- 无状态安全组不会追踪连接的状态,对于配置的规则,会自动翻转规则中的源地址、源端口,目的地址和目的端口生产反向安全规则,来提供安全防护。无状态安全组由于不追踪连接的状态,可以提供更好的新建性能。比如:
定义一条无状态安全组规则:
允许 TCP 任何端口 访问 目的地址183.209.49.6/32 端口80
此时,VM端口的安全规则为:
允许 TCP 源地址202.112.52.10/32 任何端口 访问 目的地址183.209.49.6/32 目的端口80
允许TCP 源地址183.209.49.6/32源端口80 访问 目的地址202.112.52.10/32 任何端口
无状态安全组不使用动态规则,而是系统自动增加反向规则。由于无状态安全组不会追踪特定连接,反向规则的安全性需要慎重评估,必要时需要增加额外的规则,以免产生安全隐患。如上例所示,该实例配置的规则实际放开了对端设备对本机任意端口的访问,极端情况下可能会存在被攻击的风险。
本文由 vps主机对比评测网 刊发,转载请注明出处