Tag: 安全

我可以在Docker Nginx容器中放置哪些function?

我在一个Docker容器中运行Nginx,为了安全起见,我想尽可能多地释放Linux的能力。 我可以放弃哪些function? 该图像与标准的Docker Nginx Alpine图像类似: https : //github.com/nginxinc/docker-nginx/blob/0c7611139f2ce7c​​5a6b1febbfd5b436c8c7d2d53/mainline/alpine/Dockerfile ,它以根用户身份启动Nginx,然后运行工作进程为用户'nginx',看: root@instance-1:/opt/ed# docker-compose exec web bash bash-4.3# # Now we're inside the container. bash-4.3# ps aux PID USER TIME COMMAND 1 root 0:00 /bin/sh -c /etc/nginx/run-envsubst.sh && nginx 10 root 0:00 nginx: master process nginx 11 nginx 0:00 nginx: worker process 12 nginx 0:00 nginx: cache manager […]

你怎么知道公共Docker镜像是安全的?

我刚刚开始使用Docker,并且发现Docker Hub存储库中有许多图像可用。 这似乎是build立一个新的docker集装箱的正常方式是复制这些图像之一,并从那里去。 但是,我怎么知道这些容器中没有恶意代码,或者他们没有以其他方式危害我的安全? 举个例子,但是我怎么知道容器中的操作系统不是(例如)如果我input密钥,或者为了某种其他目的而劫持系统资源,就不会捕获键盘input?

我们真的需要docker镜像上的安全更新吗?

这个问题已经出现在我的脑海里了,我只是希望每个人都能用同样的想法来思考。 我首先想到的是容器不是一个虚拟机,几乎等同于在主机实例中独立运行的进程。 那么为什么我们需要不断更新我们的docker图像与安全更新? 如果我们已经采取了足够的步骤来确保我们的主机实例,那么docker容器应该是安全的。 即使我们从多层安全的不同方向考虑,如果docker主机被攻破,那么就无法阻止黑客访问主机上运行的所有容器; 不pipe你在docker映像上做了多less安全更新。 是否有任何人可以共享的地方,哪里的docker镜像的安全更新真的有帮助? 现在我明白如果有人想要更新在容器中运行的Apache,但是有没有理由对图像执行操作系统级别的安全更新?

Docker中的networking设置

如果我在Docker中有一个networking设置,如下所示 这里MQTT和Nodejs是两个独立的Nodejs容器。 我是否也必须使用TLS来保护channel A ? 我甚至需要保护channel A吗? 我猜不,因为这只是集装箱通道的一个容器。 我对么? 就Docker而言,我是一个新手,但是我已经读到docker0将允许容器docker0通信,但是阻止外界连接到容器,直到端口从主机映射到容器。

在Docker容器中执行主机命令

我正在寻找一种方式让用户能够在主机上执行一组有限的命令,而只能从容器/浏览器访问它。 我们的目标是防止需要通过SSH连接主机来偶尔运行命令,如make start , make stop等。这些命令只是执行一系列docker-compose命令,有时在dev中需要。 我能想到的两种可能的方法是: 通过浏览器内的cloud9terminal(我们已经在使用它)。 默认情况下,这个terminal当然只能访问容器本身。 通过定制迷你web应用程序(例如node.js / express)和映射到命令的button。 如果在主机上运行,​​这将很容易做到,但是我想把所有这样的代码保存为容器。

Docker:用户在terminal提示符下改变

我只是看着Docker的linode / lamp容器文档 ,遇到以下警告: sudo docker run -p 80:80 -t -i linode/lamp /bin/bash 注意:此命令还会将terminal提示符更改为新容器中的根用户。 假设我有以下的Dockerfile FROM alpine:3.3 RUN apk –update add \ build-base python-dev \ ca-certificates python &&\ adduser -D -u 1001 not_root USER not_root CMD ["/bin/sh"] 当我在这个容器中运行一些python代码(从一个卷加载并通过docker docker run ),它将作为not_root用户执行。 但是当我后来做一个docker exec -it -u root that_container /bin/sh为了手动安装一个软件包时,可以说为了testing的目的, docker start docker docker start或者docker docker run的运行容器是否仍然以not_root运行? […]

在docker中限制进程的数量

我想用docker作为沙箱来运行不安全的代码。 这似乎是相当安全的,但是一个容器仍然受到了攻击。 我读过可以在/etc/init/docker.conf中添加选项 limit nproc 20 100 limit nofile 50 100 limit fsize 102400000 204800000 但是这似乎不起作用。 我正在使用Debian 7.8 x86_64。

什么是混搭攻击? (Docker – 快照键)

有人可以帮助我理解什么是安全混合攻击? 我试图检查谷歌,但无法得到一个清晰的想法。 任何一个例子的解释应该是有帮助的 另外,这是如何做相关的Docker内容信任快照键?

Docker:–ipc =主机和安全

所以为了让MIT-SHM能够在–ipc host容器中运行的应用程序和主机上运行的x11之间工作,我必须在启动容器的时候传递–ipc host 。 我已经阅读了关于它应该做什么的文档。 假设应用程序不是作为根目录(在容器内)运行的,那么这个打开的可能的攻击向量是什么? 换句话说,– –ipc host多大的安全性?

在Docker容器中运行的Jenkins构buildDocker镜像

我正在阅读这篇关于设置Jenkins在Docker容器中运行的文章 ,Jenkins能够自己构buildDocker镜像。 虽然这个解决scheme有效,但作者也指出了一些安全问题。 主要的安全问题在于Jenkins需要运行Docker命令,这需要在Jenkins容器内部加载一个Docker套接字(加上Jenkins需要sudo才能运行Docker命令)。 因此,任何访问Jenkins Web界面的人都可以运行任何命令(通过运行Docker容器)来完全访问主机系统。 因此,我想知道如果我有人有一些想法,使这个设置更安全。 由于Jenkins仍然需要能够执行Docker命令(使用sudo)来创build新映像,使Jenkins用户仍然能够启动,所以在Docker容器(但直接在主机系统上)中运行Jenkins似乎并不安全任何任意容器。 使用防火墙可以限制Jenkins可以访问的IP地址,但是我希望可以采用其他一些解决scheme来降低安全风险。 编辑我忘了提Jenkins也应该能够在同一台机器上启动(新创build的)容器。