Génération de nombres aléatoires

Le noyau Linux apporte un générateur de nombres aléatoires auquel on accède par /dev/random et /dev/urandom. Les programmes utilisant les périphériques random et urandom, tels que OpenSSH, bénéficieront de ces instructions.

Quand un système Linux démarre sans trop d'interaction de l'utilisateur, le pool d'entropies (les données utilisées pour calculer un nombre aléatoire) peut se trouver dans un état à peu près prévisible. Cela crée une possibilité réelle que les nombres générés au démarrage soient toujours les mêmes. Pour empêcher cela, vous devez apporter des informations au pool d'entropies entre vos arrêts et démarrages. Le script init.d suivant et ses liens vont réaliser cette tâche pour vous automatiquement.

cat > /etc/rc.d/init.d/random << "EOF"

#!/bin/sh
# Début $rc_base/init.d/random

# Basé sur le script sysklogd de LFS-3.1 et précédents.
# Réécrit par Gerard Beekmans  - gerard@linuxfromscratch.org
# Eléments du script random par Larry Lawrence

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Initializing kernel random number generator..."
                if [ -f /var/tmp/random-seed ]; then
	                cat /var/tmp/random-seed >/dev/urandom
		fi
		dd if=/dev/urandom of=/var/tmp/random-seed count=1 &>/dev/null
		evaluate_retval
		;;
		
	stop)
		echo "Saving random seed..."
		dd if=/dev/urandom of=/var/tmp/random-seed count=1 &>/dev/null
		evaluate_retval
		;;

        *)
                echo "Usage: $0 {start|stop}"
                exit 1
                ;;
esac

# Fin $rc_base/init.d/random
EOF
chmod 755 /etc/rc.d/init.d/random

Créez des liens symboliques vers ce fichier dans les répertoires rc.d appropriés avec les commandes suivantes:
cd /etc/rc.d/init.d &&
ln -sf ../init.d/random ../rc0.d/K45random &&
ln -sf ../init.d/random ../rc2.d/S25random &&
ln -sf ../init.d/random ../rc3.d/S25random &&
ln -sf ../init.d/random ../rc4.d/S25random &&
ln -sf ../init.d/random ../rc5.d/S25random &&
ln -sf ../init.d/random ../rc6.d/K45random