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'opérateur, 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. Ceci crée une possibilité réelle que les nombres générés au démarrage peuvent être les mêmes. Pour réagir à cet effet, vous devez apporter au pool d'entropies des informations entre vos arrêts et démarrages. Le script init.d suivant et ses liens vont réaliser cette fonction 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 les liens symboliques de 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