Outils pour utilisateurs

Outils du site


debian-fde-dropbear

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
debian-fde-dropbear [2017/12/31 16:05] – [À partir de stretch (debian 9)] aureliendebian-fde-dropbear [2018/12/14 11:02] (Version actuelle) – [Complément et alternative] kippix
Ligne 34: Ligne 34:
  
 Ensuite, il faut ajouter les clés ssh autorisées à se connecter pour déchiffrer le disque au fichier ''/etc/initramfs-tools/root/.ssh/authorized_keys'' Ensuite, il faut ajouter les clés ssh autorisées à se connecter pour déchiffrer le disque au fichier ''/etc/initramfs-tools/root/.ssh/authorized_keys''
-(cela peut être une copie de ''~/.ssh/authorized_keys'', par exemple).+(cela peut être une copie de ''~/.ssh/authorized_keys'', par exemple à condition que vous ayez copié votre clé publique dans ce fichier).
  
 ==== À partir de stretch (debian 9) ==== ==== À partir de stretch (debian 9) ====
Ligne 68: Ligne 68:
  
 //Note : La configuration décrite ci-après est réalisée dans le fichier ''/etc/initramfs-tools/initramfs.conf'', mais pour éviter des surprises vis à vis des mises à jour Debian, il serait préférable d'utiliser un autre fichier comme par exemple ''/etc/initramfs-tools/conf.d/dropbear-fde-unlock''.// //Note : La configuration décrite ci-après est réalisée dans le fichier ''/etc/initramfs-tools/initramfs.conf'', mais pour éviter des surprises vis à vis des mises à jour Debian, il serait préférable d'utiliser un autre fichier comme par exemple ''/etc/initramfs-tools/conf.d/dropbear-fde-unlock''.//
 +
 +Pour savoir quelle partition a été chiffrée, utiliser la commande ''lsblk''.
  
 ==== Avec Jessie (debian 8) ==== ==== Avec Jessie (debian 8) ====
 +Certaines des informations demandées ci-après (comme l'adresse IP) et qui sont spécifiques à votre machine se trouvent dans le fichier ''/etc/network/interfaces'', s'y référer donc.
  
 Éditer le fichier ''/etc/initramfs-tools/initramfs.conf'' et ajouter les lignes suivantes : Éditer le fichier ''/etc/initramfs-tools/initramfs.conf'' et ajouter les lignes suivantes :
Ligne 75: Ligne 78:
     # enable dropbear explicitly     # enable dropbear explicitly
     DROPBEAR=y     DROPBEAR=y
 +
 +//(ligne ci-dessus à ajouter si non déjà présente dans le fichier)//
  
     # network configuration.     # network configuration.
Ligne 81: Ligne 86:
     DEVICE=eth0     DEVICE=eth0
     IP=111.222.333.444::111.222.333.254:255.255.255.0::eth0:off     IP=111.222.333.444::111.222.333.254:255.255.255.0::eth0:off
 +Notez que les valeurs ''<local_IP>'' et suivantes doivent être remplacées par les vôtres et que la présence de ''::'' avant ''<network_interface>'' permet d'omettre la valeur de ''<hostname>'' par facilité.
  
 Reconstruire l'initramfs (à faire après chaque modification) Reconstruire l'initramfs (à faire après chaque modification)
Ligne 130: Ligne 136:
 ===== Connexion à la machine ===== ===== Connexion à la machine =====
  
 +  * seul l'utilisateur ''root'' peut se connecter à dropbear
 +  * il est possible de remplacer le message ''FDE passphrase'' par le message que l'on souhaite
 ==== Avec Jessie (debian 8) ==== ==== Avec Jessie (debian 8) ====
  
Ligne 137: Ligne 145:
 Explications : Explications :
  
-  * L'utilitaire ''/lib/cryptsetup/askpass'' permet de demander une phrase de passe+  * L'utilitaire ''/lib/cryptsetup/askpass'' permet de demander une phrase de passe que l'on peut personnaliser (en remplaçant '''FDE Passphrase : ' ''  par le message souhaité)
   * La phrase de passe est écrite dans le [[https://fr.wikipedia.org/wiki/Tube_nomm%C3%A9|fifo]] ''/lib/cryptsetup/passfifo'' (sur le serveur) au sein duquel le programme de déverrouillage du disque la lit ;   * La phrase de passe est écrite dans le [[https://fr.wikipedia.org/wiki/Tube_nomm%C3%A9|fifo]] ''/lib/cryptsetup/passfifo'' (sur le serveur) au sein duquel le programme de déverrouillage du disque la lit ;
   * Un fichier //KnownHost// spécifique est utilisé car la clé ssh du serveur diffère entre l'initramfs et le root filesystem.   * Un fichier //KnownHost// spécifique est utilisé car la clé ssh du serveur diffère entre l'initramfs et le root filesystem.
Ligne 191: Ligne 199:
 ===== Complément et alternative ===== ===== Complément et alternative =====
  
 +==== Activer l'output de Grub sur la console ====
 +
 +Dans certains cas, si vous utiliser du SoL (Serial over Lan) par exemple, et que vous avez besoin de debugger la séquence de boot, il peut-être utile de rediriger l'output de grub vers la console.
 +
 +Voici comment faire:
 +
 +<file>
 +vi /etc/default/grub
 +</file>
 +
 +    GRUB_CMDLINE_LINUX="ip=111.222.333.444::111.222.333.254:255.255.255.0::eth0:off console=ttyS1,9600"
 +
 +Ne pas oublier: 
 +
 +    update-grub
 +
 +==== Nommage des interfaces réseau ====
 +
 +En prévention de l'arrivée de la version GNU/Linux Debian (Buster), actuellement en stable sur stretch, vous pourriez avoir des surprises quant à la déclaration du nom de votre interface réseau. 
 +Buster, implémente les [[https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/|PredictableNetworkInterfaceNames]]. De fait, si vous avez suivi ce tutoriel, vous aurez renseigné "eth0" dans la configuration de grub. 
 +
 +Et donc, nous vous conseillions de désactiver, provisoirement ou non, le renommage des interfaces. 
 +
 +Cela ce fait par un argument à passer au kernel au moment du boot.
 +
 +<file>
 +vi /etc/default/grub
 +</file>
 +
 +    GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0"
 +
 +De fait, le nommage en eth0 sera conservé.
 +
 +Ne pas oublier: 
 +
 +    update-grub
 ==== Sécurisation de dropbear-initramfs ==== ==== Sécurisation de dropbear-initramfs ====
  
Ligne 251: Ligne 295:
 Il est important de se rappeler les limites d'une telle méthode. Si un attaquant obtient un accès root au système, il peut obtenir la clé de chiffrement (''dmsetup table --showkeys'') et n'a plus besoin de découvrir la phrase de passe. Il est également possible de récupérer la clé de chiffrement en mémoire via [[https://citp.princeton.edu/research/memory/|dump de la mémoire après redémarrage]]. Il est important de se rappeler les limites d'une telle méthode. Si un attaquant obtient un accès root au système, il peut obtenir la clé de chiffrement (''dmsetup table --showkeys'') et n'a plus besoin de découvrir la phrase de passe. Il est également possible de récupérer la clé de chiffrement en mémoire via [[https://citp.princeton.edu/research/memory/|dump de la mémoire après redémarrage]].
  
-Dans tous les cas, ça rend l'opération plus compliqué que simplement partir avec la machine, donc c'est bien mais ça a ses limites.+Dans tous les cas, cela rend l'opération plus compliquée que simplement partir avec la machine, donc c'est bien mais ça a ses limites.
  
 À noter aussi, [[http://www.recompile.se/mandos|Mandos]] peut servir à automatiser l'opération. À noter aussi, [[http://www.recompile.se/mandos|Mandos]] peut servir à automatiser l'opération.
 +
 +===== Ajouter, modifier et supprimer des phrases de passes  =====
 +
 +Il est possible d'avoir jusqu'à 8 phrases de passes différentes pour la même partition chiffrée.
 +
 +==== Détecter la partition chiffrée avec lsblk ====
 +<code>
 +# lsblk
 +NAME                    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
 +fd0                       2:   1    4K  0 disk  
 +sda                       8:   0   20G  0 disk  
 +├─sda1                    8:1    0  243M  0 part  /boot
 +├─sda2                    8:2    0    1K  0 part  
 +└─sda5                    8:5    0 19.8G  0 part  
 +  └─sda5_crypt          254:0    0 19.8G  0 crypt 
 +    ├─foo--vg-root      254:1    0  3.5G  0 lvm   /
 +    ├─foo--vg-var       254:   0    2G  0 lvm   /var
 +    ├─foo--vg-swap_1    254:3    0    1G  0 lvm   [SWAP]
 +    ├─foo--vg-tmp       254:   0  364M  0 lvm   /tmp
 +    └─foo--vg-home      254:5    0   13G  0 lvm   /home
 +sr0                      11:0    1  290M  0 rom   
 +sr1                      11:1    1 1024M  0 rom 
 +</code>
 +
 +La partition chiffrée est donc ''sda5''. ''sda5_crypt'' est la partition obtenue suite au **déchiffrement** de la partition chiffrée.
 +
 +On peut vérifier que la partition est bien une partition Luks avec la commande suivante :
 +<code>
 +# cryptsetup -v isLuks /dev/sda5
 +Command successful.
 +
 +# cryptsetup -v isLuks /dev/sda1
 +Device /dev/sda1 is not a valid LUKS device.
 +Command failed with code 22: Invalid argument
 +
 +# cryptsetup -v isLuks /dev/mapper/sda5_crypt
 +Device /dev/mapper/sda5_crypt is not a valid LUKS device.
 +Command failed with code 22: Invalid argument
 +</code>
 +
 +Toutes les commandes ''cryptsetup'' sont donc à exécuter sur la partition ''/dev/sda5''.
 +
 +==== Pour ajouter une phrase de passe : ====
 +
 +<code>
 +# cryptsetup -v luksAddKey /dev/sda5
 +Enter any existing passphrase: *********
 +Key slot 1 unlocked.
 +Enter new passphrase for key slot: *********
 +Verify passphrase: *********
 +Key slot 1 unlocked.
 +Command successful.
 +</code>
 +
 +==== Pour supprimer une phrase de passe : ====
 +
 +<code>
 +# cryptsetup -v luksRemoveKey /dev/sda5
 +Enter passphrase to be deleted: ******
 +Key slot 0 unlocked.
 +Key slot 0 selected for deletion.
 +Command successful.
 +</code>
 +
 +Dans le cas où la passphrase n'existerait pas ou serait incorrecte:
 +<code>
 +# cryptsetup -v luksRemoveKey /dev/sda5
 +Enter passphrase to be deleted:
 +No key available with this passphrase.
 +Command failed with code 1: Operation not permitted
 +</code>
 +
 +==== Pour modifier une phrase de passe : ====
 +
 +  - Ajouter une nouvelle phrase de passe.
 +  - :!: rebooter pour tester la nouvelle phrase de passe (ignorez cette étape à vos risques et périls)
 +  - Supprimer l'ancienne phrase de passe.
debian-fde-dropbear.1514736350.txt.gz · Dernière modification : 2017/12/31 16:05 de aurelien