LINUX ON AZURE 安全建议(上)

来源:互联网 发布:易玩网络 编辑:程序博客网 时间:2024/04/27 22:47

本文为个人原创,可以自由转载,转载请注明出处,多谢!

本文地址:http://www.cnblogs.com/taosha/p/6399554.html

 

1.1 概述介绍

Linux系统是全世界最流行的服务器操作系统之一,采用开源方式,灵活方便,版本更新快,但是因为分支较多,免费的社区版本非商业运作,缺少售后服务和安全保障,安全漏洞较多,这是困扰很多Linux用户的一大难题。

微软云计算平台----Windows Azure(简称Azure)运行了大量的Linux虚机,如何保障这些云端服务器的安全性是一个比较热门的技术话题,本文主要针对Linux on Azure 安全加固和最佳实践方面给出一些建议。

1.2 适用范围

本文主要针对Linux on Azure进行讨论,Linux自身安全加固手段不全部包含在本文中,Linux自身加固大部分在Linux on Azure上均为通用,本文主要是结合Azure平台的设计特性来讨论安全加固问题。

1.3 免责声明

本文为安全加固建议书,供客户参考,不对客户真实环境做出任何安全承诺。

 

2 重要的第一步网络安全规划

网络安全规划的工作是所有安全加固的基础,仔细规划Linux虚机所处网络以及未来需要和这台虚机进行通讯的内部、外部以及来自Internet的机器,有助于后期设置相关的安全策略。

2.1 VNet概念

Azure 虚拟网络 (VNet) 是用户自己的网络在云中的表示形式。它是对专用于用户订阅的 Azure 云进行的逻辑隔离。用户可以完全控制该网络中的 IP 地址块、DNS 设置、安全策略和路由表。你还可以进一步将 VNet 细分成各个子网,设置不同的NSG(网络安全组,会在后面专题讨论)。

2.2 VNet优点和特点

隔离。VNet 彼此之间完全隔离。这使你可以为使用相同 CIDR 地址块的开发、测试和生产创建单独的网络。

访问公共 Internet。默认情况下,VNet 中的所有 IaaS VM 和 PaaS 角色实例都可以访问公共 Internet。可以通过使用网络安全组 (NSG) 来控制访问。

访问 VNet 中的 VM。PaaS 角色实例和 IaaS VM 可以在同一虚拟网络中启动,并可使用专用 IP 地址互相连接(即使它们位于不同子网),而无需配置网关或使用公共 IP 地址。

名称解析。Azure 为部署在 VNet 中的 IaaS VM 和 PaaS 角色实例提供内部名称解析。你还可以部署自己的 DNS 服务器,并将 VNet 配置为使用这些服务器。

安全性。进出虚拟机的流量以及 VNet 中的 PaaS 角色实例都可使用网络安全组进行控制。

连接。可以使用网关或 VNet 对等互连使 VNet 相互连接。VNet 可以通过站点到站点 VPN 网络或 Azure ExpressRoute 连接到本地数据中心。

2.3 子网和NSG规划

在以下情况下,你应考虑在 VNet 中创建多个子网:

用于子网中的所有 NIC 的专用 IP地址不足。如果你的子网地址空间未包含子网中的 NIC 数所对应的足够 IP 地址,则需要创建多个子网。请记住,Azure 保留每个子网中的 5 个专用 IP 地址,这些 IP 地址不能使用:地址空间的第一个和最后一个地址(用于子网地址和多播)和 3 个要内部使用的地址(用于 DHCP 和 DNS 目的)。

安全性。你可以使用子网将 VM 组彼此分离以用于具有多层结构的工作负荷,并对这些子网应用不同的网络安全组 (NSG)。

混合连接。你可以使用 VPN 网关和到 ExpressRoute 线路来将 VNet 彼此连接,并连接到本地数据中心。VPN 网关和 ExpressRoute 线路需要创建其自己的子网。

虚拟设备。可以在 Azure VNet 中使用虚拟设备,如防火墙、WAN 加速器或 VPN 网关。这样做时,需要路由流量到这些设备,并将其隔离在它们自己的子网中。

2.5 规划考虑的问题(建议)

ü  你将使用哪些 Azure 位置来托管 VNet?

ü  你是否需要在这些 Azure 位置之间提供通信?

ü  你是否需要在 Azure VNet 和在本地数据中心之间提供通信?

ü  你需要将多少基础结构即服务 (IaaS) VM、云服务角色和 Web 应用用于你的解决方案?

ü  是否需要基于 VM 组(即前端 Web 服务器和后端数据库服务器)隔离流量?

ü  是否需要使用虚拟设备来控制数据流?

ü  用户对于不同 Azure 资源是否需要不同权限控制?

2.4 子网和 NSG设计模式

下表显示了使用子网的一些常用设计模式。

方案

优点

缺点

每个应用每个应用程序层单个子网、多个 NSG

只需要管理一个子网。

要隔离每个应用程序,需要多个 NSG

每个应用一个子网,每个应用程序层多个 NSG

需要管理更少 NSG

需要管理多个子网。

每个应用程序层一个子网,每个应用多个 NSG

在子网数和 NSG数之间取得平衡。

最多 100 NSG。如果每个应用需要 2个不同的 NSG,则为 50个应用。

每个应用每个应用程序层一个子网,每个子网多个 NSG

可能 NSG数更少。

需要管理多个子网。

 

2.5 规划原则

ü  根据应用设计情况,尽可能减少VNet和子网数量;

ü  每个应用程序彼此完全隔离;

ü  推荐每个应用程序层一个子网,每个应用多个 NSG的方式。

2.6 网络规划示范

 

如上图所示,独立完整的应用(前后端)部署在一个VNet中,将应用层,数据层的部署在不同的子网,设置不同的NSG或者ACL(访问控制)。

3 Linux软件安装

3.1 安装步骤

 

 

图示

 

通过Portal创建虚拟机

 

 

 

 

选择密钥或者密码方式,密钥方式可以用Putty去生成密钥对,如果用密码请使用复杂密码且不易猜到或易被暴力破解的密码。

SSH key可以增加安全性。

 

 

 

 

 

设置NSG,类似于外部防火墙,也可以后期根据情况再调整,如前文所述,NSG设置与网络规划关系比较大

 

 最后查看一下Summary,没有问题点击OK创建虚机

 

 

3.2 查看已安装软件和进程等

查看已经安装的软件列表:

dpkg -l  

查看当前进程:

ps -al

查看端口使用情况:

netstat -an

提示:停止并删除不需要的软件

 

 

未完待续

 

0 0