最近在项目中,接触到一家公司希望对虚机的安全性进行底层保护,考虑到一种基于IPtables+Agent的解决方案,考虑到这一需求实际上是系统需要分布式防火墙来对终端节点进行保护,我对此表示怀疑其实用性,建议采用商业软件NSX-T。
Netfilter/IPtables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
IPtables的基础是规则(rules),其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规 则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则。
而真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。
通过以上的介绍,我们可以看到IPtables/netfilter的特点:Linux适用,基于规则rule,免费。
那么对于用户的企业应用来讲,这个解决方案是好的选择吗?
- 首先是适用范围,仅仅是Lunix。如果要考虑Windows的话,还需要结合Windows的防火墙(netsh命令或图形化),从Agent上面要维护两套规则。而在容器化如火如荼的今天,这样的解决方案是没有未来性的。NSX-T可以兼顾虚机和容器,满足3-5年的基础架构节点保护。
- 性能考虑。在IPtables实现中,依靠Linux本身的进程,消耗的还是系统的cpu资源。另外,在此基础上的Agent,一样是运行在操作系统当中,无疑对性能有所影响,特别是随着企业的运行,会有越来越多规则,操作系统的负担会越来越重。NSX-T依靠硬件资源,如在vSphere环境中使用vDS,完全不需要操作系统介入节点安全,可视为准硬件分布式防火墙,操作系统性能和整体性能都很高。
- IPtables在linux中并非守护进程,Linux的更新一般不会涉及其更新迭代,功能性很难增加。
- IPtables的工作原理决定了其判断条件单一,使用方式原始(规则分别指定了源地址、目的地址、传输协议和服务类型),对于企业来讲方式太匮乏。IPtables/netfilter整个条件判断/执行系统切法基于主机名/用户组等灵活的方式,也不能结合企业AD等第三方账号权限管理平台进行联动。
- 运维能力。IPtables/netfilter基于命令方式,缺乏平台化可视运维工具(当然,第三方开发的另算),不能第一时间发现问题。
- 智能化。IPtables/netfilter的策略梳理一般靠人力,日积月累下来,后来者根本无法完全理解前面的规则,规则系统会越来越庞大,也有很大可能存在漏/多规则的情况。NSX-T整体解决方案可以提供系统流量/规则的梳理,发现流量/规则的对应情况,推荐策略,并能配合管理员自动下发。
整体上,IPtables/netfilter这套免费开源系统,相对问世的时间较长,并不能适用现在的商业应用环境;同时,把系统的分布式防火墙需求放到系统本身完成而不是加载到操作系统。NSX-T及其整体(包括vRNI,Intelligence等组件)平台级解决方案是企业商业应用的好选择。
附:
NSX-T分布式防火墙逻辑架构
NSX-T分布式防火墙规则
流量可视化
策略规划及流量分析
以上。