Azure云Linux安全建议

Azure云Linux安全建议

1、网络与安全规划

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

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

Azure云Linux安全建议

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 通知系统管理员并自动采取动作。

相关推荐