前段时间完成了自己的毕设项目——安全自动化企业网络架构。总的来说,该项目是一个对自己的挑战,其中涉及到Kubernetes容器云的搭建以及安全加固,DevOps CI/CD部署容器化监控平台,Django自动化运维平台开发,基于Cisco的安全企业网络架构等技术能。
完成该毕设的直接原因是因为自己技术学习比较广泛,但是很多方向深度和实践不够,需要通过一次实操进行整理和巩固。这里做一个简单的分享。
Tips:限于实验设备的性能和可用的镜像,本次项目的内容仅能提供少量的实际参考价值。
系统架构的概述如图1所示。总体来说,整个系统架构可以分为以下两部分:DevOps/NetDevOps和企业安全网络建设。
其中,DevOps/NetDevOps分支包含两个主要部分:DevOps CI/CD套件和NetDevOps容器Web管理平台。DevOps CI/CD套件部分涵盖了自动化Kubernetes私有云环境的特定组件。此外,NetDevOps容器Web管理平台是部署在Kubernetes私有云网络上的容器应用。它集成了各种工具,使传统安全企业网络的运行自动化。
同样的,企业安全网络建设分支同样包括两种类型的网络架构:安全Kubernetes云网络和安全传统网络。其中,安全Kubernetes云网络部分包含针对Kubernetes云环境的安全加固技术。安全的传统网络部分则介绍了使用企业级网络安全设备构建完全安全的传统企业网络的具体解决方案。
该部分分为两个子模块,分别实现了NetDevOps Web管理平台的DevOps CI/CD套件构建和部署。
子模块1:Devops CI/CD套件: CI/CD是DevOps中的一个重要概念和技术。具体来说,CI是在发生源代码更改后自动检测、提取、构建和(在大多数情况下)单元测试的过程。它的目标是快速确保开发人员新提交的更改适合在代码库中进一步使用。然而,CD指的是整个过程的管道,它自动监视源代码更改,并通过构建、测试、打包和相关操作来运行它们,以生成可部署的版本。这种管道技术的最终目标是软件开发过程中的自动化、效率、可靠性、可重复性和质量保证。
在该项目中,用于CI/CD的工具是Gitlab, Jenkins和Harbor。其中,Gitlab是一个代码存储仓库,专门存储自动化运营管理平台的相关开发代码和容器配置文件(DockerFile)。当配置文件提交到Gitlab时,Jenkins下载提交的文件,并从DockerFile生成容器的镜像发送到Harbor存储库。Jenkins然后使用从Gitlab获得的部署文件,将NetDevOps Web自动化管理平台作为容器部署到Kubernetes云平台上。最后,云平台从Harbor存储库下载镜像,然后通过镜像运行容器。
子模块2:Netdevops Web管理平台: 该解决方案还包括一个网络设备管理平台。该平台使用Bootstrap作为前端框架,Django作为后端框架开发。Django是一个使用Python语言进行后端开发的框架。它的功能非常全面,包括数据库和后台管理功能。这两个特性在其他Python Web后端框架中不可用。具体而言,该平台可以实现网络设备的可达性检测、管理和配置等功能。此外,必须注意的是,自动化管理Web平台最终作为容器部署在企业的私有云环境中。最后,通过与开源软件的结合,该Web平台可以实现对部署的企业网络设备的索引监控和日志分析。
总的来说,构建上述两个模块的主要目的是自动化解决方案中内置的后续安全企业网络的操作。
第二部分是企业安全网络建设。该部分分为安全Kubernetes云网络建设和传统安全网络环境两个子模块。
子模块1:构建安全Kubernetes云网络 今天的云平台通常在容器中部署应用程序。根据Google对容器的定义,“容器是应用程序代码的轻量级包,它还包含依赖项,例如编程语言Runtime的特定版本和运行软件服务所需的库。换句话说,容器是一个软件包,它包含在任何环境中运行所需的所有元素。Kubernetes是一个开源的、新的基于容器的分布式系统平台。它可以为集装箱化应用提供部署和操作、资源调度、服务发现和动态伸缩等一系列完整的功能,提高大规模集装箱集群管理的便捷性。
在本项目中,企业在其总部部署了私有云平台,主要用于发布一些容器应用,为员工提供资源库,如上文所述的Web自动化管理平台。此外,部署的Kubernetes集群由一个Master节点和三个Worker节点组成。其中一个工作节点是不同的,因为它可以在沙箱中运行容器。Kubernetes集群拓扑如图2所示。
一方面,Master节点管理整个集群,并且没有容器应用程序在它自身上运行。另一方面,Worker节点由主节点管理,主节点将根据主节点的时间表创建、水平扩展、删除和执行容器应用程序的其他基本操作。此外,针对云平台的安全,本方案主要采用Kubernetes云原生安全加固方法,主要包括:
- 使用Kube-bench工具扫描云平台漏洞。
- 部署Nginx的HTTPS证书。
- 对Kubernetes集群中的用户进行认证、授权和访问控制。
- 在沙箱中部署容器。
- 使用Trivy工具检查容器的图像是否存在漏洞。
此外,对于一些需要从集群备份的数据,本设计将利用Kubernetes专用的卷挂载技术将容器数据备份到网络文件系统(NFS)服务器。使用这种技术的优点是,即使容器应用程序由于某种故障而被删除,它的重要数据仍然可以保留。因此,随后重新创建的容器仍然可以加载和利用以前的数据。
最后,为了方便私有云平台的管理,本解决方案中还部署了Kuboard Web UI和相关的开源插件(Prometheus-Operation和Grafana Loki),以可视化监控健康云平台的各种指标,并聚合日志信息。
子模块2:安全的传统网络建设 在该解决方案中,安全企业网络部署中使用的所有网络安全设备都来自思科。主要有三个原因:第一个原因是思科的安全产品系列齐全,包括各种类型的防火墙、身份认证服务器、流量分析等设备。第二个原因是在安全设备方面,通常需要同一厂家的设备更加紧密的配合,才能达到更好的防护效果。第三,由于思科设备在世界上占有很大的份额,它得到了各种开源操作工具的很好支持。此外,使用的路由器和交换机也是思科为数据通信设备兼容的安全设备。最后,其他终端设备主要使用Windows设备,如PC和服务器。
具体来说,思科在这个设计架构中有四种不同的防火墙功能。他们是ASA,Firepower,ESA和WSA。认证服务器使用Cisco ISE设备。对于网络流量监控设备,使用了思科公司的stealthwatch相关设备。除了安全设备外,还分别使用Cisco L3 Switch和Router进行路由和交换。这些企业级网络安全设备涉及到流量安全策略、防火墙高可用性、VPN、入侵防御检测、流量分析、邮件和Web安全、身份认证、标签分析联动、交换机和路由器安全等安全防护相关技术。
接下来,根据具体的安全网络拓扑结构进一步说明每个关键网络或安全设备的作用和功能。图3显示了整个项目设计的网络拓扑结构。网络架构分为总部(Headquarters)、ISP和远程站点(Remote Site)。
总部网络架构与设备分析: 总部的网络架构是这个解决方案的重要组成部分。整个网络被Firepower防火墙(图3中的FTD)分为三个部分:连接Gateway-switch的Outside zone、连接Core-switch的Inside zone和连接DMZ- access -switch的DMZ zone。Firepowe系列防火墙是思科公司推出的下一代防火墙。在满足标准防火墙基本的流量访问控制的同时,集成IPS module与流量应用识别、反病毒、内容检测等功能,为企业网络提供可靠的安全保障。另外,为了保证网络的可靠性,这里设置了两台FTD设备。当一台设备故障时,另一台设备可以接管它的工作,以保证网络流量通信。
在Outside区域中,最关键的设备是ASA-SVN。ASA的全称是Cisco Adaptive Security Appliance,是Cisco公司推出的一款经典的状态过滤防火墙。基于会话信息和安全策略对流量进行控制。支持多种类型的VPN,为企业提供特定规格的接入能力。该设备作为总部的网关和VPN隧道的端点。确保总部用户可以访问外部网络,Remote-site和Home-Users可以通过VPN访问总部内部资源。
在Inside区域中,主要对象是总部中的用户。在Inside区域中有三种类型的用户:It-admin、Employee和Guest。这些用户通过访问不同的接入交换机进入不同的虚拟局域网。后续所有流量都会汇聚到Core- switch上,经过Core FTD设备进行安全检测。
在DMZ区域中,有各种服务器和安全设备。第一个设备是MGMT-PC。管理员可以通过MGMT-PC直接管理DMZ内的其他设备。
第二个设备是Linux服务器。部署了两个已经提到的应用程序CI/CD套件(Gitlab-Jenkins-Harbor)和web Kubernetes集群管理平台(Kuboard)。此外,在该服务器上还部署了两个开源网络监控软件单元。它们是用于设备指标监控的telegrafa-influxdb-grafana套件。以及用于设备日志分析的FileBeat-ElasticSearch-Kibana套件。
第三个设备是Windows Server。在Windows Server上,全网部署了CA证书服务器、AD域服务器、DNS服务器、NTP服务器、Mail服务器、DHCP服务器、Web服务器、FTP服务器等各种企业级服务器。保持这些服务器正常运行可以为总部的用户提供必要的资源和服务。
第四个设备是ISE,它代表身份服务引擎。它是认证和授权服务器,也是安全策略管理平台。它的主要功能是为最终用户和设备提供安全的网络访问。此外,在项目的设计中,ISE支持为连接到网络的各种类型的用户创建和执行安全和访问策略。最后,ISE作为全网的安全中心,还可以使用标签共享技术,连接其他安全设备,共享用户信息,提高安全防护的有效性。
第五种设备是FMC,即防火墙管理中心(Firewall Management Center),用于在多个平台上管理思科安全产品。在本项目的网络拓扑中,FMC主要用于两个核心Firepower设备的集中管理。
第六和第七个设备分别是ESA(电子邮件安全设备)和WSA (Web安全设备)。这两种设备分别是思科的邮件防火墙和Web防火墙。同样,这两种防火墙的核心技术都是代理。需要拦截邮件和Web流量并将其发送到防火墙。防火墙会根据配置的安全策略对流量进行检测。只有检测到的流量才会被防火墙发送到实际目的地址,而不是发送方。
最后两个设备,Stealthwatch控制台(SMC)和Stealthwatch收集器(SFC),它们一起工作,分析可疑的流量。SFC是一个流量收集器,可以收集特定格式的交通信息。SFC会将收集到的流量聚合后,送交SMC作进一步分析及处理。然后,SMC可以通过机器学习算法对加密的交通信息进行建模和分析。一旦流量异常值分析,SMC将通知防火墙阻止流量。
ISP网络架构与设备分析 ISP网络通过思科路由器连接总部和远端站点。此外,ISP网络中还部署了Windows服务器,并开启了AD域、DNS和Mail服务。该服务器被设计用于与总部的内部邮件交换。