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/23 14:13] – [Connexion à la machine] aureliendebian-fde-dropbear [2018/12/14 11:02] (Version actuelle) – [Complément et alternative] kippix
Ligne 11: Ligne 11:
   * [[https://github.com/lhost/pkg-cryptsetup-debian/blob/master/debian/README.remote|Documentation officielle sur le déchiffrement distant]]   * [[https://github.com/lhost/pkg-cryptsetup-debian/blob/master/debian/README.remote|Documentation officielle sur le déchiffrement distant]]
   * [[http://wiki.faimaison.net/doku.php?id=projets:wifi:ateliers:4_raid_luks_lvm|Notes sur install RAID + LVM + FDE chez FAImaison]]   * [[http://wiki.faimaison.net/doku.php?id=projets:wifi:ateliers:4_raid_luks_lvm|Notes sur install RAID + LVM + FDE chez FAImaison]]
-  * [[https://rootlogin.ch/2015/04/27/howto-install-debian-jessie-with-encrypted-lvm-and-software-raid-on-a-remote-server/|How-To chez rootlogin.ch]]+  * [[https://rootlogin.ch/howto_en/installing_debian_jessie_with_encrypted_lvm_and_softraid/|How-To chez rootlogin.ch]]
   * [[https://projectgus.com/2013/05/encrypted-rootfs-over-ssh-with-debian-wheezy/|How-To chez projetgus.com]]   * [[https://projectgus.com/2013/05/encrypted-rootfs-over-ssh-with-debian-wheezy/|How-To chez projetgus.com]]
 +  * [[https://sowhatisthesolution.wordpress.com/2016/03/20/unlock-luks-via-ssh-in-debian/|How-To chez sowhatisthesolution.wordpress.com (Unlock LUKS via SSH in Debian)]] 
 +  * [[https://www.theo-andreou.org/?p=1579|How-To chez How to theo-andreou.org (remotely decrypt a LUKS encrypted)]] 
 +  * [[https://hamy.io/blog/remote-unlocking-of-luks-encrypted-root-in-ubuntu-debian/|How-To chez hamy.io (Remote unlocking of LUKS-encrypted root in Ubuntu/Debian)]]
  
 ===== Installation de dropbear ===== ===== Installation de dropbear =====
Ligne 32: 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) ====
  
-L'installation de ''dropbear'' entraine l'installation d'un paquet complémentaire ''dropbear-initramfs''.+L'installation de ''dropbear'' entraîne l'installation d'un paquet complémentaire ''dropbear-initramfs''.
  
 Les clés autorisées à se connecter sur l'initramfs ne sont plus générées automatiquement, elles seront à ajouter dans ''/etc/dropbear-initramfs/authorized_keys''. C'est pourquoi à la fin de l'installation ou si l'on reconstruit l'initramfs avant d'avoir ajouter les clés, on a un message nous indiquant : Les clés autorisées à se connecter sur l'initramfs ne sont plus générées automatiquement, elles seront à ajouter dans ''/etc/dropbear-initramfs/authorized_keys''. C'est pourquoi à la fin de l'installation ou si l'on reconstruit l'initramfs avant d'avoir ajouter les clés, on a un message nous indiquant :
Ligne 47: Ligne 49:
 //Note : Cette étape n'est pas obligatoire sur toutes les machines, le pilote de la carte réseau étant déjà chargé dans certains cas. // //Note : Cette étape n'est pas obligatoire sur toutes les machines, le pilote de la carte réseau étant déjà chargé dans certains cas. //
  
-Pour cela il faut detecter le pilote avec la commande+Pour celail faut détecter le pilote avec la commande
  
     # "e*" permet de fonctionner avec l'ancien (eth*) et le nouveau (enps*) nommage des interfaces.     # "e*" permet de fonctionner avec l'ancien (eth*) et le nouveau (enps*) nommage des interfaces.
Ligne 64: Ligne 66:
  
 ===== Configuration de l'initramfs ===== ===== Configuration de l'initramfs =====
 +
 +//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.confet ajouter les lignes suivantes :+Éditer le fichier ''/etc/initramfs-tools/initramfs.conf'' et ajouter les lignes suivantes :
  
     # 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 77: 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 91: Ligne 101:
 ==== À partir de stretch (debian 9) ==== ==== À partir de stretch (debian 9) ====
  
-Le fonctionnement est identique, à ceci près, qu'il n'est pas utile d'ajouter la ligne :+Le fonctionnement est identique, à ceci près 
 + 
 +=== Activer dropbear dans l'initramfs === 
 + 
 +''dropbear'' est activé par défaut, il n'est donc pas nécessaire d'ajouter la ligne suivante au fichier ''/etc/initramfs-tools/initramfs.conf'' :
  
     # enable dropbear explicitly     # enable dropbear explicitly
     DROPBEAR=y     DROPBEAR=y
  
 +=== Forcer l'extinction de l'interface réseau ===
 +
 +Il n'est plus utile de forcer //manuellement// l'extinction de l'interface réseau, car c'est désormais le comportement par défaut (voir l'option ''IFDOWN'' dans ''/etc/dropbear-initramfs/config'').
 +
 +Extrait du changelog de la version 2015.68-1 de dropbear :
 +
 +    Bring down interfaces and flush IP routes and addresses before exiting
 +    the ramdisk, to avoid dirty network configuration in the regular kernel.
 +    (Closes: #715048, #720987, #720988.)  The interfaces considered are
 +    those matching the $DROPBEAR_IFDOWN shell pattern (default: '*'); the
 +    special value 'none' keeps all interfaces up and preserves routing
 +    tables and addresses.
 ==== Variante ===== ==== Variante =====
 ''DROPBEAR=y'' et ''DEVICE=eth0'' étant les valeurs par défaut, il est possible de définir la configuration réseau via le Grub. Pour cela il faut éditer le fichier ''/etc/default/grub'' et ajouter la ligne suivante ''DROPBEAR=y'' et ''DEVICE=eth0'' étant les valeurs par défaut, il est possible de définir la configuration réseau via le Grub. Pour cela il faut éditer le fichier ''/etc/default/grub'' et ajouter la ligne suivante
Ligne 110: 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 117: 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 123: Ligne 151:
 Notez qu'il est possible de se connecter simplement en ssh à la machine (''ssh -o UserKnownHostsFile=~/.ssh/machine_known_hosts root@machine'') puis de saisir la commande ''/lib/cryptsetup/askpass 'FDE Passphrase : ' > /lib/cryptsetup/passfifo'' pour entrer sa phrase de passe. Notez qu'il est possible de se connecter simplement en ssh à la machine (''ssh -o UserKnownHostsFile=~/.ssh/machine_known_hosts root@machine'') puis de saisir la commande ''/lib/cryptsetup/askpass 'FDE Passphrase : ' > /lib/cryptsetup/passfifo'' pour entrer sa phrase de passe.
    
-=== À partir de stretch (debian 9) ===+==== À partir de stretch (debian 9) ====
  
-On peut toujours se connecter avec la méthode décrite, ci-dessus, mais désormais le paquet cryptsetup inclus un scipt de déverrouillage complémentaire (cf. ''/usr/share/cryptsetup/initramfs/bin/cryptroot-unlock'' et ''/usr/share/initramfs-tools/hooks/cryptroot-unlock''), que l'on peut définir comme [[https://man.openbsd.org/sshd.8#command=%22command%22|unique commande proposée à la connexion]].+On peut toujours se connecter avec la méthode décrite, ci-dessus, mais désormais le paquet cryptsetup inclut un script de déverrouillage complémentaire (cf. ''/usr/share/cryptsetup/initramfs/bin/cryptroot-unlock'' et ''/usr/share/initramfs-tools/hooks/cryptroot-unlock''), que l'on peut définir comme [[https://man.openbsd.org/sshd.8#command=%22command%22|unique commande proposée à la connexion]].
  
 Pour cela, on ajoute la clé ssh autorisée à se connecter au boot, avec les commandes suivante : Pour cela, on ajoute la clé ssh autorisée à se connecter au boot, avec les commandes suivante :
Ligne 135: Ligne 163:
 ou avec votre éditeur de texte préféré. ou avec votre éditeur de texte préféré.
  
-Dès lors pour se connecter il suffit de lancer :+Dès lorspour se connecteril suffit de lancer :
  
     ssh -t -o UserKnownHostsFile=~/.ssh/machine_known_hosts root@machine     ssh -t -o UserKnownHostsFile=~/.ssh/machine_known_hosts root@machine
Ligne 160: Ligne 188:
  
 //À noter qu'une fois la passphrase entrée, la connexion ssh est coupée étant donnée que la machine se lance et se déchiffre.// //À noter qu'une fois la passphrase entrée, la connexion ssh est coupée étant donnée que la machine se lance et se déchiffre.//
-==== Et En IPv6 ? ====+ 
 +==== Et en IPv6 ? ====
  
 Le serveur SSH dans l'initrd écoute également par défaut en IPv6. Cela signifie : Le serveur SSH dans l'initrd écoute également par défaut en IPv6. Cela signifie :
Ligne 167: Ligne 196:
   * En étant sur le même LAN que votre machine, vous pouvez utiliser l'adresse [[https://fr.wikipedia.org/wiki/Adresse_IPv6#Cat.C3.A9gories_d.27adresses|link-local]] de votre machine pour la déverrouiller.   * En étant sur le même LAN que votre machine, vous pouvez utiliser l'adresse [[https://fr.wikipedia.org/wiki/Adresse_IPv6#Cat.C3.A9gories_d.27adresses|link-local]] de votre machine pour la déverrouiller.
  
-===== Mise en place avec debian 9 (stretch) ===== 
  
-FIXME Paragraphe en attente de relecture+===== Complément et alternative =====
  
-==== Côté serveur ====+==== Activer l'output de Grub sur la console ====
  
-=== Installation ===+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.
  
-  # apt install dropbear+Voici comment faire:
  
-  * **À noter** : +<file> 
-    * Le paquet ''dropbear-initramfs'' est installé en tant que dépendance. +vi /etc/default/grub 
-    * Le paquet ''busybox'' est lui normalement déjà présent, car installé en tant que dépendance de ''cryptsetup'' (dépendance //Recommends//). Dans le cas contraire, il faut l'installer aussi.+</file>
  
-=== Configuration ===+    GRUB_CMDLINE_LINUX="ip=111.222.333.444::111.222.333.254:255.255.255.0::eth0:off console=ttyS1,9600"
  
-== dropbear ==+Ne pas oublier: 
  
-  * Configuration générale+    update-grub
  
-Avec cette configuration, on se connecte deux fois de suite sur la même ip+port en ssh, mais sur deux serveurs ssh (dropbear, puis openssh-server) identifiés par des clés différentes (côté serveur).+==== Nommage des interfaces réseau ====
  
-Ces clés sont stockées par le client ssh dans ~/.ssh/known_hosts et vérifiées à la connexion.+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
  
-Pour éviter que notre client ssh ne crie à chaque connexion croyant que l'on ne se connecte pas à la même machine, nous allons utiliser des ports de connexion différent pour dropbear et openssh-server.+Et donc, nous vous conseillions de désactiver, provisoirement ou non, le renommage des interfaces
  
-La configuration se fait en éditant le fichier /etc/dropbear-initramfs/config, où l'on va remplacer la ligne :+Cela ce fait par un argument à passer au kernel au moment du boot.
  
-  #DROPBEAR_OPTIONS=+<file> 
 +vi /etc/default/grub 
 +</file>
  
-par+    GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0"
  
-  DROPBEAR_OPTIONS=-p 4748 -w -s -j -k -I 60+De fait, le nommage en eth0 sera conservé. 
 + 
 +Ne pas oublier:  
 + 
 +    update-grub 
 +==== Sécurisation de dropbear-initramfs ====
  
-Ce qui peut être fait en une commandeavec :+À partir de debian 9il y a une configuration spécifique pour le paquet ''dropbear-initramfs''.
  
-  # sed -i.bak 's/#DROPBEAR_OPTIONS=/DROPBEAR_OPTIONS="-p 4748 -s -j -k -I 60"/' /etc/dropbear-initramfs/config+Sans rien y toucher ça marche, mais il est possible d'ajouter quelques options, dans le fichier ''/etc/dropbear-initramfs/config'', pour sécuriser le tout.
  
-Explication des options :+Quelques options extraites de ''man dropbear'' :
 | **-p** | Listen on specified TCP port. | | **-p** | Listen on specified TCP port. |
 | **-s** | Disable password logins. | | **-s** | Disable password logins. |
Ligne 212: Ligne 248:
 | **-I** | Disconnect the session if no traffic is transmitted or received for n seconds. | | **-I** | Disconnect the session if no traffic is transmitted or received for n seconds. |
  
-  * Authentification+La ligne ''#DROPBEAR_OPTIONS='' dans le fichier de config peut donc devenir : ''DROPBEAR_OPTIONS=-w -s -j -k -I 60''.
  
-Le paquet cryptsetup permet l'inclusion d'un script de déverrouillage (cf. ''/usr/share/cryptsetup/initramfs/bin/cryptroot-unlock'' et ''/usr/share/initramfs-tools/hooks/cryptroot-unlock'').+==== Cohabitation dropbear et openssh ====
  
-Avec l'utilisation des options, ci-dessus, l'accès est limité à une connexion avec clé et en complémentcette clé ne pourra utiliser qu'une seule commande, celle permettant de déverrouiller la partition (''cryptroot-unlock'').+Avec la mise en place de dropbeardu point de vue du client SSH on se connecte deux fois de suite sur la même ip+port en ssh, mais sur deux serveurs SSH (dropbear, puis openssh-server) identifiés par des clés différentes (côté serveur).
  
-On ajoute la clé ssh avec les commandes suivante :+Ces clés sont stockées par le client SSH dans ~/.ssh/known_hosts et vérifiées à la connexion.
  
-  # printf "%s" "no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command=\"/bin/cryptroot-unlock\" " > /etc/dropbear-initramfs/authorized_keys+Pour éviter que notre client SSH ne crie à chaque connexion croyant que l'on ne se connecte pas à la même machineil y a //au moins// deux possibilités :
  
-  # cat /home/<username>.ssh/id_rsa.pub >> /etc/dropbear-initramfs/authorized_keys +  * Utiliser un fichier known_hosts spécifiquecomme détaillé au paragraphe [[debian-fde-dropbear#Connexion à la machine|Connexion à la machine]]
- +  * Définir un port de connexion différent pour dropbear en utilisant l'option ''-p'' dans le fichier ''/etc/dropbear-initramfs/config'' (cf. [[debian-fde-dropbear#Sécurisation de dropbear-initramfs|Sécurisation de dropbear-initramfs]]).
-ou avec votre éditeur de texte préféré. +
- +
-== IP statique == +
- +
-Pour qu'une IP de connexion soit disponible dès le boot, nous allons définir une IP statique dans le fichier ''/etc/initramfs-tools/initramfs.conf''+
- +
-  * Identifier le nom de l'interface réseau +
- +
- +
-  $ ip -o a s | cut -d " " -f 2,+
- +
-  * Ajout du pilote de la carte réseau à l'initramfs (au cas où) +
- +
-Remplacer <ifname> par votre interface et lancer : +
- +
-  # grep "DRIVER=" /sys/class/net/<ifname>/device/uevent | cut -d= -f2 >> /etc/initramfs-tools/modules +
- +
-  * Ajout de l'IP statique +
- +
-Éditer le fichier /etc/initramfs-tools/initramfs.conf et remplacer la ligne +
- +
-  DEVICE= +
- +
-par +
- +
-  # network configuration. +
-  # network module is loaded by /etc/initramfs-tools/modules +
-  # IP should be like IP=<local_IP>::<gw_IP>:<netmask>:<hostname>:<network_interface>:off +
-  DEVICE=enp2s0 +
-  IP=111.222.333.444::111.222.333.254:255.255.255.0::enp2s0:off +
- +
- +
-  * Forcer l'extinction de l'interface +
- +
-Enfin, il faut forcer l'extinction de l'interface réseau allumée depuis l'initramfs avant sa réactivation par le système principal. +
- +
-Pour cela, ajouter la règle suivante dans la configuration de l'interface (/etc/network/interfaces) : +
- +
-  pre-up ip addr flush dev enp2s0 +
- +
-Ce qui nous donne : +
- +
-  allow-hotplug enp2s0 +
-  iface enp2s0 inet static +
-      pre-up ip addr flush dev enp2s0 +
-      address 111.222.333.444 +
-      gateway 111.222.333.254 +
-      netmask 255.255.255.0 +
-      dns-nameservers 111.222.333.254 +
- +
- +
-== Reconstruire l'initramfs == +
- +
-Notre configuration est en place, il ne reste plus qu'à reconstruire l'initramfs : +
- +
-  # update-initramfs -u +
- +
-==== Et côté client ==== +
- +
-=== Configuration === +
- +
-SSH permet de définir des configurations par défaut dans le fichier ~/.ssh/config. Dans notre cas, la configuration pourrait être de ce type : +
- +
-  Host host-init +
-      Hostname machine.example.org +
-      User root +
-      Port 4748 +
-      IdentityFile ~/.ssh/id_rsa +
-      IdentitiesOnly yes +
- +
-=== Connexion === +
- +
-A la connexion on se retrouve sur un shell, qui nous demande gentiment la phrase de passe : +
- +
-  Please unlock disk sda2_crypt: +
- +
-Une fois la phrase de passe validée, on se fait déconnecter et le //vrai// démarrage de la machine commence : +
- +
-  cryptsetup: sda2_crypt set up successfully +
-  Shared connection to 111.222.333.444 closed. +
- +
- +
-==== Ressources externes ==== +
- +
-  * [[https://sowhatisthesolution.wordpress.com/2016/03/20/unlock-luks-via-ssh-in-debian/|Unlock LUKS via SSH in Debian]] +
-  * [[https://www.theo-andreou.org/?p=1579|How to remotely decrypt a LUKS encrypted]] +
-  * [[https://projectgus.com/2013/05/encrypted-rootfs-over-ssh-with-debian-wheezy/|Unlocking an encrypted rootfs over ssh]] +
-  * [[https://blog.tincho.org/posts/Setting_up_my_server:_re-installing_on_an_encripted_LVM/|Setting up my server: re-installing on an encripted LVM]] +
-  * [[https://hamy.io/blog/remote-unlocking-of-luks-encrypted-root-in-ubuntu-debian/|Remote unlocking of LUKS-encrypted root in Ubuntu/Debian]]+
  
 ===== Le cas particulier d'une Brique Internet ===== ===== Le cas particulier d'une Brique Internet =====
Ligne 318: Ligne 265:
 Dropbear est déjà installé et utilisé sur les installations chiffrées de la Brique Internet, donc pas besoin de l'installer. Et vis-a-vis des explications précédentes, la brique fonctionne avec u-boot et non grub comme gestionnaire de démarrage. Dropbear est déjà installé et utilisé sur les installations chiffrées de la Brique Internet, donc pas besoin de l'installer. Et vis-a-vis des explications précédentes, la brique fonctionne avec u-boot et non grub comme gestionnaire de démarrage.
  
-Ouvrir ''/etc/initramfs-tools/root/.ssh/authorized_keys'' et y copier le contenu de ''~/.ssh/authorized_keys'' (en espérants que vous aviez précédemment [[https://yunohost.org/#/security_fr|sécurisé la connexion ssh par clé]]) :+Ouvrir ''/etc/initramfs-tools/root/.ssh/authorized_keys'' et y copier le contenu de ''~/.ssh/authorized_keys'' (en espérant que vous aviez précédemment [[https://yunohost.org/#/security_fr|sécurisé la connexion ssh par clé]]) :
    vi /etc/initramfs-tools/root/.ssh/authorized_keys    vi /etc/initramfs-tools/root/.ssh/authorized_keys
  
Ligne 348: 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.1514038397.txt.gz · Dernière modification : 2017/12/23 14:13 de aurelien