88c2f08eba
From an original patch by Danish Prakash. With commitff22a78d7b
("pasta: Don't try to watch namespaces in procfs with inotify, use timer instead"), if a filesystem-bound target namespace is passed on the command line, we'll grab a handle on its parent directory. That commit, however, didn't introduce a matching AppArmor rule. Add it here. To access a network namespace procfs entry, we also need a 'ptrace' rule. See commit594dce66d3
("isolation: keep CAP_SYS_PTRACE when required") for details as to when we need this -- essentially, it's about operation with Buildah. Reported-by: Jörg Sonnenberger <joerg@bec.de> Link: https://github.com/containers/buildah/issues/5440 Link: https://bugzilla.suse.com/show_bug.cgi?id=1221840 Fixes:ff22a78d7b
("pasta: Don't try to watch namespaces in procfs with inotify, use timer instead") Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
47 lines
1.3 KiB
Text
47 lines
1.3 KiB
Text
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
#
|
|
# PASST - Plug A Simple Socket Transport
|
|
# for qemu/UNIX domain socket mode
|
|
#
|
|
# PASTA - Pack A Subtle Tap Abstraction
|
|
# for network namespace/tap device mode
|
|
#
|
|
# contrib/apparmor/abstractions/pasta - Abstraction for pasta(1)
|
|
#
|
|
# Copyright (c) 2022 Red Hat GmbH
|
|
# Author: Stefano Brivio <sbrivio@redhat.com>
|
|
|
|
abi <abi/3.0>,
|
|
|
|
include <abstractions/passt>
|
|
|
|
mount "" -> "/proc/",
|
|
|
|
@{PROC}/net/tcp r, # procfs_scan_listen(), util.c
|
|
@{PROC}/net/tcp6 r,
|
|
@{PROC}/net/udp r,
|
|
@{PROC}/net/udp6 r,
|
|
|
|
@{PROC}/@{pid}/net/tcp r, # procfs_scan_listen(), util.c
|
|
@{PROC}/@{pid}/net/tcp6 r,
|
|
@{PROC}/@{pid}/net/udp r,
|
|
@{PROC}/@{pid}/net/udp6 r,
|
|
|
|
@{run}/user/@{uid}/** rw, # pasta_open_ns(), main()
|
|
|
|
@{PROC}/[0-9]*/ns/ r, # pasta_netns_quit_init(),
|
|
@{PROC}/[0-9]*/ns/net r, # pasta_wait_for_ns(),
|
|
@{PROC}/[0-9]*/ns/user r, # conf_pasta_ns()
|
|
|
|
/dev/net/tun rw, # tap_ns_tun(), tap.c
|
|
|
|
owner @{PROC}/@{pid}/gid_map w, # pasta_start_ns(), conf_ugid()
|
|
owner @{PROC}/@{pid}/setgroups w,
|
|
owner @{PROC}/@{pid}/uid_map rw,
|
|
|
|
owner @{PROC}/sys/net/ipv4/ping_group_range w, # pasta_spawn_cmd(), pasta.c
|
|
/{usr/,}bin/** Ux,
|
|
|
|
/usr/bin/pasta.avx2 ix, # arch_avx2_exec(), arch.c
|
|
|
|
ptrace r, # pasta_open_ns()
|