Comment protéger les fichiers?

24

Comment protéger un fichier contenant des données cruciales? Par exemple, supposons que j'ai des fichiers importants, existe-t-il une méthode ou une stratégie pour rendre ce type de fichier plus protégé 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 n'importe quel algorithme de cryptage en externe? Cordialement.

Avani badheka
la source
qu'entendez-vous par protection? Vous souhaitez rendre plus difficile la modification ou la suppression du fichier?
Zanna
protecteur dans le sens que personne ne peut y accéder sans ma permission ou même pas facile de supprimer toute modification. OU il a besoin d'un mot de passe pour l'ouvrir de manière délicate.
Avani badheka
voulez-vous dire simplement chown rootet chmod go-rwx?
njzk2
Pour demander un mot de passe, utilisez un disque chiffré ou un fichier image disque qui ne se monte pas automatiquement.
Joshua

Réponses:

32

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

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

Cela n'empêchera pas de formater la partition où le fichier est stocké. Cela empêchera 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 le "monde du disque" et tout ce qu'il contient immuable ( chattr -i -R /discworldpour le défaire;))


Rinzwind
la source
Je voudrais modifier, supprimer, renommer etc. ne peut être fait que par root. Même si root ne peut pas changer, il ne sera lu que pour tout le monde, ce que je ne veux pas dans mon cas.
Avani badheka
La racine @Avanibadheka peut faire chattr -i avant la modification, puis refaire chattr + i pour le verrouiller.
Rinzwind du
1
Vous pouvez également supprimer de façon permanente (jusqu'au redémarrage) la possibilité de modifier N'IMPORTE QUEL bit immuable du système.
rackandboneman
Il ne peut même pas être copié? Donc, le fichier cat> sortie ou dd ne fonctionne pas?
Konerak
1
Un fichier immuable peut être copié (sauf s'il est défini comme chmod a-r). Voir mon journal de terminal pour un exemple de test.
Ruslan
18

Sans rien faire de spécial, vous pouvez rendre la lecture, la modification ou la suppression du fichier difficile pour les autres en supprimant les autorisations pour tout le monde sauf le propriétaire. Rendez root le propriétaire du fichier 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éplacer ( sudo mv file /home/secret) votre fichier là-dedans et faire

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

chmodet chownprendre plusieurs arguments: chmod 600 file1 file2ouchmod 600 file*

à part ça, utilisez le cryptage ...

Zanna
la source
3
Peut-être plus facile à comprendre si vous utilisez des autorisations de caractères au lieu d'octal. Ainsi, ce serait par exemple "chmod go-rwx" pour supprimer les autorisations de lecture, d'écriture et d'exécution du groupe et des autres. Voir la page de manuel de chmod.
jamesqf
12

Un moyen assez sûr de protéger les documents est le cryptage (à condition de détruire l'original et de stocker correctement la version cryptée).

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

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

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

Assurez-vous que vous avez gpginstallé.

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

$ gpg -c Important_File.txt

Entrez maintenant le mot de passe (il sera utilisé plus tard lorsque vous devrez le lire).

Vous obtiendrez maintenant un fichier avec le nom de l'original et une .gpgextension, par exemple Important_File.txt.gpg.

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

$ shred Important_File.txt

Maintenant, nous avons seulement Important_File.txt.gpgavec nous.

Chaque fois que vous avez besoin de le lire, simplement

$ gpg Important_File.txt.gpg

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

REMARQUE : cela protégera uniquement le contenu du .gpgfichier crypté contre la lecture par quiconque (à l'aide du cryptage), mais n'importe qui peut le supprimer, le copier ou le déplacer ! Pour une protection de base contre cela , utilisez les méthodes d'autorisation des autres réponses sur le .gpgfichier chiffré .

Méthode d'interface graphique (GUI)

Installez l'application Seahorse.

Ensuite, vous pouvez le faire à partir de l'application Fichiers:

Capture d'écran du cryptage des fichiers GNOME

UniversallyUniqueID
la source
1
"Le seul moyen sûr de protéger les documents est le chiffrement", je ne suis pas d'accord. L'acte de chiffrement n'est pas sécurisé ce qui le rend sécurisé. C'est la partie sociale après cela. Si vous créez un fichier lisez-moi à côté du fichier incrusté avec "c'est le mot de passe: 11212324234", vous pouvez crypter tout ce que vous voulez, ce n'est pas le cas.
Rinzwind
1
@Rinzwind Edited. Quoi qu'il en soit, avec ce niveau de stupidité, rien n'est sûr.
UniversallyUniqueID du
Ont voté en prévision ;-)
Rinzwind
Notez qu'il peut être facile de récupérer le fichier d'origine non chiffré si vous le supprimez ( rmou supprimez du gestionnaire de fichiers). Vous devrez l'écraser pour le rendre irrécupérable, par exemple en utilisant shred. C'est également inutile sur les SSD et les lecteurs flash ...
Byte Commander
@ByteCommander Merci, je l'ai ajouté à la réponse.
UniversallyUniqueID
9

Définissez simplement une autorisation très stricte 600, afin que seul le propriétaire puisse la lire et l'écrire (si vous avez besoin d'autorisations d'exécution, ce serait 700).

Vous pouvez également le faire graphiquement - faites simplement un clic droit sur le fichier, sélectionnez Properties > Permissions > Setet définissez tout sauf leowner champ sur rien.

Voir l'image comme exemple:

l'image

dadexix86
la source
Hé, je pense que votre réponse bénéficierait d'une capture d'écran montrant comment le faire avec l'interface graphique.
grooveplex
Fait, merci :) (mais mon système est en italien ...)
dadexix86
@Zanna bonne observation (j'ai modifié la réponse)
dadexix86
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, selon 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' rootutilisateur. 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 l' rootutilisateur dans ce cas, car l' rootutilisateur peut toujours lire des fichiers, même s'il n'a pas l'autorisation. En utilisant l'utilisateur root, nous garantissons qu'un seul utilisateur peut y accéder.

Si vous souhaitez marquer le fichier comme non modifiable de quelque manière que ce soit, forme ou formulaire, vous pouvez utiliser l' iattribut pour marquer le fichier comme 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 immuable et le protéger contre la suppression et les modifications d'autorisation:

sudo chattr +i /my/secret/file.txt

Si vous souhaitez le modifier, remplacez le +ipar un -ipour déverrouiller temporairement le fichier. Voir la réponse de Rinzwind pour une vue plus approfondie.

Maintenant, si d'autres personnes ont accès à votre ordinateur ( sudoaccès à distance ou toute forme d'accès physique), cela s'effondre instantanément. Un attaquant peut utiliserroot pouvoirs pour lire votre fichier, insérer un Live USB ou simplement tirer votre disque dur.

Par conséquent, nous devons crypter le fichier. Personnellement, je préfère utiliser des «conteneurs de fichiers», afin que vous puissiez en conserver plus et les faire croître au besoin. chattr +iest toujours recommandé afin 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 très limité de fichiers lorsque le disque est monté, ce qui est bon pour un serveur. Ce guide était à l'origine disponible ici et a été adapté pour être utilisé ici.

Tout d'abord, vous souhaitez créer une image disque pour votre usage. Dans cet exemple, nous allons en 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 ici le choix 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és, mais il n'y a pas de système de fichiers, et c'est aussi bon qu'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 définir ma partition pour ne me permettre (et root) que de lire / écrire à partir d'elle.

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 fichiers pour naviguer /cryptet je peux y stocker tous mes fichiers sensibles. Une fois que j'aurai terminé, je devrai 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 moi 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 en lecture, il me suffit d'exécuter ces deux commandes, que je peux facilement alias:

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 cryptées seront disponibles sur /crypt et resteront en lecture seule et ne seront accessibles qu'à moi et à root.

Si je souhaite 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 être prudent ici, car si un utilisateur a racine sur son système, il peut modifier / détruire votre partition cryptée, la rendant inutile. Ils peuvent également voler des données du lecteur, mais uniquement lorsqu'il est ouvert. Cependant, ils ne peuvent pas voler de données ni 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 crypté.


TL; DR :

  1. Faites le coffre-fort:

    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. Verrouillez 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
    
Kaz Wolfe
la source
Bien sûr, un utilisateur avec un accès root peut également remplacer cryptsetuppar quelque chose qui enregistre tous les mots de passe entrés ...
Hagen von Eitzen
@HagenvonEitzen Oui, eh bien, il n'y a rien de tel que "vraiment sécurisé" sur les ordinateurs. Il y a un point où vous tracez la ligne.
Kaz Wolfe
7

Vous pouvez utiliser encfs pour le chiffrement de répertoire .

Fondamentalement, vous devez créer 2 répertoires, 1 dans lequel les données chiffrées seront stockées et 1 où vous pourrez accéder à ces données:

mkdir ~/.encrypted
mkdir ~/private

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

encfs ~/.encrypted/ ~/private/

Sauf si vous en savez plus à ce sujet, appuyez simplement sur ENTERpour aller avec les paramètres standard (demandé uniquement la première fois).

Saisissez ensuite votre mot de passe et il sera monté.

Vos données seront accessibles uniquement par votre utilisateur en toute sécurité ~/private/(vous pouvez à peu près ignorer ~/.encrypted)

Pour le démonter:

sudo umount ~/private/

ou

fusermount -u ~/private/

Aussi simple que cela.

lepe
la source
3

Vous pouvez crypter les données en utilisant cryptkeeper qui est vraiment 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 crypter le dossier avec un nom commençant par, . car le placer avant le nom du fichier le cacherait. C'est un petit truc mais ça marche.

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

SHUBHRANEEL GHOSH
la source
1
La combinaison de touches Ctrl + h s'applique à quelle application? Cela ne fonctionnera pas lsdéfinitivement.
Melebius
Ctrl-H fonctionne au moins pour Nautilus (et ses fourches, comme Nemo). Quant aux autres gestionnaires de fichiers, je ne peux pas le dire. Lors de l'utilisation ls, vous pouvez utiliser le -acommutateur pour afficher tous les fichiers (c'est-à-dire y compris les fichiers cachés).
s3lph