我们提供安全,免费的手游软件下载!
本文主要基于Kubernetes1.22.2和Linux操作系统Ubuntu 18.04。
服务器版本 | docker软件版本 | Kubernetes(k8s)集群版本 | kube-bench版本 | CPU架构 |
---|---|---|---|---|
Ubuntu 18.04.5 LTS | Docker version 20.10.14 | v1.22.2 | 0.6.7 | x86_64 |
Kubernetes集群架构:k8scludes1作为master节点,k8scludes2,k8scludes3作为worker节点。
服务器 | 操作系统版本 | CPU架构 | 进程 | 功能描述 |
---|---|---|---|---|
k8scludes1/192.168.110.128 | Ubuntu 18.04.5 LTS | x86_64 | docker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calico | k8s master节点 |
k8scludes2/192.168.110.129 | Ubuntu 18.04.5 LTS | x86_64 | docker,kubelet,kube-proxy,calico | k8s worker节点 |
k8scludes3/192.168.110.130 | Ubuntu 18.04.5 LTS | x86_64 | docker,kubelet,kube-proxy,calico | k8s worker节点 |
在现代的云计算环境中,安全是每个开发者和运维人员必须关注的问题。尤其是在运行容器的环境中,如何确保容器之间以及容器与宿主机之间的安全隔离,防止恶意行为对系统造成破坏,是一个非常重要的课题。本文将介绍如何使用 AppArmor 来限制容器对资源的访问,提高系统的安全性。
使用 AppArmor 来限制容器对资源的访问的 前提 是已经有一套可以正常运行的Kubernetes集群,关于Kubernetes(k8s)集群的安装部署,可以查看博客《Ubuntu 安装部署Kubernetes(k8s)集群》 https://www.cnblogs.com/renshengdezheli/p/17632858.html。
AppArmor 是一种 Linux 内核模块,用于提供强制访问控制(MAC)功能。它允许管理员为每个进程定义详细的访问控制策略,从而限制进程对文件、目录、网络接口等资源的访问。通过使用 AppArmor,我们可以有效地防止恶意软件或错误配置的应用程序对系统资源造成不必要的影响。
AppArmor 的规则文件通常位于
/etc/apparmor.d/
目录下。每个规则文件对应一个应用或服务,文件名通常以路径开头,后面跟着应用的名称。例如,对于 Nginx 服务器,其规则文件名为
/etc/apparmor.d/usr.sbin.nginx
。
AppArmor 规则由一系列的匹配语句组成,每条语句表示一个访问控制规则。规则的基本结构如下:
其中:
:指定规则所属的 profile,可以是预定义的 profile(如
usr.sbin.nginx
),也可以是自定义的 profile。
:可选字段,用于指定 profile 的行为选项,如是否启用日志记录等。
:必选字段,用于指定规则适用的条件,如进程名称、用户等。
:必选字段,用于指定允许或拒绝的操作类型,如读、写、执行等。
:可选字段,用于指定规则适用的文件类型,如普通文件、目录、设备文件等。
:可选字段,用于指定规则适用的文件路径模式。
:可选字段,用于指定规则适用的命令名称。
虽然 AppArmor 和 SELinux 都是 Linux 上的访问控制工具,但它们之间存在一些区别:
创建目录存放文件。
root@k8scludes1:~# mkdir systemsafe
root@k8scludes1:~# cd systemsafe/
安装nginx。
root@k8scludes1:~/systemsafe# apt-get install nginx
root@k8scludes1:~/systemsafe# which nginx
/usr/sbin/nginx
nginx安装好之后就可以访问nginx了。
root@k8scludes1:~/systemsafe# curl 192.168.110.128
Welcome to nginx!