![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
云原生安全
文章平均质量分 79
lady_killer9
CKA、CKS证书持有者,安全工程师
展开
-
k8s学习-思维导图与学习笔记
博主准备学习k8s,考个CKA和CKS证书。云时代来临,容器技术必定能够在接下来很长一段时间处于火热地位,Google也在不断更新K8s,相信它的潜力。花了一些时间看了看官网,整理了一下思维导图,学习路径,接下来将不断更新。龚正等《Kubernetes权威指南:从Docker到Kuberbetes实战全接触》马永亮《Kubernetes进阶实战》郑东旭《Kubernetes源码剖析》K8s官网CNCF × Alibaba 云原生技术公开课k8s学习-k8s初识与Centos下集群安装k8s学习-Pod原创 2022-06-19 19:33:57 · 2392 阅读 · 0 评论 -
网络安全-真实ip获取&伪造与隐藏&挖掘
proxy protocol没有研究,和TOA差不多,按照协议发包就行了,实现就交给读者吧。TOA的伪造方式还是不错的,非linux下没有btftools,可以自己写一个代理,把浏览器的流量转发到本地代理,代理的功能就是把TOA改一下。一些代理隐藏ip还是不错的,除非网站从开始没有使用cdn、部分使用cdn,或网站服务器有其他服务导致真实ip发出包了。该博客作者我也问了,一开始就使用了CDN,也没有其他子域名、服务,应该是无法找到真实IP了。原创 2023-12-31 17:21:02 · 3401 阅读 · 3 评论 -
云安全-wiz eks-cluster-games题解与思考
发现并不行,auience是不对的,翻到前面的限制发现audience必须sts.amazonaws.com。由于没有secrets的list权限,我们需要先通过pods来确定secret的名称。可以看到有secrets的get和pods的list、get权限。解密发现和策略的限制能对的上,那看来其实是用debug-sa的。攻击到集群,可以执行命令后,首先要做的就是查看权限,常用命令。允许列出和读取s3桶的对象,那应该就是flag对象了。进行了类似题目2的尝试,失败了,原因是没有权限。原创 2023-12-16 21:57:35 · 1026 阅读 · 0 评论 -
云原生-AWS EC2使用、安全性及国内厂商对比
EC2(Elastic Compute Cloud)是AWS云中的服务器,提供按需、可扩展的计算能力。本文以Linux为例。下图是EC2的位置。Instance就是EC2,它被Security group(安全组)保护着,持久性存储使用了EBS( Elastic Block Store)。在安全组外面是子网,子网外面是VPC,VPC通过网关与外部通信。默认安全组允许所有出流量,但入流量仅允许绑定该安全组的资源。自定义安全组允许所有出流量,入流量不允许,需要添加规则来进行控制进出流量。原创 2023-10-29 20:15:01 · 1915 阅读 · 0 评论 -
k8s学习-CKS真题-日志审计 log audit
-audit-log-path 指定用来写入审计事件的日志文件路径。不指定此标志会禁用日志后端。- -audit-log-maxsize 定义审计日志文件轮转之前的最大大小(兆字节)- -audit-log-maxbackup 定义要保留的审计日志文件的最大数量。- -audit-log-maxage 定义保留旧审计日志文件的最大天数。- -audit-policy-file 指定审计策略文件。修改kube-apiserverl.yaml配置文件。原创 2023-05-18 19:41:11 · 871 阅读 · 0 评论 -
k8s学习-CKS真题-TLS安全配置
如果出现:Failed to restart etcd.service: Unit etcd.service not found.,可以查找kube-system下的etcd,例如。原创 2023-05-17 20:40:32 · 1120 阅读 · 1 评论 -
k8s学习-CKS真题-ImagePolicyWebhook容器镜像扫描
启用ImagePolicyWebhook插件,确认–admission-control-config-file选项已有配置文件并挂载。把defaultAllow由true改为false。考试时应该已经挂载,可以检查一下,没有自行添加。在cluster下添加server。修改api-server配置文件。做题的时候按照以下顺序。不完整的准入配置文件。修改kube配置文件。原创 2023-05-17 20:25:26 · 1273 阅读 · 0 评论 -
k8s学习-CKS真题-Dockerfile和deployment优化
分析和编辑给定的 Dockerfile /cks/docker/Dockerfile(基于 ubuntu:16.04 镜像),只需修改现有的配置设置让以上两个配置设置都不再有安全/最佳实践问题。注意:如果您需要非特权用户来执行任何项目,请使用用户 ID 65535 的用户 nobody。分析和编辑给定的清单文件 /cks/docker/deployment.yaml ,并修复在文件中拥有的突出的安全/最佳实践问题的两个指令。并修复在文件中拥有突出的安全/最佳实践问题的两个字段。只修改即可,不需要创建。原创 2023-04-01 10:26:56 · 1088 阅读 · 9 评论 -
k8s学习-CKS真题-利用AppArmor进行应用行为限制
在 cluster 的工作节点 node02 上,实施位于 /etc/apparmor.d/nginx_apparmor 的现有 APPArmor 配置文件。编辑位于 /cks/KSSH00401/nginx-deploy.yaml 的现有清单文件以应用 AppArmor 配置文件。请注意,考试时,考题里已表明 APPArmor 在工作节点上,所以你需要 ssh 到开头写的工作节点上。查看配置文件,加载配置文件,查看加载的配置中是否有对应profile。最后,应用清单文件并创建其中指定的 Pod。原创 2023-05-13 14:59:56 · 838 阅读 · 0 评论 -
k8s-CKS真题-故障排查Sysdig & falco
博主下载的sysdig-0.31.5-x86_64.tar.gz,之后把可执行文件移动即可。请注意,考试时,考题里已表明 sysdig 在工作节点上,所以你需要。看了一下,是操作系统层面的问题,直接在模拟环境下做题了。在下方github参考链接的Release下载即可。查看tomcat123 pod是否存在。ubuntu 安装sysdig。如果没有docker,使用。查看一下falco是否安装。使用sysdig做检测。如果都没有,可以使用。写一个falco规则。原创 2023-05-13 14:59:27 · 2711 阅读 · 6 评论 -
k8s-CKS真题-k8s安全策略PodSecurityPolicy
可以看到有个Warning提示,1.25版本之后就没有psp了,之后这个考题可能变动。或者使用yaml文件。原创 2023-05-10 19:42:56 · 467 阅读 · 0 评论 -
k8s学习-CKS真题-Context安全上下文
在spec下面添加(考试时可能已有securityContext)修改deployment。原创 2023-05-08 20:33:08 · 735 阅读 · 0 评论 -
k8s学习-CKS真题-启用API Server认证,禁止匿名访问
ps:考试环境应该是已有的,–user=system:anonymous的clusterrolebinding。创建一个名为system:anonymous的clusterrolebinding。查询用户system:anonymous的clusterrilebinding。确保只有认证并且授权过的 REST 请求才被允许。这个等我考前有模拟环境时再做补充。删除题目要求的角色绑定。原创 2023-04-22 10:49:43 · 1053 阅读 · 0 评论 -
k8s学习-CKS真题-Trivy扫描镜像安全漏洞
使用 Trivy 开源容器扫描器检测 namespace kamino 中 Pod 使用的具有严重漏洞的镜像。注意:Trivy 仅安装在 cluster 的 master 节点上,在工作节点上不可使用。查找具有 High 或 Critical 严重性漏洞的镜像,并删除使用这些镜像的 Pod。你必须切换到 cluster 的 master 节点才能使用 Trivy。一个个镜像手动扫描也不方便,问了下ChatGPT,搞成了一条命令。读者根据自己的操作系统版本安装即可。第一需要下载库(考试时不需要)原创 2023-04-16 12:02:35 · 1043 阅读 · 1 评论 -
k8s-CKS真题-CIS基准测试与安全扫描
-authorization-mode stringkubelet 服务器的鉴权模式。当 --config 参数未被设置时,默认值为 AlwaysAllow,当使用了 --config 时,默认值为 Webhook。- -authorization-mode strings 在安全端口上进行鉴权的插件的顺序列表。1.2.18 Ensure that the --insecure-bind-address argument is not set FAIL (现在没有了,也可以手动检查下)原创 2023-04-16 12:01:13 · 894 阅读 · 0 评论 -
k8s学习-CKS真题-Runtime设置gVisor
由于我的集群版本已经是v1.25了,改为了containerd,所以需要修改一下配置。添加以下内容到配置中,与runc对齐。重启containerd。原创 2023-04-08 10:42:52 · 1759 阅读 · 5 评论 -
k8s学习-CKS真题-secret创建、使用
Task在 namespace istio-system 中获取名为 db1-test 的现有 secret 的内容将 username 字段存储在名为 /cks/sec/user.txt 的文件中,并将 password 字段存储在名为 /cks/sec/pass.txt 的文件中。注意:你必须创建以上两个文件,他们还不存在。注意:不要在以下步骤中使用/修改先前创建的文件,如果需要,可以创建新的临时文件。在 istio-system namespace 中创建一个名为 db2-test 的新原创 2023-03-12 09:32:25 · 637 阅读 · 0 评论 -
k8s学习-CKS真题-网络策略精细化控制
解释:对于dev-team命名空间下标签打了run=products-service的Pod的如流量进行限制,打了kubernetes.io/metadata.name=qaqa标签的命名空间下的Pod都可以访问,打了environment=testing标签的Pod都可以访问。创建一个名为 pod-restriction 的 NetworkPolicy 来限制对在 namespace dev-team 中运行的 Pod products-service 的访问。创建products-service。原创 2023-03-04 19:30:01 · 1277 阅读 · 3 评论 -
k8s学习-CKS真题-网络策略拒绝流量
【代码】k8s学习-CKS真题-网络策略拒绝流量。原创 2023-02-25 10:58:38 · 667 阅读 · 0 评论 -
k8s学习-CKS真题-RoleBinding
生成web-pod.yaml,修改添加serviceAccountName,之后创建。查找service-account-web绑定的role。原创 2023-02-05 09:30:09 · 889 阅读 · 0 评论 -
k8s学习-CKS真题-Pod指定ServiceAccount
2. 使用 /cks/sa/pod1.yaml 中的清单文件来创建一个 Pod,使用上面创建的ServiceAccount。1.在现有 namespace qa 中创建一个名为 backend-sa 的新 ServiceAccount, 确保此。3. 最后,清理 namespace qa 中任何未使用的ServiceAccount。这块实际操作的时候yaml敲成了yml,影响不大,就没有重新弄了。ServiceAccount 不自动挂载 API 凭据。在创建sa的yaml中添加。原创 2023-02-04 16:06:26 · 1104 阅读 · 0 评论 -
k8s学习-CKA考试必过宝典
• 使用ConfigMaps和Secrets配置应用程序。• 了解用于创建健壮的、自修复的应用程序部署的原语。:折扣期间购买的可能无法退换,注意看网站的一些条款。不能使用中国网站的账号登录,通过考试券来预约考试。国内需要身份证,国外需要其他类型的身份证件,如护照。更多信息可以加入网站右下角的官方交流群!• 管理高可用性的Kubernetes集群。博主使用的Github,也可以使用其他方式。• 了解如何配置具有持久性存储的应用程序。• 了解如何使用入口控制器和入口资源。• 了解如何配置和使用CoreDNS。原创 2023-01-02 09:52:50 · 2509 阅读 · 5 评论 -
k8s学习-CKA真题-k8s升级(kubeadm、kubelet、kubectl等)
现有的 Kubernetes 集权正在运行的版本是 1.23.6,仅将主节点上的所有 kubernetes 控制面板和组件升级到版本 1.24.8 另外,在主节点上升级 kubelet 和 kubectl。发现cluster3-controlplane1的版本是1.26.0,且cluster3-node2没有加入集群。运行的是较旧的Kubernetes版本,甚至不是集群的一部分将该节点上的Kubernetes更新为。之后验证一下,可以看到集群中加入了cluster3-node2节点。原创 2022-12-24 21:50:20 · 858 阅读 · 0 评论 -
k8s学习-CKA真题-集群故障排查kubelet
一个名为wk8s-node-0的节点状态为NotReady,让其他恢复至正常状态,并确认所有的更改开机自动完成。这里就不搭建一样的环境了,换成已有的节点xxx-2-centos。一个名为xxx-5-centos的节点有问题,让其他恢复至正常状态,并确认所有的更改开机自动完成。cd Drop-In所在的目录,查看配置文件,一般还有引用另一个config.yaml,查看该文件。发现kubectl无法使用,但是kubelet处于active状态,检查配置是否正确。ssh连接后,查看节点和kubelet。原创 2022-11-20 15:02:24 · 534 阅读 · 0 评论 -
k8s学习-污点和容忍(概念、模版、创建、删除)
可以写上,一般和NoExecute搭配,可以在有污点的node上存在一会儿再被驱逐,单位是秒。污点(Taint)使节点能够排斥/驱逐一类特定的 Pod,通过给 Node 打一些污点,来限制 Pod 调度到某些 Node 上。容忍度(Toleration) 是应用于 Pod等资源上的,容忍度允许调度器调度带有对应容忍度的 Pod到带有污点的Node上。给某节点xxx上添加污点 ,key为master,value为system,effect是NoSchedule。可以看到,已经可以调度到这个节点了。原创 2022-11-05 16:31:00 · 786 阅读 · 1 评论 -
k8s学习-CKA真题-七层负载均衡Ingress
在ing-internal 命名空间下创建一个ingress,名字为pong,代理的service hi,端口为5678,配置路径/hi。验证:访问curl -kL /hi会返回hi。由于测试环境端口是80,所以下面的不是题目对应的答案。创建deployment。创建service hi。写入hi到/hi路径。原创 2022-10-22 20:28:53 · 1000 阅读 · 0 评论 -
k8s学习-Ingress(安装、模板、创建、删除)
Ingress和之前提到的Service、Deployment一样,也是一个k8s的资源类型,ingress用于实现用域名的方式访问k8s内部应用。Ingress 可以提供负载均衡、SSL 终止和基于名称的虚拟托管。Ingress 不会公开任意端口或协议。将 HTTP 和 HTTPS 以外的服务公开到 Internet 时,通常使用 Service.Type=NodePort 或 Service.Type=LoadBalancer 类型的 Service。原创 2022-10-22 16:54:31 · 3208 阅读 · 0 评论 -
k8s学习-CKA真题-sidecar代理
总结:通过sidecar的方式,在Pod中起了一个容器busybox,在不影响legacy-app容器的情况下,读出了日志文件的内容,输出到标准输出。添加一个名为busybox且镜像为busybox的sidecar到一个已经存在的名为legacy-app的Pod上,这个sidecar的启动命令为。并且这个sidecar和原有的镜像挂载一个名为logs的volume,挂载的目录为/var/log/添加sidecar和volumes。原创 2022-10-16 15:54:57 · 748 阅读 · 0 评论 -
k8s学习-CKA真题-Etcd数据库备份恢复
针对存在的etcd实例https://127.0.0.1:2379,创建一个快照,保存到/srv/data/etcd-snapshot.db。在创建快照的过程中,如果卡住了,就键入ctrl+c终止,然后重试。然后恢复一个已经存在的快照: /var/lib/backup/etcd-snapshot-previous.db。客户端证书:/opt/KUIN00601/etcd-client.crt。客户端密钥:/opt/KUIN00601/etcd-client.key。删除一个pod,方便验证是否还原成功。原创 2022-09-24 19:19:47 · 2800 阅读 · 2 评论 -
k8s学习-CKA真题-持久化存储
然后创建一个Pod,名字为web-server,镜像为nginx,并且挂载该PVC至/usr/share/nginx/html,挂载的权限为ReadWriteOnce。创建一个pv,名字为app-config,大小为2Gi,访问模式为ReadWriteMany。Volume的类型为hostPath,路径为/srv/app-config。创建一个名字为pv-volume的pvc,指定storageClass为csi-hostpath-sc,大小为10Mi。可以看到pvc和Pod均创建成功。原创 2022-09-18 16:10:29 · 887 阅读 · 0 评论 -
k8s学习-持久化存储(Volumes、hostPath、emptyDir、PV、PVC)详解与实战
集群会检视 PVC 申领,找到所绑定的卷, 并为 Pod 挂载该卷。PV就是持久卷(Persistent Volume),是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。与Volume不同的是,它们有独立的生命周期,是一种k8s资源,在kubectl中可以缩写为pv。尽管 Pod 中的容器挂载 emptyDir 卷的路径可能相同也可能不同,这些容器都可以读写 emptyDir 卷中相同的文件。容器中的磁盘文件是短暂的,容器崩溃后,再次重启,数据就丢失了。原创 2022-09-18 11:05:37 · 2319 阅读 · 6 评论 -
k8s学习-网络策略NetworkPolicy(概念、模版、创建、删除等)
3.(Egress 规则)允许 “default” 命名空间中任何带有标签 “role=db” 的 Pod 到 CIDR 10.0.0.0/24 下 5978 TCP 端口的连接。k8s的命名空间是没有强制隔离性的,访问service时加上.namespace的名称即可。:此选择器将选择特定的名字空间,应将所有 Pod 用作其入站流量来源或出站流量目的地。k8s的Pod是没有隔离行的,任意命名空间下的Pod可以访问任意命名空间下的Pod。的 to/from 条目选择特定名字空间中的特定 Pod。原创 2022-09-11 19:10:15 · 2573 阅读 · 1 评论 -
k8s学习-CKA真题-网络策略NetworkPolicy
创建NetworkPolicy all-port-from-namespace。在命名空间internal创建pod nginx-demo。在命名空间internal创建pod busy-box。可以看到,创建后,internal之外的Pod无法访问。不允许不是internal命令空间的下的Pod访问。命名空间下的Pod访问该命名空间下的。这个NetworkPolicy允许。创建NetworkPolicy之前。创建NetworkPolicy之后。的NetworkPolicy。创建命名空间internal。原创 2022-09-11 19:06:28 · 822 阅读 · 4 评论 -
k8s学习-CKA真题-节点维护,指定node节点不可用
将ek8s-node-1节点设置为不可用,然后重新调度该节点上的所有Pod。这里就不搭建同样的环境了,改为已存在的xxx-113-centos。原创 2022-09-11 16:09:34 · 624 阅读 · 0 评论 -
k8s学习-CKA真题-基于角色的访问控制-RBAC
创建一个名为deployment-clusterrole的clusterrole,该clusterrole只允许创建Deployment、Daemonset、Statefulset的create操作。在名字为app-team1的namespace下创建一个名为cicd-token的serviceAccount,并且将上一步创建clusterrole的权限绑定到该serviceAccount。使用yaml创建可参考环境搭建中的文章。原创 2022-09-04 17:23:56 · 706 阅读 · 0 评论 -
k8s学习-基于角色的权限控制RBAC(概念,模版,创建,删除等)
Service Account:服务帐号,通过Kubernetes API 来管理的一些用户帐号,和 namespace 进行关联的,适用于集群内部运行的应用程序,需要通过 API 来完成权限认证,所以在集群内部进行权限操作,都需要使用到 ServiceAccount,这也是本文的重点。User Account:用户,这是有外部独立服务进行管理的,管理员进行私钥的分配,用户可以使用 KeyStone或者 Goolge 帐号,甚至一个用户名和密码的文件列表也可以。例如,查看pod的资源。原创 2022-09-04 17:18:21 · 1906 阅读 · 2 评论 -
k8s学习-CKA真题-负载均衡service
或者写个yaml文件,front-end-svc.yaml。nginx版本可以自己换,看看本地镜像。端口,并且service的类型为。,暴露该deployment的。修改deployment成功。创建service成功。原创 2022-09-03 18:26:28 · 867 阅读 · 0 评论 -
k8s学习-CKA真题-Pod指定节点部署
创建一个Pod,名字为nginx-kusc00401,镜像地址是nginx,调度到具有disk=spinning标签的节点上。可以看到Pod创建到了标签含有disk=spinning的节点上。原创 2022-09-03 17:08:10 · 925 阅读 · 0 评论 -
k8s学习-CKA真题-监控Pod度量指标
找出具有name=cpu-user标签的Pod,并过滤出使用CPU最高的Pod,然后把它的名字写在已经存在的/opt/KUTR00401/KUTR00401.txt文件里。kubectl top po出错的话,可能是没有安装metrics-server,可使用下面的yaml内容创建(博主k8s版本v1.23.6)找到所有标签含name=cpu-user的pod。找一个存在的po加下标签即可。...原创 2022-08-28 19:55:17 · 496 阅读 · 0 评论 -
k8s学习-CKA真题-一个Pod封装多个容器
创建一个Pod,名字为kucc1,这个Pod可能包含1-4容器,该题为四个:nginx+redis+memcached+consul。可以查看已有命令空间的po的yaml文件,或者去官网找模版,当然,如果你能自己手敲也ok。拿到模版改一下,注意镜像名和容器名。有这个pod就行,不用管它镜像有没有拉下来之类的。...原创 2022-08-27 20:23:13 · 1127 阅读 · 0 评论