Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
slackware:initrd_ssh [2017/03/05 17:24] Thomasslackware:initrd_ssh [2017/03/23 07:51] (Version actuelle) Thomas
Ligne 1: Ligne 1:
 ==== Créer un initrd avec ssh pour déchiffrer la partition système à distance ==== ==== Créer un initrd avec ssh pour déchiffrer la partition système à distance ====
 +
 +=== Création de l'initrd ===
  
 Ayant slackware installée sur une partition chiffrée via Luks, cette distribution propose deux possibilités pour la déchiffrer au démarrage de l'OS : Ayant slackware installée sur une partition chiffrée via Luks, cette distribution propose deux possibilités pour la déchiffrer au démarrage de l'OS :
Ligne 12: Ligne 14:
   - Créer votre initrd.gz comme vous avez l'habitude de le faire avec l'option "-c" pour supprimer /boot/initrd-tree   - Créer votre initrd.gz comme vous avez l'habitude de le faire avec l'option "-c" pour supprimer /boot/initrd-tree
   - Copier la commande dropbearmulti dans /boot/initrd-tree/bin/ : <code>cd /boot/initrd-tree/bin   - Copier la commande dropbearmulti dans /boot/initrd-tree/bin/ : <code>cd /boot/initrd-tree/bin
-cp dropbearmulti .+cp $PKG/usr/bin/dropbearmulti .
 ln -s dropbearmulti dropbear ln -s dropbearmulti dropbear
 ln -s dropbearmulti dropbearkey</code> ln -s dropbearmulti dropbearkey</code>
   - Créer une bannière (optionnelle). Vous pouvez y saisir les commandes dont vous aurez besoin pour déchiffrer votre partition et poursuivre le démarrage de l'OS : <code>vi /boot/initrd-tree/etc/dropbear/banner</code>   - Créer une bannière (optionnelle). Vous pouvez y saisir les commandes dont vous aurez besoin pour déchiffrer votre partition et poursuivre le démarrage de l'OS : <code>vi /boot/initrd-tree/etc/dropbear/banner</code>
   - L'utilisateur root doit avoir le shell /bin/sh et non bash car il n'est pas présent. Modifier le fichier /boot/initrd-tree/etc/passwd comme ceci : <code>root:x:0:0::/root:/bin/sh</code>   - L'utilisateur root doit avoir le shell /bin/sh et non bash car il n'est pas présent. Modifier le fichier /boot/initrd-tree/etc/passwd comme ceci : <code>root:x:0:0::/root:/bin/sh</code>
-  - Copier votre fichier /etc/shadow (uniquement la ligne root) car il contient le mot de passe à saisir : <code>head -n 1 /etc/shadow > /boot/initrd-tree/etc/shadow</code>+  - Copier votre fichier /etc/shadow (uniquement la ligne root) car il contient le mot de passe à saisir : <code>grep ^root /etc/shadow > /boot/initrd-tree/etc/shadow</code>
   - Créer le fichier /boot/initrd-tree/bin/bootlock :<code>   - Créer le fichier /boot/initrd-tree/bin/bootlock :<code>
 +echo $$ > /bootlock.pid
 echo "###########################################" echo "###########################################"
 echo "###        Wait for user input          ###" echo "###        Wait for user input          ###"
 echo "###########################################" echo "###########################################"
-echo "Type ok and press enter to continue booting:" +echo "Press enter to continue booting:" 
-INPUT='wait' +read INPUT</code> 
-while [ $INPUT !'ok' ] ; do +  - Créer le fichier /boot/initrd-tree/bin/unlock en spécifiant votre LUKSDEV. Il est important que le nom donné au périphérique déchiffré soit "lukssdXX" :<code> 
-  read INPUT +LUKSDEV=sda2 
-done</code>+ 
 +PATH="/sbin:/bin:/usr/sbin:/usr/bin" 
 + 
 +# unlock needed devices 
 +cryptsetup luksOpen /dev/${LUKSDEV} luks${LUKSDEV} || exit 1 
 +echo "/dev/${LUKSDEV} unlocked" 
 + 
 +# kill bootlock 
 +kill $(cat /bootlock.pid)</code>
   - Créer le fichier /boot/initrd-tree/udev.sh :<code>   - Créer le fichier /boot/initrd-tree/udev.sh :<code>
 # initialize network interfaces for ssh boot # initialize network interfaces for ssh boot
Ligne 82: Ligne 93:
 echo "###############################################" echo "###############################################"
 killall dropbear killall dropbear
 +sleep 1
  
 # Now shut down the network so it doesn't interfere with the normal booting process # Now shut down the network so it doesn't interfere with the normal booting process
Ligne 90: Ligne 102:
 ifconfig $INET down ifconfig $INET down
 ifconfig lo down</code> ifconfig lo down</code>
-  - Rendez ces fichiers exécutables :<code>chmod +x /boot/initrd-tree/{udev.sh,network.sh,bin/bootlock}</code>+  - Rendre ces fichiers exécutables :<code>chmod +x /boot/initrd-tree/{udev.sh,network.sh,bin/bootlock,bin/unlock}</code> 
 +  - Ajouter la ligne "/udev.sh" dans /boot/initrd-tree/init (ligne 139) :<code> 
 +# If udevd is available, use it to generate block devices 
 +# else use mdev to read sysfs and generate the needed devices 
 +if [ -x /sbin/udevd -a -x /sbin/udevadm ]; then 
 +  /sbin/udevd --daemon --resolve-names=never 
 +  /sbin/udevadm trigger --subsystem-match=block --action=add 
 +  /sbin/udevadm settle --timeout=10 
 +  /udev.sh 
 +else 
 +  [ "$DEVTMPFS" != "1" ] && mdev -s 
 +fi</code> 
 +  - Ajouter la ligne "/network.sh" dans /boot/initrd-tree/init (ligne 193) :<code> 
 +if [ -x /sbin/cryptsetup ]; then 
 +  /network.sh 
 + 
 +  # Determine if we have to use a LUKS keyfile: 
 +  if [ ! -z "$LUKSKEY" ]; then…</code> 
 +  - Recréer votre initrd.gz sans l'option "-c" 
 +  - Relancer lilo
slackware/initrd_ssh.1488731096.txt.gz · Dernière modification : 2017/03/05 17:24 de Thomas
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0