Compare commits
2 commits
b10ee3bf29
...
d6e4ce8850
Author | SHA1 | Date | |
---|---|---|---|
d6e4ce8850 | |||
e072d9e4a5 |
4 changed files with 86 additions and 0 deletions
15
common/tooling/apparmor/apparmor-d-paths.patch
Normal file
15
common/tooling/apparmor/apparmor-d-paths.patch
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
diff --git a/apparmor.d/tunables/multiarch.d/system b/apparmor.d/tunables/multiarch.d/system
|
||||||
|
index be37123f..1d61a671 100644
|
||||||
|
--- a/apparmor.d/tunables/multiarch.d/system
|
||||||
|
+++ b/apparmor.d/tunables/multiarch.d/system
|
||||||
|
@@ -106,8 +106,8 @@
|
||||||
|
@{MOUNTS}=@{MOUNTDIRS}/*/ @{run}/user/@{uid}/gvfs/
|
||||||
|
|
||||||
|
# Common places for binaries and libraries across distributions
|
||||||
|
-@{bin}=/{,usr/}{,s}bin
|
||||||
|
-@{lib}=/{,usr/}lib{,exec,32,64}
|
||||||
|
+@{bin}=/nix/store/*/bin
|
||||||
|
+@{lib}=/nix/store/*/lib
|
||||||
|
|
||||||
|
# Common places for temporary files
|
||||||
|
@{tmp}=/tmp/ /tmp/user/@{uid}/
|
24
common/tooling/apparmor/apparmor-d.nix
Normal file
24
common/tooling/apparmor/apparmor-d.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ stdenv, fetchFromGitHub }:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "apparmor-d";
|
||||||
|
version = "unstable-2024-10-12";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
rev = "116272b8ada281178150f1c9a564aac1967121f6";
|
||||||
|
owner = "roddhjav";
|
||||||
|
repo = "apparmor.d";
|
||||||
|
hash = "sha256-Yx9UJdmBqjMSPVwFyvidQXfQ4pdEKaDMfvi7gF6GSVc=";
|
||||||
|
};
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./apparmor-d-paths.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/etc
|
||||||
|
cp -r apparmor.d $out/etc
|
||||||
|
'';
|
||||||
|
}
|
46
common/tooling/apparmor/default.nix
Normal file
46
common/tooling/apparmor/default.nix
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (config.grimmShared) enable tooling;
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
apparmor-d = pkgs.callPackage ./apparmor-d.nix {};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf (enable && tooling.enable) {
|
||||||
|
services.dbus.apparmor = "enabled";
|
||||||
|
security.auditd.enable = true;
|
||||||
|
|
||||||
|
security.apparmor.packages = [ apparmor-d ];
|
||||||
|
security.apparmor.enable = true;
|
||||||
|
|
||||||
|
security.apparmor.includes = {
|
||||||
|
"local/vesktop" = ''
|
||||||
|
# @{lib}/libdl.so* mr,
|
||||||
|
# @{lib}/libglapi.so* mr,
|
||||||
|
# @{lib}/libc.so* mr,
|
||||||
|
# @{lib}/pluseaudio/** mr,
|
||||||
|
|
||||||
|
@{bin}/electron rix,
|
||||||
|
/nix/store/*/libexec/electron/** rix,
|
||||||
|
|
||||||
|
/nix/store/*/bin/** mr,
|
||||||
|
/nix/store/*/lib/** mr,
|
||||||
|
/nix/store/** r,
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
security.apparmor.policies = {
|
||||||
|
vesktop = {
|
||||||
|
enable = true;
|
||||||
|
enforce = true;
|
||||||
|
profile = ''
|
||||||
|
include "${apparmor-d}/etc/apparmor.d/profiles-s-z/vesktop"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -28,6 +28,7 @@ in
|
||||||
./java.nix
|
./java.nix
|
||||||
./opensnitch
|
./opensnitch
|
||||||
./ranger.nix
|
./ranger.nix
|
||||||
|
./apparmor
|
||||||
];
|
];
|
||||||
|
|
||||||
config = mkIf (enable && tooling.enable) {
|
config = mkIf (enable && tooling.enable) {
|
||||||
|
|
Loading…
Reference in a new issue