Merge pull request #71302 from tokudan/encrypted-swap-entropy-fix
rngd: Start early during boot and encrypted swap entropy fix
This commit is contained in:
commit
48704fbd4f
@ -185,6 +185,8 @@ in
|
|||||||
{ description = "Initialisation of swap device ${sw.device}";
|
{ description = "Initialisation of swap device ${sw.device}";
|
||||||
wantedBy = [ "${realDevice'}.swap" ];
|
wantedBy = [ "${realDevice'}.swap" ];
|
||||||
before = [ "${realDevice'}.swap" ];
|
before = [ "${realDevice'}.swap" ];
|
||||||
|
# If swap is encrypted, depending on rngd resolves a possible entropy starvation during boot
|
||||||
|
after = mkIf (config.security.rngd.enable && sw.randomEncryption.enable) [ "rngd.service" ];
|
||||||
path = [ pkgs.utillinux ] ++ optional sw.randomEncryption.enable pkgs.cryptsetup;
|
path = [ pkgs.utillinux ] ++ optional sw.randomEncryption.enable pkgs.cryptsetup;
|
||||||
|
|
||||||
script =
|
script =
|
||||||
|
@ -39,12 +39,15 @@ in
|
|||||||
|
|
||||||
description = "Hardware RNG Entropy Gatherer Daemon";
|
description = "Hardware RNG Entropy Gatherer Daemon";
|
||||||
|
|
||||||
|
# rngd may have to start early to avoid entropy starvation during boot with encrypted swap
|
||||||
|
unitConfig.DefaultDependencies = false;
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.rng-tools}/sbin/rngd -f"
|
ExecStart = "${pkgs.rng-tools}/sbin/rngd -f"
|
||||||
+ optionalString cfg.debug " -d";
|
+ optionalString cfg.debug " -d";
|
||||||
|
# PrivateTmp would introduce a circular dependency if /tmp is on tmpfs and swap is encrypted,
|
||||||
|
# thus depending on rngd before swap, while swap depends on rngd to avoid entropy starvation.
|
||||||
NoNewPrivileges = true;
|
NoNewPrivileges = true;
|
||||||
PrivateNetwork = true;
|
PrivateNetwork = true;
|
||||||
PrivateTmp = true;
|
|
||||||
ProtectSystem = "full";
|
ProtectSystem = "full";
|
||||||
ProtectHome = true;
|
ProtectHome = true;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user