×

德德 发表于 2024-8-27 12:34
  
一起来学习 一起来学习
小小胖 发表于 2024-8-27 12:34
  
一起来学习 一起来学习
taoyanbin 发表于 2024-8-27 12:34
  
一起来学习 一起来学习
焱燚 发表于 2024-8-27 12:39
  
一起来学习 一起来学习
蔺嘉宾 发表于 2024-8-27 12:39
  
一起来学习 一起来学习
小霞米 发表于 2024-8-27 12:44
  
一起来学习 一起来学习
taoyb 发表于 2024-8-27 12:44
  
一起来学习 一起来学习
粥粥学长 发表于 2024-9-11 09:49
  
感谢分享,学习一下~
科思哲 发表于 2025-5-20 13:53
  
感谢分享,有助于工资和学习
【aES容器安全】K8S部署aES组件POC测试
  

新手小明 83834人觉得有帮助

{{ttag.title}}
本帖最后由 新手小明 于 2023-11-10 16:30 编辑

【容器安全】K8S部署aES组件POC测试
测试环境:
ubuntu-20.04.6-live-server-amd64 *2
aES6.0.2
k8s -v1.23.1

K8S部署参考链接:https://blog.csdn.net/qq_40279964/article/details/125429233

1MGR环境初始化
1)安装aES6.0.2
2)配置网络,ip192.168.0.150
3)MGR授权容器高级版;
Ps:由于虚拟化资源比较紧张,安装使用的是iso离线部署,分配了8c8g100g的资源;
安装完成后,需要手动重启web服务/sf/edr/manage/bin/eps_services restart

2、操作系统初始化
两台ubuntu,搭建k8s最低配置需要4c8g,资源需要注意,资源不够的话会导致POD节点因内存问题运行异常;
1)配置网络并修改hostname
因为是搭建K8S集群,所以两台主机的hostname必须不同;
master主节点ip192.168.0.152
Node工作节点ip192.168.0.151
2)操作系统配置hostsk8s内部网络需要依靠host寻址,所以需要进行修改(2台都要改)

3K8S环境部署(两台都要操作)
1)首先需要搭建底层容器,这里使用docker
# 安装docker所需的工具(安装最新版即可)
apt-get update
apt-get install docker.io -y
# 设置开机启动并启动docker  
sudo systemctl start docker
sudo systemctl enable docker
2)设置K8S运行环境
# 禁用交换分区
swapoff -a
# 永久禁用,打开/etc/fstab注释掉swap那一行。  
sudo vim /etc/fstab
# 修改内核参数(首先确认你的系统已经加载了 br_netfilter 模块,默认是没有该模块的,需要你先安装 bridge-utils)
apt-get install -y bridge-utils
modprobe br_netfilter
lsmod | grep br_netfilter
# 如果报错找不到包,需要先更新 apt-get update -y
3)安装加速节点(可能有些环境拉取镜像太慢,可以根据情况省略)
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://3kcpregv.mirror.aliyuncs.com"]
}
EOF
systemctl restart docker

4、安装配置K8S
1)安装 kubelet kubeadm kubectlmasternode都执行)
# 安装基础环境
apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
# 执行配置k8s阿里云源  
vim /etc/apt/sources.list.d/kubernetes.list
#加入以下内容
# 执行更新
apt-get update -y
# 安装kubeadmkubectlkubelet  
apt-get install -y kubelet=1.23.1-00 kubeadm=1.23.1-00 kubectl=1.23.1-00
# 阻止自动更新(apt upgrade时忽略)。所以更新的时候先unhold,更新完再hold
apt-mark hold kubelet kubeadm kubectl
2)创建kubeadm-config.yaml 配置文件,文件内容见三方链接(master执行)
Ps修改 文件中的advertiseAddress 参数为当前master节点的局域网地址
3)在运行 kubeadm init 之前可以先执行 kubeadm config images pull 来测试与 gcr.io 的连接,kubeadm config images pull尝试是否可以拉取镜像,如果你的服务器在国内,是无法访问"k8s.gcr.io", "gcr.io", "quay.io"master执行)

先测试:
kubeadm config images pull
如能正常拉取请跳过,不能正常拉取见4)

4)#查看kubeadm config所需的镜像master执行)
kubeadm config images list
#执行结果如下
k8s.gcr.io/kube-apiserver:v1.23.8
k8s.gcr.io/kube-controller-manager:v1.23.8
k8s.gcr.io/kube-scheduler:v1.23.8
k8s.gcr.io/kube-proxy:v1.23.8
k8s.gcr.io/pause:3.6
k8s.gcr.io/etcd:3.5.1-0
k8s.gcr.io/coredns/coredns:v1.8.6

使用阿里云拉取镜像,再修改镜像名即可
#从国内镜像拉取
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.8
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.8
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.23.8
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.8
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0
docker pull coredns/coredns:1.8.6

#将拉取下来的images重命名为kubeadm config所需的镜像名字
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.8 k8s.gcr.io/kube-apiserver:v1.23.8
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.8 k8s.gcr.io/kube-controller-manager:v1.23.8
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.23.8 k8s.gcr.io/kube-scheduler:v1.23.8
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.8 k8s.gcr.io/kube-proxy:v1.23.8
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0 k8s.gcr.io/etcd:3.5.1-0
docker tag coredns/coredns:1.8.6 k8s.gcr.io/coredns/coredns:v1.8.6

5)到这里就可以执行初始化操作了(master执行)
kubeadm init --config kubeadm-config.yaml
Ps:注意这里的yaml文件需要放到当前命令执行目录中,也可以加上路径再执行;
看到successfully,代表初始化成功
上图中,提示中有两件事,先复制变量并执行
再将jion执行token复制到node节点进行执行
Ps:如果忘了密钥,可以使用该命令进行生成
kubeadm token create --print-join-command
6)node加入集群(仅node执行)
这样就是代表加入成功;如有报错需要重置kubeadm,查原因再加入,命令:kubeadm reset
Ps:报错原因如果是10248端口链接不上,那就是没加host(安装kubeadm前就得加)
7)mater上查看节点状态
节点状态没有ready,还需要安装网络组件
8)安装网络组件
网络组件可选安装calicoflannel,我这里是calico安装完后一直拉取不了镜像,换成了flannel;两个组件安装一个就行;
Calico

Flannel:
sudo mkdir /opt/bin
sudo cp flanneld-amd64 /opt/bin/flanneld
sudo chmod +x /opt/bin/flanneld
Ps:如果上面的链接拉取有问题,可以直接找台能访问该站点的PC下载镜像和yaml文件上传上去操作也行;

遇到一个问题,安装flannel组件时一直没有成功,卡住了,这里flannel没起来,导致coredns也没起来,,,
可以通过该命令查报错
kubectl logs pod名称 -n 命名空间

原因时yaml文件中的cidrs没有添加地址
vim /etc/kubernetes/manifests/kube-controller-manager.yaml

添加以下内容
--allocate-node-cidrs=true
--cluster-cidr=10.244.0.0/16
再重启kubectl即可,都起来了
查看节点状态,都正常了
可以安装aES集群链接组件和防御容器了
9)K8S排错命令
Kubectl get POD -A   #查看所有POD节点状态
Kubectl get nodes    #查看节点状态
Kubectl describe nodes  #查看nodes运行细节
kubectl describe POD名称 -n 命名空间  #查看单个POD节点运行信息和报错
kubectl logs POD名称 -n 命名空间    #查看单个POD节点运行日志

5、给K8S安装aESagent
1)安装集群连接组件(aES的集群连接组件镜像和agent镜像,仓库扫描镜像是三合一版本,以下简称agent
分为两种,有镜像仓库的,把agent镜像传到镜像仓库再拉取;另一种则直接把agent镜像上传到k8s集群进行本地拉取;
选择部署环境,这里是K8S和私有云环境
2)填写镜像所在路径
需要先把agent镜像上传到master节点
使用docker加载集群连接组件镜像
Docker load -i agent安装包名称
再获取镜像的名称
Docker images
MGR上填的镜像名称是REPOSITORY:TAG,也就是
containeragent:6.0.2.2603.aES_6.0.2-develop.x86   
3)调度范围,安装到哪些节点上
4)配置参数
需要放通MGR30443端口到K8S集群;
再就是需要先创建好命名空间,命令见上图;

5)安装集群组件
生成配置命令并下载yaml文件上传到k8s集群,并执行命令即可,等待一会儿就能看到集群上线;

6、给K8S集群安装防御容器(就是资产管理中的agent
分为两种方式,自动部署和手动部署,手动部署和安装集群链接组件类似,但是手动需要在每个节点上都要上传agent进行安装;所有推荐使用自动安装;
1)自动部署
添加任务,设置名称和类型,安装范围,镜像名称和集群连接组件名称一致;
确定并执行即可
等待一会儿,会自动进行安装
查看结果
Agent部署完成
前往资产管理进行查看,正常上线;
Ps:注意,容器agent和操作系统agent二选一安装;

7、上传本地POC测试镜像到k8s集群,测试agent扫描能力
由于没有镜像仓库条件,所以采用上传本地镜像的方式进行测试;
下载测试POC镜像并上传到任一一个节点的/tmp目录下
使用docker 进行拉取该镜像,就可以被agent识别到了
Docker load -i 1.0.8-poc.tar
前往MGR平台查看本地镜像
点击该镜像,进行扫描任务,即可进行扫描风险
风险分析中也能看到相关的风险信息
本次测试结束:
中间K8S环境搭建比较费时间。。。。。

打赏鼓励作者,期待更多好文!

打赏
20人已打赏

发表新帖
热门标签
全部标签>
高手请过招
每日一问
【 社区to talk】
新版本体验
功能体验
纪元平台
标准化排查
安全效果
GIF动图学习
产品连连看
信服课堂视频
S豆商城资讯
平台使用
技术笔记
每周精选
社区新周刊
产品解析
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
安装部署配置
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
排障笔记本
产品预警公告
玩转零信任
技术争霸赛
「智能机器人」
追光者计划
2023技术争霸赛专题
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术晨报
技术盲盒
山东区技术晨报
文档捉虫
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
西北区每日一问
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力
专家说
热门活动
产品动态
行业实践
关键解决方案

本版版主

0
2
1

发帖

粉丝

关注

40
11
5

发帖

粉丝

关注

5
3
4

发帖

粉丝

关注

65
6
1

发帖

粉丝

关注

2
4
0

发帖

粉丝

关注

0
0
0

发帖

粉丝

关注

本版达人