Différences
Ci-dessous, les différences entre deux révisions de la page.
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 aussi, mais 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// |