Si vous êtes le seul utilisateur du système et que personne ne peut raisonnablement accéder à votre ordinateur sans vos autorisations, vous pouvez simplement bloquer l’accès en utilisant cette commande, conformément à La réponse de Zanna :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
Dans ce cas, le fichier ne peut être lu et / ou écrit que par l'utilisateur root
. Ceci est considéré comme «suffisamment sécurisé» si personne ne peut démarrer votre ordinateur sans votre permission ou soulever votre disque dur. Nous utilisons le root
user dans ce cas, car l'utilisateur root
peut toujours lire les fichiers, même s'ils ne sont pas autorisés. En utilisant l'utilisateur root, nous imposons que seulement un utilisateur puisse y accéder.
Si vous souhaitez marquer le fichier comme inchangeable de quelque manière que ce soit, vous pouvez utiliser l’attribut i
pour marquer le fichier comme étant immuable . Dans ce cas, les autorisations du fichier sont verrouillées et ne peuvent en aucun cas être modifiées. Ainsi, vous pouvez exécuter la commande suivante pour rendre le fichier inchangeable et le protéger contre les modifications de suppression et de permission:
sudo chattr +i /my/secret/file.txt
Si vous souhaitez le modifier, remplacez +i
par -i
pour déverrouiller le fichier temporairement. Pour plus d'informations, consultez la réponse de Rinzwind .
Maintenant, si d’autres personnes ont accès à votre ordinateur (soit un accès à distance sudo
, soit une forme d’accès physique quelconque), cela tombe instantanément en panne. Un attaquant peut utiliser root
powers pour lire votre fichier, insérer un Live USB ou simplement tirer votre disque dur.
Par conséquent, nous devons chiffrer le fichier. Personnellement, je préfère utiliser des "conteneurs de fichiers", de sorte que vous puissiez vous y accrocher et les faire évoluer au besoin. chattr +i
est toujours recommandé pour que le fichier ne soit pas accidentellement supprimé (ou modifié). Enfin, si vous utilisez une image chiffrée, vous pouvez définir des autorisations pour permettre aux autres d’accéder à un sous-ensemble de fichiers très limité lorsque le disque est monté, ce qui le rend utile pour un serveur. Ce guide était initialement disponible ici et a été adapté pour être utilisé ici.
Tout d’abord, vous voulez créer une image disque pour votre usage. Dans cet exemple, nous allons faire 5 Go.
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
Ensuite, nous devons chiffrer votre image:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
Vous aurez le choix ici d'entrer votre mot de passe de cryptage préféré. Une fois cela fait, nous devons exposer le périphérique de bloc brut:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
À l’heure actuelle, nous avons un conteneur de fichiers décrypté, mais il n’ya pas de système de fichiers, et il est inutile. Corrigeons cela:
sudo mkfs.ext4 /dev/mapper/my-secret-device
Maintenant, nous avons besoin d’un endroit pour monter notre nouvelle partition. Dans ce cas, je vais le mettre à /crypt
. Je suis l'utilisateur 1000, donc je vais configurer ma partition pour qu'elle me permette (et root) de lire / écrire.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Maintenant, je peux utiliser mon outil de fichier pour accéder à /crypt
et je peux y stocker tous mes fichiers sensibles. Une fois que j'ai terminé, je dois démonter et rechiffrer ma partition.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Maintenant, je vais définir des partitions appropriées sur mon fichier image, de sorte que seuls I et root puissent y accéder, et qu’il ne puisse plus être modifié.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Chaque fois que je veux ouvrir ce fichier pour le lire, il me suffit d’exécuter ces deux commandes, que je peux facilement aliaser:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
Mes données chiffrées seront disponibles à /crypt
et resteront en lecture seule et accessibles uniquement à moi et à la racine.
Si je veux modifier le fichier, je dois modifier les autorisations puis monter:
sudo chattr -i ~/NSA-Data-Dump-20161012.img
chmod 700 ~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
Maintenant, vous devez faire attention ici car si un utilisateur a un root sur son système, il peut modifier / détruire votre partition chiffrée, la rendant inutile. Ils peuvent également voler des données sur le lecteur, mais uniquement lorsque celles-ci sont ouvertes. Cependant, ils ne peuvent pas voler des données ou même voir que des données existent sans que vous l'ouvriez explicitement. Par conséquent, il est de votre devoir de vous assurer que votre système est suffisamment sécurisé pour ne pas avoir d'utilisateurs root en ligne lorsque vous ouvrez votre volume chiffré.
TL; DR :
-
Faites le coffre:
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mkfs.ext4 /dev/mapper/my-secret-device
-
Remplissez le coffre-fort:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
-
Verrouiller le coffre-fort:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
-
Geler le coffre-fort:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
-
Ouvrez le coffre-fort:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro