如防止sudo podman挂载宿主机系统?

容器技术

1 前言

一个问题,一篇文章,一出故事。
笔者生产环境中通过sudo授权容器用户podman使用root权限时,发现有用户利用podman命令挂载宿主机的文件系统从而获取root权限,于是整理此章节,

2 最佳实践

2.1 环境信息

如何yum部署podman?

2.2 配置sudo授权

vim /etc/sudoers.d/podman

加入如下配置,

%podman ALL=(root) NOPASSWD: /usr/bin/podman
podman ALL=(root) NOPASSWD: !/usr/bin/podman run * -v /*\:*,\
                            /usr/bin/podman run * -v /data/podman/*\:*

2.3 测试挂载

2.3.1 切换到授权用户

su - podman

2.3.2 拉取测试所需的镜像

podman pull registry.access.redhat.com/ubi8/ubi:8.10-1020

2.3.3 测试授权的挂载

mkdir -p /data/podman/test
sudo podman run --privileged --rm -it -v /data/podman/test/:/host registry.access.redhat.com/ubi8/ubi /bin/bash
sudo podman run --privileged --rm -it --volume /data/podman/test/:/host registry.access.redhat.com/ubi8/ubi /bin/bash

2.3.4 测试非授权的挂载

sudo podman run --privileged --rm -it -v /:/host registry.access.redhat.com/ubi8/ubi /bin/bash
sudo podman run --privileged --rm -it -v /etc/:/host registry.access.redhat.com/ubi8/ubi /bin/bash
sudo podman run --privileged --rm -it --volume /:/host registry.access.redhat.com/ubi8/ubi /bin/bash
sudo podman run --privileged --rm -it --volume /etc/:/host registry.access.redhat.com/ubi8/ubi /bin/bash

注意,以上操作为用户想通过挂载宿主机的文件系统的根实现提升权限。

参阅文档
========================
https://catalog.redhat.com/software/containers/ubi8/ubi/5c359854d70cc534b3a3784e?container-tabs=gti

没有评论

发表回复

Python
如何测试Docker paddleocr?

1 基础知识 1.1 软件简介 PaddleOCR旨在打造一套丰富、领先、实用的OCR工具库 Pad …

容器技术
如何自定义Podman Registry的地址?

1 前言 一个问题,一篇文章,一出故事。 由于公司内部服务器由于不允许直接连接Internet,因此 …

容器技术
如何dnf部署Oracle Linux 9.x podman?

1 基础知识 1.1 podman的介绍 – podman是Pod Manager的缩写 …