4 changed files with 126 additions and 0 deletions
@ -0,0 +1,32 @@ |
|||||||
|
# Electrum AppArmor Profiles |
||||||
|
AppArmor is a Mandatory Access Control (MAC) system which confines programs to a limited set of resources. |
||||||
|
AppArmor confinement is provided via profiles loaded into the kernel. |
||||||
|
|
||||||
|
## Installation |
||||||
|
|
||||||
|
Copy the AppArmor profile from `contrib/apparmor/` to `/etc/apparmor.d/`: |
||||||
|
``` |
||||||
|
sudo cp -R -L contrib/apparmor/* /etc/apparmor.d |
||||||
|
``` |
||||||
|
Reload the AppArmor profiles to apply the changes: |
||||||
|
``` |
||||||
|
sudo systemctl reload apparmor |
||||||
|
``` |
||||||
|
Verify that the profile is loaded: |
||||||
|
``` |
||||||
|
sudo apparmor_status |
||||||
|
``` |
||||||
|
Look for the entry corresponding to `electrum` |
||||||
|
|
||||||
|
## Usage |
||||||
|
After installing the AppArmor profile, electrum will be restricted to the permissions specified in the profile. |
||||||
|
|
||||||
|
## Compatibility |
||||||
|
The help tab may not function as expected as browser permissions can be tricky (Tarball Binaries) |
||||||
|
|
||||||
|
These AppArmor profiles have been tested on the following operating systems: |
||||||
|
``` |
||||||
|
Debian 12 |
||||||
|
Ubuntu 23.10 |
||||||
|
Kali Linux 6.6 |
||||||
|
``` |
||||||
@ -0,0 +1,43 @@ |
|||||||
|
include <abstractions/base> |
||||||
|
include <abstractions/fonts> |
||||||
|
include <abstractions/user-tmp> |
||||||
|
include <abstractions/X> |
||||||
|
include <abstractions/wayland> |
||||||
|
include <abstractions/mesa> |
||||||
|
include <abstractions/dri-enumerate> |
||||||
|
include <abstractions/nameservice> |
||||||
|
include <abstractions/openssl> |
||||||
|
include <abstractions/vulkan> |
||||||
|
include <abstractions/python> |
||||||
|
include if exists <abstractions/evince> |
||||||
|
include if exists <abstractions/xdg-open> |
||||||
|
include if exists <abstractions/ubuntu-browsers> |
||||||
|
include if exists <abstractions/snap_browsers> |
||||||
|
|
||||||
|
owner @{PROC}/@{pid}/{mounts,fd/} r, |
||||||
|
|
||||||
|
/{usr/,}sbin/ldconfig ix, |
||||||
|
/{usr/,}bin/{file,dash,dirname,uname} rix, |
||||||
|
/{usr/,}bin/@{multiarch}-gcc-8 ix, |
||||||
|
/{usr/,}bin/@{multiarch}-ld.bfd ix, |
||||||
|
/etc/mime.types r, |
||||||
|
@{system_share_dirs}/{mime,icons}/{**,} r, |
||||||
|
/dev/bus/usb/ r, |
||||||
|
/dev/bus/usb/** rw, |
||||||
|
@{sys}/class/ r, |
||||||
|
@{sys}/bus/ r, |
||||||
|
/etc/udev/udev.conf r, |
||||||
|
/etc/magic r, |
||||||
|
@{sys}/devices/pci*/**/usb*/**{busnum,devnum,descriptors,speed,bConfigurationValue} r, |
||||||
|
/dev/ r, |
||||||
|
/{var/,}run/udev/data/* r, |
||||||
|
@{sys}/bus/usb/devices/ r, |
||||||
|
/{usr/,}/bin/uname rix, |
||||||
|
owner @{user_share_dirs}/mime/** r, |
||||||
|
|
||||||
|
/{,run/}user/**/dconf/* rw, |
||||||
|
/{var/,}lib/dbus/** r, |
||||||
|
/etc/apt/apt.conf.d/ r, |
||||||
|
/etc/machine-id r, |
||||||
|
/{usr/,}bin/xdg-open ix, |
||||||
|
/{usr/,}bin/evince ix, |
||||||
@ -0,0 +1,36 @@ |
|||||||
|
# Credits : Mikhail Morfikov |
||||||
|
abi <abi/3.0>, |
||||||
|
|
||||||
|
include <tunables/global> |
||||||
|
|
||||||
|
@{exec_path} = /{usr/,}bin/fusermount{,3} |
||||||
|
profile fusermount @{exec_path} { |
||||||
|
include <abstractions/base> |
||||||
|
include <abstractions/nameservice> |
||||||
|
|
||||||
|
# To mount anything: |
||||||
|
# fusermount: mount failed: Operation not permitted |
||||||
|
capability sys_admin, |
||||||
|
|
||||||
|
# For jmtpfs |
||||||
|
capability dac_read_search, |
||||||
|
|
||||||
|
@{exec_path} mr, |
||||||
|
|
||||||
|
# Where to mount ISO files |
||||||
|
owner @{HOME}/*/ rw, |
||||||
|
owner @{HOME}/*/*/ rw, |
||||||
|
owner @{HOME}/.cache/**/ rw, |
||||||
|
|
||||||
|
# Be able to mount ISO images |
||||||
|
mount fstype={fuse,fuse.*}, |
||||||
|
unmount fstype={fuse,fuse.*}, |
||||||
|
|
||||||
|
/etc/fuse.conf r, |
||||||
|
|
||||||
|
/dev/fuse rw, |
||||||
|
|
||||||
|
@{PROC}/@{pid}/mounts r, |
||||||
|
|
||||||
|
include if exists <local/fusermount> |
||||||
|
} |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
#Credits: Anton Nesterov |
||||||
|
abi <abi/3.0>, |
||||||
|
|
||||||
|
include <tunables/global> |
||||||
|
|
||||||
|
@{electrum_exec_path} = /{usr/,usr/local/,*/*/.local/,}bin/electrum |
||||||
|
|
||||||
|
profile electrum @{electrum_exec_path} { |
||||||
|
include <abstractions/electrum> |
||||||
|
|
||||||
|
@{electrum_exec_path} mr, |
||||||
|
owner @{HOME}/.electrum/{**,} rw, |
||||||
|
owner @{HOME}/.local/{**,} mrw, |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue