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
tutoriel:securiser_ubuntu_avec_peripherique_externe [Le 10/05/2013, 22:02] – [Etape 4 : Paramétrer le système] malabarthtutoriel:securiser_ubuntu_avec_peripherique_externe [Le 11/09/2022, 12:23] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art
Ligne 1: Ligne 1:
 +{{tag> sécurité tutoriel}}
 +
 ====== Gérer la sécurité d'une installation ubuntu avec une clé usb ====== ====== Gérer la sécurité d'une installation ubuntu avec une clé usb ======
 Ici nous verrons comment paramétrer le verrouillage/déverrouillage d'une installation d'Ubuntu avec une clé USB. Ici nous verrons comment paramétrer le verrouillage/déverrouillage d'une installation d'Ubuntu avec une clé USB.
  
-===== Décrypter automatiquement une partition cryptée au démarrage =====+ 
 +===== Déchiffrer automatiquement une partition chiffrée au démarrage =====
  
 Si vous possédez une installation d'Ubuntu sur partition LUKS (Linux Unified Key Setup) et que vous en avez marre de taper le mot de passe à chaque démarrage, vous pouvez paramétrer une clé usb afin de vous authentifier automatiquement si cette dernière est branchée! Si vous possédez une installation d'Ubuntu sur partition LUKS (Linux Unified Key Setup) et que vous en avez marre de taper le mot de passe à chaque démarrage, vous pouvez paramétrer une clé usb afin de vous authentifier automatiquement si cette dernière est branchée!
  
-<note warning>Il est plus que conseillé de faire un backup de la clé, l'histoire de pas tout devoir reparamétrer si perte de la clé. 
-De plus, Il est conseillé d'avoir une alternative de réparation (type livecd ou live usb) afin de pouvoir réparer le démarrage en cas de soucis!</note> 
 Si cette dernière n'est pas branchée, le mot de passe vous sera demandé. Si cette dernière n'est pas branchée, le mot de passe vous sera demandé.
  
 +
 +<note warning>Il est plus que conseillé de faire un backup de la clé, l'histoire de pas tout devoir reparamétrer si perte de la clé.
 +De plus, Il est conseillé d'avoir une alternative de réparation (type livecd ou live usb) afin de pouvoir réparer le démarrage en cas de soucis!</note>
 ==== Prérequis ==== ==== Prérequis ====
  
Ligne 27: Ligne 31:
 </note> </note>
 Créez une partition vierge de type ext4[3/2] d'au moins 1Mo sur le support. Utilisez **[[apt>gparted]]** par exemple. Créez une partition vierge de type ext4[3/2] d'au moins 1Mo sur le support. Utilisez **[[apt>gparted]]** par exemple.
 +
 +Vous pouvez aussi n'utiliser qu'une grande partition.
 <note> <note>
-Fat32 devrait fonctionner aussimais non testé. Vous pouvez aussi utiliser une seule partition sur toute la clé. +Systèmes de fichiers testés: Ext4/3/2, Fat32, Ntfs
-J'utilise personnellement une petite partition de 1Mo sur ma clé en ext4, puis le reste de la clé en fat32 pour compatibilité Windows.+
 </note> </note>
 <note important> <note important>
Ligne 57: Ligne 62:
 umount /mnt/usb umount /mnt/usb
 </code> </code>
- 
  
 ==== Etape 2 : Préparer la séquence de démarrage ==== ==== Etape 2 : Préparer la séquence de démarrage ====
 +
 +<note important>
 +Attention, si vous souhaitez utiliser ntfs, une mise à jour du fichier bootscript est disponible! (Etape 4) [2013/09/26]
 +
 +De plus, assurez-vous que le module ntfs-3g est bien présent dans **/etc/initramfs-tools/modules**, et que vous avez [[:tutoriel:comment_installer_un_paquet|Installé le paquet]] **[[apt>ntfs-3g|ntfs-3g]]**
 +
 +</note>
  
 Editez le fichier /etc/initramfs-tools/modules avec les droits root Editez le fichier /etc/initramfs-tools/modules avec les droits root
Ligne 76: Ligne 87:
 dm_mod dm_mod
 dm_crypt dm_crypt
 +ntfs-3g
 </code> </code>
   * Si vous utilisez une clé USB:   * Si vous utilisez une clé USB:
Ligne 88: Ligne 100:
 dm_mod dm_mod
 dm_crypt dm_crypt
 +ntfs-3g
 </code> </code>
  
 Ajoutez la nouvelle configuration au système. Ajoutez la nouvelle configuration au système.
-<code>update-initramfs -v -u</code> +<code>sudo update-initramfs -v -u</code>
- +
 ==== Etape 3 : Paramétrer le démarrage ==== ==== Etape 3 : Paramétrer le démarrage ====
- 
-Redémarrez, et lorsque le système vous demandera de rentrer votre mot de passe, rentrez 3 fois un mot de passe erroné.  
-Vous atterrirez sur une console avec marqué 
-<code> 
-(initramfs) 
-</code> 
  
 Montez la clé Montez la clé
-<code>mkdir /usb +<code>mkdir /mnt/usb 
-mount /dev/sdb1 /usb</code>+mount /dev/sdb1 /mnt/usb</code>
 Ajoutez le fichier d'authentification aux clé connues Ajoutez le fichier d'authentification aux clé connues
-<code>cryptsetup luksAddKey /dev/sda2  /usb/.authkey</code>+<code>cryptsetup luksAddKey /dev/sda2  /mnt/usb/.authkey</code>
 Démontez la clé et redémarrez Démontez la clé et redémarrez
-<code>umount /usb+<code>umount /mnt/usb
 sync sync
 reboot</code> reboot</code>
- 
 ==== Etape 4 : Paramétrer le système ==== ==== Etape 4 : Paramétrer le système ====
  
 Redémarrez normalement. Redémarrez normalement.
  
-Notez l'UUID (identifiant de partition) de la partition obtenu par cette commande:+Notez l'UUID (identifiant de partition) de la partition contenant la clé (/dev/sdb1), obtenu par cette commande:
  
-(Nous prendrons ici **9645b6cb-80db-457b-8d46-fbb9fd33dxxb**. N'oubliez pas de le remplacer par le votre dans les commandes suivantes) +(Nous prendrons ici **4645b6cb-80db-457b-8d46-fbb9fd33dxxb**. N'oubliez pas de le remplacer par le votre dans les commandes suivantes) 
-<code>blkid /dev/sdb1</code>+<code>sudo blkid /dev/sdb1</code>
  
 Éditez le fichier /etc/crypttab avec les droits root: Éditez le fichier /etc/crypttab avec les droits root:
Ligne 126: Ligne 130:
 Vous devriez avoir quelque chose du genre: Vous devriez avoir quelque chose du genre:
 <code>sda2_crypt          UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb       none                luks</code> <code>sda2_crypt          UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb       none                luks</code>
-Dupliquez la ligne et changez le **none** par **UUID=9645b6cb-80db-457b-8d46-fbb9fd33dxxb:.authkey**, et rajoutez **,tries=3,keyscript=/usr/local/sbin/bootkeyscript** à la fin de la ligne+**9df4f-878ytju-ilk45q-gfbb9f-d33dxxb** est l'UUID de la partition cryptée 
 + 
 +Dupliquez la ligne et changez le **none** par **UUID=4645b6cb-80db-457b-8d46-fbb9fd33dxxb:.authkey**, et rajoutez **,tries=3,keyscript=/usr/local/sbin/bootkeyscript** à la fin de la ligne
  
 Soit après **luks** dans notre exemple. Attention à la virgule qui est importante, et à ne pas avoir de duplicata dans la ligne. Soit après **luks** dans notre exemple. Attention à la virgule qui est importante, et à ne pas avoir de duplicata dans la ligne.
Ligne 132: Ligne 138:
  
 Notre fichier final ressemblera donc à quelque chose du genre: Notre fichier final ressemblera donc à quelque chose du genre:
-<code>sda2_crypt          UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb       UUID=9645b6cb-80db-457b-8d46-fbb9fd33dxxb:.authkey                luks,tries=3,keyscript=/usr/local/sbin/bootkeyscript+<code>sda2_crypt          UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb       UUID=4645b6cb-80db-457b-8d46-fbb9fd33dxxb:.authkey                luks,tries=3,keyscript=/usr/local/sbin/bootkeyscript
 sda2_crypt          UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb       none                                                                                                   luks</code> sda2_crypt          UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb       none                                                                                                   luks</code>
  
-Téléchargez [[https://dl.dropboxusercontent.com/u/11154643/bootkeyscript| ce script]] et placez le dans **/usr/local/sbin/bootkeyscript** à l'aide des droits root.+Téléchargez [[http://iutinfo2000.free.fr/Linux/bootkeyscript| ce script]] et placez le dans **/usr/local/sbin/bootkeyscript** à l'aide des droits root.
 <code>sudo cp ~/Téléchargements/bootkeyscript /usr/local/sbin/bootkeyscript</code> <code>sudo cp ~/Téléchargements/bootkeyscript /usr/local/sbin/bootkeyscript</code>
 (N'oubliez pas de changez l'emplacement du fichier téléchargé si **~/Téléchargements/bootkeyscript** n'est pas sa localisation) (N'oubliez pas de changez l'emplacement du fichier téléchargé si **~/Téléchargements/bootkeyscript** n'est pas sa localisation)
Ligne 144: Ligne 150:
 Réactualisez la séquence de démarrage: Réactualisez la séquence de démarrage:
 <code>update-initramfs -v -u</code> <code>update-initramfs -v -u</code>
-Redémarrez et profitez! ;)+Redémarrez et profitez! 8-)
  
-====== Sources ======+ 
 +<note astuce> 
 +Si vous souhaitez débguer et afficher les messages de ce que fait le script, modifier la ligne **debug=0** en **debug=1** du fichier **/usr/local/sbin/bootkeyscript** 
 + 
 +Puis réactualisez la séquence de démarrage: 
 +<code>update-initramfs -v -u</code> 
 +</note> 
 +==== En cas de soucis ==== 
 + 
 +Si une erreur apparaît au démarrage indiquant quelque chose du genre "UUID=nf14k7-ui56gf-wzdf4gt1-yj3-61sd not found"
 + 
 +Et que vous tombez sur la console 
 +<code>(initramfs)</code> 
 + 
 +Alors le fichier **/etc/crypttab** n'est pas correct. 
 +La procédure est comme ceci: 
 +  * Démarrez sur un live cd ou live usb 
 +  * Identifiez les emplacements de la partition de boot et la partition root avec gparted ici respectivement **/dev/sda1** et **/dev/sda2** 
 +  * Identifiez l'UUID de la partitino cryptée par un: 
 +<code>sudo cryptsetup luksUUID /dev/sda2</code> 
 +  * créez le répertoire /tmproot: 
 +<code>mkdir /tmproot</code> 
 +  * montez les deux partitions: 
 +<code>cryptsetup luksOpen /dev/sda2 tmproot 
 +mount /dev/mapper/tmproot /tmproot 
 +mount /dev/sda1 /tmproot/boot</code> 
 +  * Chrootez-vous dans le système: 
 +<code>chroot /tmproot</code> 
 +  * [[:tutoriel:comment_modifier_un_fichier|Modifiez]] le fichier **/etc/crypttab**, et vérifiez que l'UUID de montage est bien celui de la partition cryptée. 
 +  * Nous aurons donc, pour l'optimal: 
 +<code>sda2_crypt   UUID=uuid-de-votre-partition-cryptee   none   luks</code> 
 + 
 +<note warning>ATTENTION, **sda2_crypt** doit correspondre avec le nom de la partition montée en root listée dans le fichier /etc/fstab! 
 + 
 +Sinon quoi, la partition sera bien décryptée au démarrage, mais absolument pas montée dans **/**, ce qui ne permettra bien évidement pas le démarrage! 
 +Logiquement, vous n'avez pas à y toucher à n'importe quel moment du tutoriel. Seul le "none" et la partie "luks" sont à modifier dans l'étape 4!</note> 
 + 
 +  * Enregistrez et réactualisez la configuration: 
 +<code>update-initramfs -v -u</code> 
 +  * Redemarrez 
 +===== Verrouiller / Déverrouiller l'écran avec une clé USB ===== 
 +==== Identifier l'ID de sa clé ==== 
 + 
 +Notez l'identification de la clé, obtenu par cette commande: 
 +<code>lsusb</code> 
 +Vous devrez obtenir une résultat similaire: 
 +<code>Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub 
 +Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub 
 +Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
 +Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
 +Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
 +Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub 
 +Bus 001 Device 003: ID 114b:085b PNY  
 +Bus 002 Device 004: ID 035f:0945 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth</code> 
 + 
 +Nous choisirons ici la clé "PNY"
 +Retenez donc la section ID qui précède le nom du materiel. Ici: 
 + 
 +**ID 114b:085b PNY** 
 + 
 +==== Paramétrer et installer le script ==== 
 + 
 +Installez **[[apt>xscreensaver]]** (requis) 
 +<code>sudo apt-get install xscreensaver</code> 
 + 
 +Créez un script dans le répertoire **~/** (votre home) appelé **.autoLock** 
 +Éditez avec gedit: 
 +<code>touch ~/.autoLock 
 +gedit ~/.autoLock</code> 
 +Et on copie/colle le code suivant: 
 +<code>#!/bin/bash 
 +# A simple shell to lock / unlock your Desktop 
 +# Ubuntu 
 +# ---------------------------------------------------------------------------- 
 +# Original Script by Echowrap http://echowarp.neomenlo.org 
 +# Modified by Vidyadhar D S <http://www.techienote.com/> 
 +# vidyadhards@gmail.com techienote.com@gmail.com 
 +# Translated and corrected by malabarth malabarth@gmail.com 
 +# ---------------------------------------------------------------------------- 
 +#Replace with the ID of your USB device 
 +id="ID 114b:085b PNY" 
 +  
 +#runs every 2 seconds 
 +for ((i=0; i<=30; i++)) 
 +do 
 +if [ -z "`lsusb | grep "$id"`"
 +then 
 +  
 +    echo "Clé d'authentification absente" 
 +    if [ -n "`DISPLAY=:0.0 gnome-screensaver-command --query | grep "est actif"`"
 +    then  
 +     
 +    if [ -e /tmp/autoUnlock.lock ] 
 +    then 
 +    rm /tmp/autoUnlock.lock 
 +  
 +fi 
 +  
 +elif [ -e /tmp/autoUnlock.lock ] 
 +then 
 +  
 +    DISPLAY=:0.0 notify-send -t 5000 --icon=dialog-info "Clé d'authentification deconnectée" "A bientôt!" 
 +    DISPLAY=:0.0 gnome-screensaver-command --lock 
 +    rm /tmp/autoUnlock.lock 
 +  
 +fi 
 +else 
 +  
 +    echo "Clé d'authentification connectée" 
 +    if [ ! -e /tmp/autoUnlock.lock ] 
 +    then 
 +     
 +    DISPLAY=:0.0 gnome-screensaver-command --deactivate 
 +    DISPLAY=:0.0 notify-send -t 5000 --icon=dialog-info "Clé d'authentification connectée" "Bienvenue!" 
 +    touch /tmp/autoUnlock.lock 
 +     
 +    fi 
 +  
 +fi 
 +sleep 2 
 +done</code> 
 + 
 +**ATTENTION** On n'oubliera pas de remplacer **ID 114b:085b PNY** par votre **ID** 
 + 
 +Puis donnez-lui les droits d'execution: 
 +<code>chmod +x .autoLock</code> 
 +==== Ajouter aux tâches cron ==== 
 + 
 +<code>crontab -u votrenomdutilisateur -e</code> 
 +On ajoute la ligne suivante: 
 +<code>* * * * * bash /home/votrenomdutilisateur/.autoLock & >/dev/null 2>&1</code> 
 +  * Enregistrez (ctrl + o) 
 +  * Quittez (ctrl + x) 
 + 
 +Redémarrez cron: 
 +<code>sudo /etc/init.d/cron restart</code> 
 + 
 +Voila, enlevez votre clé, l'écran devrait se verrouiller. 
 +Remettez-là, L'écran se déverrouillera! 
 + 
 +Si pas de clé, le mot de passe sera demandé comme un déverrouillage normal. 
 + 
 + 
 +==== En cas de soucis ==== 
 +Si problème il y a, loguez vous en console tty1 (ctrl + alt + 1), et déplacez le fichier exécutable: 
 +<code>mv .autoLock .autoLock.bak</code> 
 +Puis redémarrez! N'oubliez pas de supprimer la tâche de cron tab si vous ne souhaitez plus cette fonctionnalité! 
 +<code>crontab -u votrenomdutilisateur -e</code> 
 + 
 +===== Sources & Contributeurs =====
 [[http://web.archive.org/web/20100110234521/http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre]] [[http://web.archive.org/web/20100110234521/http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre]]
 +
 +[[http://www.techienote.com/2011/03/lock-unlock-ubuntu-desktop-using-usb-drive.html]]
 +
 +----
 +
 +//Contributeurs: malabarth//