68 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  pkgs,
 | 
						|
  config,
 | 
						|
  lib,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (builtins) attrValues;
 | 
						|
  inherit (lib) getExe;
 | 
						|
in {
 | 
						|
  security = {
 | 
						|
    apparmor = {
 | 
						|
      enable = true;
 | 
						|
 | 
						|
      # packages to include with apparmors path
 | 
						|
      packages = [pkgs.apparmor-profiles];
 | 
						|
 | 
						|
      # kill any process that does not have a apparmor profile enabled
 | 
						|
      killUnconfinedConfinables = true;
 | 
						|
 | 
						|
      # apparmor policies
 | 
						|
      # FIXME
 | 
						|
      policies = {
 | 
						|
        "default_deny" = {
 | 
						|
          enforce = false;
 | 
						|
          enable = false;
 | 
						|
          profile = ''
 | 
						|
            profile default_deny /** { }
 | 
						|
          '';
 | 
						|
        };
 | 
						|
        "nix" = {
 | 
						|
          enforce = false;
 | 
						|
          enable = false;
 | 
						|
          profile = ''
 | 
						|
            ${getExe config.nix.package} {
 | 
						|
              unconfined,
 | 
						|
            }
 | 
						|
          '';
 | 
						|
        };
 | 
						|
        "sudo" = {
 | 
						|
          enforce = false;
 | 
						|
          enable = false;
 | 
						|
          profile = ''
 | 
						|
            ${getExe pkgs.sudo} {
 | 
						|
              file /** rwlkUx,
 | 
						|
            }
 | 
						|
          '';
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  # enable apparmor mode for dbus
 | 
						|
  services.dbus.apparmor = "enabled";
 | 
						|
 | 
						|
  # apparmor packages to add to path
 | 
						|
  environment.systemPackages = attrValues {
 | 
						|
    inherit
 | 
						|
      (pkgs)
 | 
						|
      apparmor-utils
 | 
						|
      apparmor-bin-utils
 | 
						|
      apparmor-kernel-patches
 | 
						|
      apparmor-parser
 | 
						|
      apparmor-profiles
 | 
						|
      apparmor-pam
 | 
						|
      libapparmor
 | 
						|
      ;
 | 
						|
  };
 | 
						|
}
 |