我想询问/开始讨论在限制访问apt-get
,vi
,ping
,{{ 1}}和wget
在docker容器中。
此刻,我一直在尝试创建AppArmor配置文件,以用作标准运行命令的一部分。例如:
curl
我还能够创建单个配置文件来限制vi和apt-get
vi个人资料:
root@ubuntu:/home/user1# docker run --rm -it --security-opt apparmor=no-ping debian:jessie bash -i
root@e2028adfa071:/# ping 8.8.8.8
ping: icmp open socket: Permission denied
易于获取的个人资料:
# Last Modified: Fri Dec 6 11:09:07 2019
#include <tunables/global>
/usr/bin/vim.tiny {
#include <abstractions/base>
deny owner /etc/apparmor.d/ r,
/lib/x86_64-linux-gnu/ld-*.so mr,
/usr/bin/vim.tiny mr,
}
最终,我看到了将这些配置文件合并在一起的途径,因此当容器开始访问# Last Modified: Wed Nov 27 07:59:55 2019
#include <tunables/global>
/usr/bin/apt-get {
#include <abstractions/base>
deny capability chown,
deny /bin/dash x,
deny /usr/bin/dpkg x,
/lib/x86_64-linux-gnu/ld-*.so mr,
/usr/bin/apt-get mr,
}
,apt-get
,vi
,ping
和{{ 1}}受限制。
有没有更好/更轻松的方法来解决这个问题?