×

【aES容器安全】K8S部署aES组件POC测试
  

新手小明 22674人觉得有帮助

{{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环境搭建比较费时间。。。。。

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

打赏
17人已打赏

jan 发表于 2023-11-18 13:36
  
高手啊,学习了!!!!!!!!!!!!!!!!!
胡辰硕 发表于 2023-12-1 10:30
  
学到了学到了
新手741261 发表于 2023-12-11 10:28
  
感谢分享资料,非常详细
真男人 发表于 2023-12-11 12:38
  
楼主分享的案例很实用,具有典型性
何东升 发表于 2023-12-11 15:46
  
感谢分享有助于工资和学习!
言不由衷 发表于 2023-12-12 09:57
  
新手031815 发表于 2023-12-12 11:44
  
楼主的文章图文并茂,清晰易懂
新手612152 发表于 2023-12-12 12:02
  
感谢分享,有助于工作,学习了!
新手078326 发表于 2023-12-13 20:26
  
每天学习一点新知识,谢谢分享
发表新帖
热门标签
全部标签>
每日一问
2024年技术争霸赛
技术盲盒
干货满满
技术笔记
产品连连看
信服课堂视频
2023技术争霸赛专题
自助服务平台操作指引
每周精选
功能体验
技术咨询
GIF动图学习
新版本体验
秒懂零信任
标准化排查
信服圈儿
安全攻防
技术晨报
在线直播
通用技术
问题分析处理
每日一记
社区帮助指南
安装部署配置
运维工具
终端接入
天逸直播
以战代练
齐鲁TV
畅聊IT
答题自测
专家问答
技术圆桌
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
流量管理
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
答题榜单公布
纪元平台
卧龙计划
华北区拉练
山东区技术晨报
文档捉虫活动
华北区交付直播
北京区每日一练

本版版主

0
1
0

发帖

粉丝

关注

34
5
5

发帖

粉丝

关注

2
3
4

发帖

粉丝

关注

43
4
1

发帖

粉丝

关注

1
4
0

发帖

粉丝

关注

0
0
0

发帖

粉丝

关注

本版达人