]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
random: Initialise the kernel's PRNG earlier
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 29 Apr 2020 19:33:04 +0000 (19:33 +0000)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sun, 17 May 2020 07:46:32 +0000 (07:46 +0000)
Since more processes depend on good randomness, we need to
make sure that the kernel's PRNG is initialized as early as
possible.

For systems without a HWRNG, we will need to fall back to our
noisy loop and wait until we have enough randomness.

This patch also removes saving and restoring the seed. This
is no longer useful because the kernel's PRNG only takes any
input after it has successfully been seeded from other sources.

Hence adding this seed does not increase its randomness.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
config/rootfiles/common/aarch64/initscripts
config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/i586/initscripts
config/rootfiles/common/x86_64/initscripts
lfs/initscripts
src/initscripts/system/random

index d6f13224a9c2a73a848407b9cd97e3458789b250..8d945f7a5a43a4b4286a694289d088b1e7b8f383 100644 (file)
@@ -104,7 +104,6 @@ etc/rc.d/rc0.d/K08fcron
 etc/rc.d/rc0.d/K28apache
 etc/rc.d/rc0.d/K30sshd
 #etc/rc.d/rc0.d/K34client175
-etc/rc.d/rc0.d/K45random
 etc/rc.d/rc0.d/K47setclock
 etc/rc.d/rc0.d/K49cyrus-sasl
 etc/rc.d/rc0.d/K51vnstat
@@ -124,7 +123,6 @@ etc/rc.d/rc0.d/S80mountfs
 etc/rc.d/rc0.d/S90swap
 etc/rc.d/rc0.d/S99halt
 #etc/rc.d/rc3.d
-etc/rc.d/rc3.d/S00random
 etc/rc.d/rc3.d/S01vnstat
 etc/rc.d/rc3.d/S10sysklogd
 etc/rc.d/rc3.d/S11unbound
@@ -157,7 +155,6 @@ etc/rc.d/rc6.d/K08fcron
 etc/rc.d/rc6.d/K28apache
 etc/rc.d/rc6.d/K30sshd
 #etc/rc.d/rc6.d/K34client175
-etc/rc.d/rc6.d/K45random
 etc/rc.d/rc6.d/K47setclock
 etc/rc.d/rc6.d/K49cyrus-sasl
 etc/rc.d/rc6.d/K51vnstat
@@ -194,6 +191,7 @@ etc/rc.d/rcsysinit.d/S45udev_retry
 etc/rc.d/rcsysinit.d/S50cleanfs
 etc/rc.d/rcsysinit.d/S60setclock
 etc/rc.d/rcsysinit.d/S65rngd
+etc/rc.d/rcsysinit.d/S66random
 etc/rc.d/rcsysinit.d/S70console
 etc/rc.d/rcsysinit.d/S71pakfire
 etc/rc.d/rcsysinit.d/S73swconfig
index d6f13224a9c2a73a848407b9cd97e3458789b250..8d945f7a5a43a4b4286a694289d088b1e7b8f383 100644 (file)
@@ -104,7 +104,6 @@ etc/rc.d/rc0.d/K08fcron
 etc/rc.d/rc0.d/K28apache
 etc/rc.d/rc0.d/K30sshd
 #etc/rc.d/rc0.d/K34client175
-etc/rc.d/rc0.d/K45random
 etc/rc.d/rc0.d/K47setclock
 etc/rc.d/rc0.d/K49cyrus-sasl
 etc/rc.d/rc0.d/K51vnstat
@@ -124,7 +123,6 @@ etc/rc.d/rc0.d/S80mountfs
 etc/rc.d/rc0.d/S90swap
 etc/rc.d/rc0.d/S99halt
 #etc/rc.d/rc3.d
-etc/rc.d/rc3.d/S00random
 etc/rc.d/rc3.d/S01vnstat
 etc/rc.d/rc3.d/S10sysklogd
 etc/rc.d/rc3.d/S11unbound
@@ -157,7 +155,6 @@ etc/rc.d/rc6.d/K08fcron
 etc/rc.d/rc6.d/K28apache
 etc/rc.d/rc6.d/K30sshd
 #etc/rc.d/rc6.d/K34client175
-etc/rc.d/rc6.d/K45random
 etc/rc.d/rc6.d/K47setclock
 etc/rc.d/rc6.d/K49cyrus-sasl
 etc/rc.d/rc6.d/K51vnstat
@@ -194,6 +191,7 @@ etc/rc.d/rcsysinit.d/S45udev_retry
 etc/rc.d/rcsysinit.d/S50cleanfs
 etc/rc.d/rcsysinit.d/S60setclock
 etc/rc.d/rcsysinit.d/S65rngd
+etc/rc.d/rcsysinit.d/S66random
 etc/rc.d/rcsysinit.d/S70console
 etc/rc.d/rcsysinit.d/S71pakfire
 etc/rc.d/rcsysinit.d/S73swconfig
index 2db7f1aa3fce9136a3a1f04e7d29901afaf89133..996925b7af372e2f614649dcf490cad93ad33b20 100644 (file)
@@ -103,7 +103,6 @@ etc/rc.d/rc0.d/K08fcron
 etc/rc.d/rc0.d/K28apache
 etc/rc.d/rc0.d/K30sshd
 #etc/rc.d/rc0.d/K34client175
-etc/rc.d/rc0.d/K45random
 etc/rc.d/rc0.d/K47setclock
 etc/rc.d/rc0.d/K49cyrus-sasl
 etc/rc.d/rc0.d/K51vnstat
@@ -123,7 +122,6 @@ etc/rc.d/rc0.d/S80mountfs
 etc/rc.d/rc0.d/S90swap
 etc/rc.d/rc0.d/S99halt
 #etc/rc.d/rc3.d
-etc/rc.d/rc3.d/S00random
 etc/rc.d/rc3.d/S01vnstat
 etc/rc.d/rc3.d/S10sysklogd
 etc/rc.d/rc3.d/S12acpid
@@ -156,7 +154,6 @@ etc/rc.d/rc6.d/K08fcron
 etc/rc.d/rc6.d/K28apache
 etc/rc.d/rc6.d/K30sshd
 #etc/rc.d/rc6.d/K34client175
-etc/rc.d/rc6.d/K45random
 etc/rc.d/rc6.d/K47setclock
 etc/rc.d/rc6.d/K49cyrus-sasl
 etc/rc.d/rc6.d/K51vnstat
@@ -193,6 +190,7 @@ etc/rc.d/rcsysinit.d/S45udev_retry
 etc/rc.d/rcsysinit.d/S50cleanfs
 etc/rc.d/rcsysinit.d/S60setclock
 etc/rc.d/rcsysinit.d/S65rngd
+etc/rc.d/rcsysinit.d/S66random
 etc/rc.d/rcsysinit.d/S70console
 etc/rc.d/rcsysinit.d/S71pakfire
 etc/rc.d/rcsysinit.d/S74cloud-init
index 2db7f1aa3fce9136a3a1f04e7d29901afaf89133..996925b7af372e2f614649dcf490cad93ad33b20 100644 (file)
@@ -103,7 +103,6 @@ etc/rc.d/rc0.d/K08fcron
 etc/rc.d/rc0.d/K28apache
 etc/rc.d/rc0.d/K30sshd
 #etc/rc.d/rc0.d/K34client175
-etc/rc.d/rc0.d/K45random
 etc/rc.d/rc0.d/K47setclock
 etc/rc.d/rc0.d/K49cyrus-sasl
 etc/rc.d/rc0.d/K51vnstat
@@ -123,7 +122,6 @@ etc/rc.d/rc0.d/S80mountfs
 etc/rc.d/rc0.d/S90swap
 etc/rc.d/rc0.d/S99halt
 #etc/rc.d/rc3.d
-etc/rc.d/rc3.d/S00random
 etc/rc.d/rc3.d/S01vnstat
 etc/rc.d/rc3.d/S10sysklogd
 etc/rc.d/rc3.d/S12acpid
@@ -156,7 +154,6 @@ etc/rc.d/rc6.d/K08fcron
 etc/rc.d/rc6.d/K28apache
 etc/rc.d/rc6.d/K30sshd
 #etc/rc.d/rc6.d/K34client175
-etc/rc.d/rc6.d/K45random
 etc/rc.d/rc6.d/K47setclock
 etc/rc.d/rc6.d/K49cyrus-sasl
 etc/rc.d/rc6.d/K51vnstat
@@ -193,6 +190,7 @@ etc/rc.d/rcsysinit.d/S45udev_retry
 etc/rc.d/rcsysinit.d/S50cleanfs
 etc/rc.d/rcsysinit.d/S60setclock
 etc/rc.d/rcsysinit.d/S65rngd
+etc/rc.d/rcsysinit.d/S66random
 etc/rc.d/rcsysinit.d/S70console
 etc/rc.d/rcsysinit.d/S71pakfire
 etc/rc.d/rcsysinit.d/S74cloud-init
index ba6c9f91364c3b8ec7a182877082b5421e3a66f7..242de60e5d8c5e83ffb15c10b07947570ac748fb 100644 (file)
@@ -126,9 +126,6 @@ $(TARGET) :
        ln -sf ../init.d/unbound     /etc/rc.d/rc0.d/K86unbound
        ln -sf ../init.d/unbound     /etc/rc.d/rc3.d/S11unbound
        ln -sf ../init.d/unbound     /etc/rc.d/rc6.d/K86unbound
-       ln -sf ../init.d/random      /etc/rc.d/rc0.d/K45random
-       ln -sf ../init.d/random      /etc/rc.d/rc3.d/S00random
-       ln -sf ../init.d/random      /etc/rc.d/rc6.d/K45random
        ln -sf ../../sysconfig/rc.local /etc/rc.d/rc3.d/S98rc.local
        ln -sf ../init.d/client175   /etc/rc.d/rc0.d/K34client175
        ln -sf ../init.d/client175   /etc/rc.d/rc3.d/S66client175
@@ -174,6 +171,7 @@ $(TARGET) :
        ln -sf ../init.d/setclock    /etc/rc.d/rc0.d/K47setclock
        ln -sf ../init.d/setclock    /etc/rc.d/rc6.d/K47setclock
        ln -sf ../init.d/rngd        /etc/rc.d/rcsysinit.d/S65rngd
+       ln -sf ../init.d/random      /etc/rc.d/rcsysinit.d/S66random
        ln -sf ../init.d/console     /etc/rc.d/rcsysinit.d/S70console
        ln -sf ../init.d/pakfire     /etc/rc.d/rcsysinit.d/S71pakfire
        ln -sf ../init.d/cloud-init  /etc/rc.d/rcsysinit.d/S74cloud-init
index 1f825cd183e4ad9191e720791f17e4b0da8d1bb1..489c7dac90832c61bc94b65225cffd5d7795b055 100644 (file)
@@ -22,29 +22,10 @@ case "$1" in
                        sync
                        rm -f /var/tmp/random-tmpfile
                done;
-
-               boot_mesg "\rInitializing kernel random number generator..."
-               if [ -f /var/tmp/random-seed ]; then
-                       /bin/cat /var/tmp/random-seed >/dev/urandom
-               fi
-               touch /var/tmp/random-seed
-               chmod 600 /var/tmp/random-seed
-               /bin/dd if=/dev/urandom of=/var/tmp/random-seed \
-                       count=1 bs=$poolsize &>/dev/null
-               evaluate_retval
-               ;;
-
-       stop)
-               boot_mesg "Saving random seed..."
-               touch /var/tmp/random-seed
-               chmod 600 /var/tmp/random-seed
-               /bin/dd if=/dev/urandom of=/var/tmp/random-seed \
-                       count=1 bs=$poolsize &>/dev/null
-               evaluate_retval
                ;;
 
        *)
-               echo "Usage: $0 {start|stop}"
+               echo "Usage: $0 {start}"
                exit 1
                ;;
 esac