Comment protéger les fichiers?

23

Comment protéger certains fichiers contenant des données cruciales? Par exemple, supposons que certains fichiers sont importants, existe-t-il une méthode ou une stratégie pour protéger ce type de fichier sur Ubuntu? Je veux même que certains fichiers demandent un mot de passe chaque fois que quelqu'un essaie de l'ouvrir. Cela affecte-t-il la version d'Ubuntu en termes de politique de sécurité? Puis-je utiliser un algorithme de chiffrement externe? Cordialement.

    
posée Avani badheka 12.10.2016 - 09:38
la source

7 réponses

32

La meilleure méthode est chattr +i {file} . Cela définit l'attribut immuable, puis un fichier ne peut pas être modifié, supprimé, renommé ou un lien créé par quiconque, y compris root.

La seule personne pouvant éditer le fichier est root. (S) il doit annuler ceci en supprimant le bit immuable: chattr -i {file} et peut alors faire n'importe quoi avec le fichier. Définir le + i verrouille à nouveau le fichier de toute modification.

Cela n'empêche pas de formater la partition sur laquelle le fichier est stocké. Cela évitera le vol du fichier.

Vous pouvez même le faire sur un point de montage complet si vous le souhaitez:

chattr +i -R /discworld

rendrait tout le "monde du disque" et tout ce qui y est immuable ( chattr -i -R /discworld pour le défaire;))

  • man chattr
réponse donnée Rinzwind 12.10.2016 - 09:43
la source
17

Sans rien faire de particulier, vous pouvez empêcher les autres utilisateurs de lire, modifier ou supprimer le fichier en supprimant les autorisations pour tout le monde sauf le propriétaire. Rendez le propriétaire du fichier root et placez-le dans un répertoire auquel seul root a accès ...

sudo mkdir /home/secret     #this directory will be owned by root, no need to chown
sudo chmod 700 /home/secret

déplacez ( sudo mv file /home/secret ) votre fichier et faites-le

sudo chown root: /home/secret/file
sudo chmod 600 /home/secret/file

chmod et chown prennent plusieurs arguments: chmod 600 file1 file2 ou chmod 600 file*

autre que cela, utilisez le cryptage ...

    
réponse donnée Zanna 12.10.2016 - 10:15
la source
12

Le cryptage (à condition de détruire l’original et de stocker correctement la version cryptée) est un moyen très sécurisé de protéger les documents.

Les autorisations (suggérées par les autres réponses) peuvent être contournées (voir this ).

Par conséquent, je vous recommande de chiffrer correctement le fichier. Voici comment:

(Pour une méthode d’interface graphique, voir la fin de cette réponse)

Assurez-vous que gpg est installé.

Par exemple, pour chiffrer un fichier nommé Important_File.txt , utilisez

$ gpg -c Important_File.txt

Maintenant, entrez le mot de passe (celui-ci sera utilisé plus tard pour le lire).

Vous allez maintenant obtenir un fichier avec le nom d'origine et une extension .gpg , par exemple Important_File.txt.gpg .

Supprimez le fichier d'origine et conservez la version .gpg . Il peut être facile d’obtenir le fichier original à partir du disque si vous n’utilisez pas l’utilitaire sécurisé shred (qui ne fonctionnera toujours pas sur les lecteurs SSD ou les cartes SD):

$ shred Important_File.txt

Maintenant nous avons seulement Important_File.txt.gpg avec nous.

Chaque fois que vous avez besoin de le lire, simplement

$ gpg Important_File.txt.gpg

Entrez ensuite le mot de passe que vous avez défini dans la première commande. Vous obtiendrez l'original Important_File.txt .

  

REMARQUE : cela ne protégera que le contenu contenu du fichier .gpg crypté par quiconque (utilisant le cryptage), mais tout le monde peut le supprimer, copiez-le ou déplacez-le ! Pour une protection de base de cela , utilisez les méthodes d'autorisation des autres réponses du fichier .gpg crypté.

Méthode d'interface graphique (GUI)

Installez l’application Seahorse.

Ensuite, vous pouvez le faire depuis l’application Fichiers:

    
réponse donnée UniversallyUniqueID 12.10.2016 - 15:51
la source
9

Il suffit de définir une autorisation très stricte 600, de sorte que seul le propriétaire puisse lire et écrire (si vous avez besoin d’autorisations d’exécution, ce serait 700).

Vous pouvez également le faire graphiquement - faites un clic droit sur le fichier, sélectionnez Properties > Permissions > Set et définissez tous sauf le champ owner sur rien.

Voir l’image à titre d’exemple:

    
réponse donnée dadexix86 12.10.2016 - 10:12
la source
8

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 :

  1. 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
    
  2. Remplissez le coffre-fort:

    sudo mkdir /crypt
    sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
    
  3. Verrouiller le coffre-fort:

    sudo umount /crypt
    sudo cryptsetup luksClose my-secret-device
    
  4. Geler le coffre-fort:

    chmod 400 ~/NSA-Data-Dump-20161012.img
    sudo chattr +i ~/NSA-Data-Dump-20161012.img
    
  5. 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
    
réponse donnée Kaz Wolfe 12.10.2016 - 19:01
la source
7

Vous pouvez utiliser encfs pour le chiffrement des répertoires .

En gros, vous devez créer 2 répertoires, 1 dans lequel les données cryptées seront stockées et 1 où vous accéderez à ces données:

mkdir ~/.encrypted
mkdir ~/private

Ensuite, exécutez (vous devez exécuter cette ligne chaque fois que vous voulez "monter" votre répertoire):

encfs ~/.encrypted/ ~/private/

Sauf si vous en savez plus, appuyez simplement sur ENTER pour aller avec les paramètres standard (demandés uniquement la première fois).

Ensuite, entrez votre mot de passe et il sera monté.

Votre utilisateur n’a accès à vos données en toute sécurité que dans ~/private/ (vous pouvez ignorer ~/.encrypted )

Pour le démonter:

sudo umount ~/private/

ou

fusermount -u ~/private/

Simple comme ça.

    
réponse donnée lepe 14.10.2016 - 09:27
la source
3

Vous pouvez crypter les données à l’aide de cryptkeeper , qui est une très bonne application et peut sécuriser votre fichier. Vous pouvez l'installer avec:

sudo apt-get update
sudo apt-get install cryptkeeper

Je vous recommande généralement de chiffrer le dossier avec le nom commençant par . car le mettre avant le nom du fichier le cacherait. C'est un petit tour mais ça marche.

Pour afficher le dossier, utilisez Ctrl + h ou vice-versa.

    
réponse donnée SHUBHRANEEL GHOSH 12.10.2016 - 10:08
la source

Lire d'autres questions sur les étiquettes