写点什么

LINUX ON AZURE 安全建议

  • 2017-08-31
  • 本文字数:1485 字

    阅读完需:约 5 分钟

(点击放大图像)

1、网络与安全规划

Azure 虚拟网络 (VNet) 是用户自己的网络在云中的表示形式,对用户进行网络逻辑隔离。类似 AWS 的 VPC,用户可以完全控制该网络中的 IP 地址块、DNS 设置、安全策略和路由表。你还可以进一步将 VNet 细分成各个子网,子网之间可以直接通讯。

不论是否设置外网地址,所有的虚机缺省都可以直接访问互联网,可以通过网络安全组 (NSG) 来控制访问。网络安全组您可以认为是一个自定义免费的网络防火墙。网络安全组 (NSG) 包含一系列访问控制列表 (ACL) 规则,这些规则可以允许或拒绝虚拟网络中流向 VM 实例的网络流量。NSG 可以设置在不同维度:VNET,子网,某台虚机,虚机上的某个网卡,是非常强大的流量与访问控制工具。

NSG 是 ACL(访问控制列表)的升级版本,和访问控制列表互斥。只能选择一种方式,在新的 ARM PORTAL 中,Azure 采用 NSG 方式来进行访问控制。防火墙按照优先级,根据源 IP 及端口,目的 IP 及端口,协议类型做出相应的动作访问或者拒绝。

NSG 的详细设置见官方文档链接: https://www.azure.cn/documentation/articles/virtual-networks-nsg

网络与安全建议汇总:

  • 用户网络使用一个 VNET,可以划分应用层,逻辑处理层和数据层,每层采用一个子网,根据需要可以设置 NSG 防火墙;
  • 逻辑处理层和数据库不设置外部 IP,这样不会直接暴露在外面;
  • 可以单独设置一台跳板管理机用来做后端服务器的管理;
  • 可以使用 Azure VPN 或者专线来连接跳板管理机,安全性更高;

2. 软件安装和组件

  • 安装过程中使用复杂密码或者直接使用 SSH 密钥方式;
  • 安装镜像来源有 Azure 官方,镜像市场,自传镜像,尽量使用 Azure 官方镜像;
  • 安装(Ubuntu 为例)完成后查看已经安装的软件列表:dpkg -l
  • 使用 ps -al 查看是否有可疑程序在运行;
  • 查看端口使用情况:netstat -an
  • 根据上面提示停止并删除不需要的第三方程序;

3. 系统安全与服务

  • 密码安全策略,符合 Azure 要求,尽量复杂难猜些;
  • 使用 shadow 来隐藏密文,Azure 官方镜像此处是默认设置
  • 清除或者禁用不必要的系统帐户;
  • 不在 passwd 文件中包含个人信息;
  • 修改 shadow,passwd,gshadow 文件属性为不可改变
  • 不要使用.netrc 文件;
  • 以前 Oracle 安装 RAC 经常需要设置主机间信任关系,在云端请不要使用对等信任文件 /.rhosts;/etc/hosts.equiv;
  • 使用 SSH 来代替 telnetd,ftpd,pop 等通用服务,传统的网络服务程序,如:ftp、pop 和 telnet 口令和数据是明文传输的

4 网络与服务安全

  • 只对外开放所需要的服务,关闭所有不需要的服务;
  • 做好前后端的分离和访问控制的控制;
  • 将所需的不同服务分布在不同的主机上,这样不仅提高系统的性能,同时便于配置和管理,减小系统的安全风险;
  • 定期进行扫描检测,建议可以使用 nmap 软件进行自检。
  • 在负载均衡服务的入站规则中设置 NAT 端口转换,将常用端口映射成高位端口,增加外部扫描难度;
  • 关闭 PING(Azure 已经关闭);
  • 在子网层级设置 NSG 将不需要使用的端口全部禁用;

5 文件加固

  • Linux 随机启动的服务程序都在 /etc/init.d 这个文件夹里,定期检查这些文件时间等属性是否异常,做好备份;
  • 设置 /etc/services 文件权限为 600;

6. 防火墙

启用 Linux 自带的防火墙,

7 防病毒软件

Windows 环境在创建时可以选择安装防病毒软件,Linux 镜像没有自带防病毒软件,需要安装第三方防病毒软件。

8 Fail2ban

fail2ban 可以监视你的系统日志,然后匹配日志的错误信息执行相应的屏蔽动作(建议启用服务器防火墙,可以用来做服务异常监控),如果发现异常,软件会发送 e-mail 通知系统管理员并自动采取动作。

9 日常的备份

最后也是最重要的一步,常在河边走哪能不湿鞋,做好日常重要文件和数据的备份,确保万无一失。

2017-08-31 09:241159

评论

发布
暂无评论
发现更多内容

巧用 TiCDC Syncpiont 构建银行实时交易和准实时计算一体化架构

PingCAP

数据库 TiDB

Required request parameter ‘XXX‘ for method parameter type String is not present

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

事业-最佳实践-编码-注释规范

南山

代码注释 注释 添加注释 注释规范

事业-最佳实践-编码-异常处理规范

南山

异常 异常处理

大模型探索:阿里向量检索服务DashVector

程序员架构进阶

架构 向量检索 大模型 5月月更 通义千问

保姆级指南,从0到1打造你的个人开源项目

快乐非自愿限量之名

开源 项目开发

ACK One x OpenKruiseGame 全球游戏服多地域一致性交付最佳实践

阿里巴巴云原生

阿里云 开源 容器 云原生

怎么给程序员定 KPI ?原则和最佳KPI

爱吃小舅的鱼

软件开发 KPI

嵌入式Linux的学习误区

芯动大师

Linux 嵌入式 处理器

TiDB Vector 太香啦:以图搜图初体验!

PingCAP

数据库 TiDB

为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用

PingCAP

数据库 TiDB

2024年4月文章一览

codists

编程人

Linux设备驱动系列(九)——procfs文件系统

Linux内核拾遗

文件系统 linux开发 Linux内核 设备驱动 procfs

前端面试题 - 如何实现promise?

Geek_fed966

1/28 业务系统的安全设计

hackstoic

系统设计 安全 TGO写作小组28天挑战

2024-05-01:用go语言,给定两个长度为偶数n的整数数组nums1和nums2, 分别移除它们各自的一半元素, 将剩下的元素合并成集合s。 找出集合s中可能包含的最多元素数量。 输入:nums

福大大架构师每日一题

福大大架构师每日一题

30 秒出服装设计稿,森马用函数计算+AIGC 整“新活”!

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

银行核心背后的落地工程体系丨Oracle - TiDB 数据迁移详解

PingCAP

数据库 TiDB

在线音频,没有新故事

自象限

null是原始类型,但为什么typeof null的结果是object?

Geek_fed966

事业-最佳实践-编码-声明规范

南山

事业-最佳实践-编码-CR认知

南山

CR CodeReview

LINUX ON AZURE 安全建议_微软_沙涛_InfoQ精选文章