Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tutoriel:securiser_ubuntu_avec_peripherique_externe [Le 10/05/2013, 21:58]
malabarth créée
tutoriel:securiser_ubuntu_avec_peripherique_externe [Le 11/09/2022, 12:23] (Version actuelle)
moths-art 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)
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 +**9df4f-878ytju-ilk45q-gfbb9f-d33dxxb** est l'UUID de la partition cryptée 
-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 duplicatat ​dans la ligne.+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. 
  
 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)
  
 Donnez-lui les droits d’exécution:​ Donnez-lui les droits d’exécution:​
Ligne 143: 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//
  • tutoriel/securiser_ubuntu_avec_peripherique_externe.1368215908.txt.gz
  • Dernière modification: Le 10/05/2013, 21:58
  • par malabarth