【牧云】牧云(CloudWalker)主机安全管理平台探针代理部署
经常有客户有多个区域的网络不通而客户又不想维护两套管理端的场景,探针通过代理部署的需求强烈。
探针与管理端通信主要有两个TCP端口:单机版8000(集群版80)和50051,其中单机版8000(集群版80)端口为http协议,50051端口为grpc协议
目前产品支持两种代理方式:Nginx反向代理、socks5正向代理
Nginx反向代理
使用nginx反向代理将管理端的单机版8000(集群版80)和50051端口代理到目标网络内,探针通过直连代理设备的单机版8000(集群版80)和50051端口与管理端通信。
优点
- linux、windows系统都可以很好的支持
- 反向代理只代理业务本身,不会造成两个隔离网络的代理访问问题,无需添加额外的访问控制策略
- 代理无需配置账号密码
缺点
- 探针需要开通到代理节点的单机版8000(集群版80)和50051两个端口
配置方法
前置条件
- 需要安装docker环境。(下方下载)
- 需要
nginx:latest
镜像,可以下载nginx镜像离线包,压缩命名nginx.tar.gz
,放到脚本执行目录,脚本会自动loadnginx:latest
镜像,如果可以联网会自动pullnginx:latest
镜像。
使用方法
- 代理脚本和nginx镜像离线包(下方下载)
- 解压下载的文件
mkdir /data
tar xf cw_proxy.tar.gz -C /data
3.执行启动脚本
cd /data/cw_proxy/
# 单机版
./run.sh --cw_server='172.20.1.1' --cw_proxy='172.20.2'
# 集群版,多个master节点用分号隔开
./run.sh --cw_server='172.20.1.1;172.20.1.2;172.20.1.3' --cw_proxy='172.20.2.1' --cluster
4.使用帮助
用法:./run.sh [Options]
Options:
--cw_server 管理端IP (必须)
--cw_proxy 代理服务器IP (必须)
--cluster 集群版 (可选 default单机版)
--cw_upstream_asset_port upstream转发到管理端探针下载端口(可选 default单机版8000,集群版80)
--cw_upstream_grpc_port upstream转发到管理端探针通信端口(可选 default50051)
--cw_proxy_asset_port 代理服务器探针下载端口(可选 default单机版8000,集群版80)
--cw_proxy_grpc_port 代理服务器探针通信端口(可选 default50051)
example:
单机版:
默认端口
./run.sh --cw_server='172.20.1.1' --cw_proxy='172.20.2.1'
自定义端口
只修改upstream代理端口,适用于DNAT转发的端口和管理端不一致场景
./run.sh --cw_server='172.20.1.1' --cw_proxy='172.20.2.1' --cw_upstream_asset_port='8001' --cw_upstream_grpc_port='50052'
同时修改upstream代理端口和代理服务器监听的端口,非NAT模式代理服务器监听端口和管理端端口保持一致
./run.sh --cw_server='172.20.1.1' --cw_proxy='172.20.2.1' --cw_upstream_asset_port='8001' --cw_upstream_grpc_port='50052' --cw_proxy_asset_port='8001' --cw_proxy_grpc_port='50052'
集群版:
默认端口
./run.sh --cw_server='172.20.1.1;172.20.1.2;172.20.1.3' --cw_proxy='172.20.2.1' --cluster
自定义端口
只修改upstream代理端口,适用于DNAT转发的端口和管理端不一致场景
./run.sh --cw_server='172.20.1.1;172.20.1.2;172.20.1.3' --cw_proxy='172.20.2.1' --cw_upstream_asset_port='8001' --cluster
同时修改upstream代理端口和代理服务器监听的端口,非NAT代理服务器监听端口和管理端端口保持一致
./run.sh --cw_server='172.20.1.1;172.20.1.2;172.20.1.3' --cw_proxy='172.20.2.1' --cw_upstream_asset_port='8001' --cw_upstream_grpc_port='50052' --cw_proxy_asset_port='8001' --cw_proxy_grpc_port='50052' --cluster
- 执行
docker ps -a
或docker logs -f cw_proxy
查看代理运行情况6 - 在管理界面“资产清点”-“主机”-右上角点击“安装探针”,在“高级模式”标签中选中“反向代理”,将“反向代理服务器”设置为上述ProxyIP地址,生成安装命令安装即可。
socks5正向代理
使用socks5代理将探针对管理端的请求转发到管理端去,代理节点可以设置监听任意端口。
优点
- 代理节点可设置任意一个端口
缺点
- windows设备不支持
- 需要配置账号密码或额外设置防火墙规则以确保代理不会被滥用
配置方法
使用socks5代理来安装探针
系统要求: centos 7.5以上 或ubuntu18.04以上
安装docker及docker-compsoe
上传压缩包到代理设备上
加载镜像docker load < socks5.tgz(下方下载)
创建compose文件
version: "2.3"
services:
cw_proxy:
image: 'xkuma/socks5:latest'
restart: always
container_name: cw_proxy
environment:
- PROXY_USER=user
- PROXY_PASSWORD=password
- PROXY_SERVER=0.0.0.0:1080
ports: - "1080:1080"
启动docker-compose up -d
在管理界面“资产清点”-“主机” -“安装探针”界面,选择“高级模式”,输入代理地址和账号密码,生成安装命令安装即可。