Wie werden Dateien geschützt?

24

Wie erstelle ich eine Datei, die wichtige Daten enthält, geschützt? Angenommen, ich habe einige wichtige Dateien. Gibt es eine Methode oder Strategie, um diese Art von Datei unter Ubuntu besser zu schützen? Ich möchte sogar, dass einige Dateien nach einem Passwort fragen, wenn jemand versucht, es zu öffnen. Beeinflusst es die Version von Ubuntu in Bezug auf die Sicherheitsrichtlinien? Darf ich einen Verschlüsselungsalgorithmus extern verwenden? Grüße.

Avani Badheka
quelle
was meinst du mit schutz Sie möchten das Ändern oder Löschen der Datei erschweren?
Zanna
schutzbedingt kann niemand ohne meine erlaubnis darauf zugreifen oder auch nicht einfach modifikationen löschen. ODER es braucht ein Passwort, um es auf knifflige Weise zu öffnen.
Avani Badheka
meinst du einfach chown rootund chmod go-rwx?
njzk2
Verwenden Sie eine verschlüsselte Festplatte oder eine Festplatten-Image-Datei, die nicht automatisch bereitgestellt wird, um ein Kennwort anzufordern.
Joshua

Antworten:

32

Die beste Methode, die Sie haben, ist chattr +i {file}. Hiermit wird das unveränderliche Attribut festgelegt. Anschließend kann eine Datei nicht mehr geändert, gelöscht, umbenannt oder ein Hardlink erstellt werden, einschließlich root.

Die einzige Person, die die Datei bearbeiten kann, ist root. (S) er muss dies rückgängig machen, indem er das unveränderliche Bit entfernt: chattr -i {file}und kann dann alles mit der Datei machen. Durch erneutes Setzen des + i wird die Datei vor Änderungen geschützt.

Dies wird jedoch nicht verhindern, dass die Partition formatiert wird, auf der die Datei gespeichert ist. Dies verhindert den Diebstahl der Datei.


Sie können dies sogar auf einem vollständigen Mountpoint tun, wenn Sie möchten:

chattr +i -R /discworld

würde die ganze "Scheibenwelt" und alles darin unveränderlich machen ( chattr -i -R /discworldum es rückgängig zu machen;))


Rinzwind
quelle
Ich möchte ändern, löschen, umbenennen usw. kann nur durch root erfolgen. Auch wenn sich root nicht ändern kann, wird es nur für alle gelesen, die ich in meinem Fall nicht möchte.
Avani Badheka
@Avanibadheka root kann vor dem Bearbeiten chattr -i ausführen und dann chattr + i erneut ausführen, um es zu sperren.
Rinzwind
1
Sie können auch dauerhaft (bis zum Neustart) die Fähigkeit entfernen, JEDES unveränderliche Bit vom System zu ändern.
Rackandboneman
Es kann nicht einmal kopiert werden? Also funktioniert cat file> output oder dd nicht?
Konerak
1
Eine unveränderliche Datei kann kopiert werden (sofern nicht anders festgelegt chmod a-r). In meinem Terminalprotokoll finden Sie ein Beispiel für einen Test.
Ruslan
18

Ohne besondere Vorkehrungen zu treffen, können Sie anderen das Lesen, Ändern oder Löschen der Datei erschweren, indem Sie Berechtigungen für alle Personen außer dem Eigentümer entfernen. Machen Sie root zum Eigentümer der Datei und legen Sie sie in einem Verzeichnis ab, auf das nur root Zugriff hat ...

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

verschiebe ( sudo mv file /home/secret) deine Datei dorthin und mache

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

chmodund chownnimm mehrere Argumente: chmod 600 file1 file2oderchmod 600 file*

Verwenden Sie ansonsten Verschlüsselung ...

Zanna
quelle
3
Vielleicht einfacher zu verstehen, wenn Sie Zeichenberechtigungen anstelle von Oktal verwenden. Es wäre also zB "chmod go-rwx", um Lese-, Schreib- und Ausführungsberechtigungen von Gruppen und anderen zu entfernen. Siehe die chmod-Manpage.
Jamesqf
12

Eine sehr sichere Methode zum Schutz von Dokumenten ist die Verschlüsselung (vorausgesetzt, Sie zerstören das Original und speichern die verschlüsselte Version ordnungsgemäß).

Berechtigungen (wie in den anderen Antworten vorgeschlagen) können umgangen werden (siehe dies ).

Daher empfehle ich Ihnen, die Datei ordnungsgemäß zu verschlüsseln. Hier ist, wie:

(Eine grafische Oberflächenmethode finden Sie am Ende dieser Antwort.)

Stellen Sie sicher, dass Sie gpginstalliert haben.

Important_File.txtVerwenden Sie zum Verschlüsseln einer benannten Datei beispielsweise

$ gpg -c Important_File.txt

Geben Sie nun das Passwort ein (wird später verwendet, wenn Sie es lesen müssen).

Sie erhalten nun beispielsweise eine Datei mit dem Namen des Originals und einer .gpgErweiterung Important_File.txt.gpg.

Entfernen Sie die Originaldatei und behalten Sie die .gpgVersion bei. Wenn Sie das sichere shredDienstprogramm nicht verwenden (das auf SSD-Laufwerken oder SD-Karten immer noch nicht funktioniert), ist es möglicherweise einfach, die Originaldatei von der Festplatte abzurufen:

$ shred Important_File.txt

Jetzt haben wir nur noch Important_File.txt.gpgbei uns.

Wann immer Sie es lesen müssen, einfach

$ gpg Important_File.txt.gpg

Geben Sie dann das Kennwort ein, das Sie im ersten Befehl festgelegt haben. Sie erhalten das Original Important_File.txt.

HINWEIS : Dies schützt nur den Inhalt der verschlüsselten .gpgDatei vor dem Lesen durch Dritte (durch Verschlüsselung), aber jeder kann sie entfernen, kopieren oder verschieben ! Für grundlegenden Schutz vor , dass mit Hilfe der Erlaubnis Methoden der anderen Antworten auf die verschlüsselte .gpgDatei.

GUI-Methode (Graphical Interface)

Installieren Sie die Seahorse-Anwendung.

Dann können Sie dies in der Anwendung "Dateien" tun:

Screenshot der Verschlüsselung von GNOME-Dateien

UniversallyUniqueID
quelle
1
"Die einzige sichere Möglichkeit, Dokumente zu schützen, ist die Verschlüsselung", bin ich anderer Meinung. Die Verschlüsselung ist nicht sicher, was sie sicher macht. Es ist der soziale Teil danach, der das tut. Wenn Sie eine Readme-Datei neben der verschlüsselten Datei mit "Dies ist das Kennwort: 11212324234" erstellen, können Sie alles verschlüsseln, was sicher sein soll.
Rinzwind
1
@Rinzwind Bearbeitet. Trotz dieser Dummheit ist nichts sicher.
UniversallyUniqueID
In Vorfreude
aufgestimmt ;-)
Beachten Sie, dass es möglicherweise einfach ist, die unverschlüsselte Originaldatei abzurufen, wenn Sie sie entstauben ( rmoder aus dem Dateimanager löschen). Sie müssten es überschreiben, um es nicht wiederherstellbar zu machen, z shred. B. mit . Das ist aber auch auf SSDs und Flash-Laufwerken nutzlos ...
Byte Commander
@ByteCommander Danke, ich habe es der Antwort hinzugefügt.
UniversallyUniqueID
9

Legen Sie einfach eine sehr strenge Berechtigung 600 fest, damit nur der Eigentümer sie lesen und schreiben kann (wenn Sie Ausführungsberechtigungen benötigen, sind dies 700).

Sie können dies auch grafisch tun - klicken Sie einfach mit der rechten Maustaste auf die Datei, wählen Sie alle Felder außer dem Feld aus Properties > Permissions > Setund setzen Sie sie auf "nichts".owner

Siehe das Bild als Beispiel:

das Bild

dadexix86
quelle
Hey, ich denke deine Antwort würde von einem Screenshot profitieren, der zeigt, wie man es mit der GUI macht.
Grooveplex
Fertig, danke :) (aber mein System ist in Italienisch ...)
dadexix86
@ Zanna gute Beobachtung (Ich habe die Antwort geändert)
Dadexix86
8

Wenn Sie der einzelne Benutzer im System sind und niemand ohne Ihre Berechtigungen auf Ihren Computer zugreifen kann, können Sie den Zugriff mit diesem Befehl einfach blockieren, wie in der Antwort von Zanna angegeben :

sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt

In diesem Fall kann die Datei nur vom rootBenutzer gelesen und / oder beschrieben werden . Dies gilt als "sicher genug", wenn niemand Ihren Computer ohne Ihre Erlaubnis booten oder Ihre Festplatte anheben kann. rootIn diesem Fall verwenden wir den Benutzer, da der rootBenutzer Dateien immer lesen kann, auch wenn sie keine Berechtigung haben. Durch die Verwendung des Root-Benutzers wird erzwungen, dass nur ein Benutzer darauf zugreifen kann.

Wenn Sie die Datei in irgendeiner Weise, Form oder Form als unveränderlich markieren möchten, können Sie das iAttribut verwenden, um die Datei als unveränderlich zu markieren . In diesem Fall sind die Berechtigungen der Datei gesperrt und können unter keinen Umständen geändert werden. Auf diese Weise können Sie den folgenden Befehl ausführen, um die Datei unveränderlich zu machen und sie vor Lösch- und Berechtigungsänderungen zu schützen:

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

Wenn Sie es ändern möchten, ersetzen Sie das +idurch ein -i, um die Datei vorübergehend zu entsperren. Weitere Informationen finden Sie in der Antwort von Rinzwind .

Wenn nun andere Personen Zugriff auf Ihren Computer haben (entweder Fernzugriff sudooder irgendeine Form von physischem Zugriff), fällt dies sofort auseinander. Ein Angreifer kann rootIhre Datei mithilfe von Kräften lesen, einen Live-USB-Stick anschließen oder einfach Ihre Festplatte ziehen.

Daher müssen wir die Datei verschlüsseln. Ich persönlich bevorzuge die Verwendung von "Datei-Containern", damit Sie mehr darin stecken und es nach Bedarf erweitern können. chattr +iwird weiterhin empfohlen, damit die Datei nicht versehentlich gelöscht (oder geändert) wird. Wenn Sie ein verschlüsseltes Image verwenden, können Sie Berechtigungen festlegen, mit denen andere Benutzer auf eine sehr begrenzte Teilmenge von Dateien zugreifen können, wenn der Datenträger bereitgestellt wird, was ihn für einen Server geeignet macht. Dieser Leitfaden war ursprünglich hier verfügbar und wurde für die Verwendung hier angepasst.

Zunächst möchten Sie ein Disk-Image für Ihre Verwendung erstellen. In diesem Beispiel machen wir es 5 GB.

dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img

Dann müssen wir Ihr Bild verschlüsseln:

sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img

Sie haben hier die Wahl, Ihr bevorzugtes Verschlüsselungspasswort einzugeben. Sobald dies erledigt ist, müssen wir das Raw-Block-Gerät verfügbar machen:

sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device

Im Moment haben wir einen entschlüsselten Dateicontainer, aber es gibt kein Dateisystem und es ist so gut wie nutzlos. Lassen Sie uns das beheben:

sudo mkfs.ext4 /dev/mapper/my-secret-device

Jetzt brauchen wir einen Platz, um unsere neue Partition zu mounten. In diesem Fall werde ich es setzen /crypt. Ich bin Benutzer 1000, also werde ich meine Partition so einstellen, dass ich (und root) nur lesen / schreiben kann.

sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000

Jetzt kann ich mit meinem Datei-Tool zu navigieren /cryptund alle meine vertraulichen Dateien dort speichern. Sobald ich fertig bin, muss ich die Bereitstellung aufheben und meine Partition neu verschlüsseln.

sudo umount /crypt
sudo cryptsetup luksClose my-secret-device

Jetzt lege ich geeignete Partitionen für meine Image-Datei fest, sodass nur ich und root darauf zugreifen können und sie nicht mehr geändert werden können.

chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img

Wann immer ich diese Datei zum Lesen öffnen möchte, muss ich nur diese beiden Befehle ausführen, die ich leicht aliasen kann:

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

Meine verschlüsselten Daten stehen unter zur Verfügung /cryptund sind weiterhin schreibgeschützt und nur für mich und root zugänglich.

Wenn ich die Datei ändern möchte, muss ich die Berechtigungen ändern und dann Folgendes bereitstellen:

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

Jetzt müssen Sie hier vorsichtig sein, denn wenn ein Benutzer root auf seinem System hat, kann er Ihre verschlüsselte Partition ändern / zerstören, wodurch sie unbrauchbar wird. Sie können auch Daten vom Laufwerk stehlen, jedoch nur, wenn es geöffnet ist. Sie können jedoch keine Daten stehlen oder sehen, dass Daten vorhanden sind, ohne dass Sie diese explizit öffnen. Es ist daher Ihre Pflicht, sicherzustellen, dass Ihr System sicher genug ist, dass keine Root-Benutzer online sind, wenn Sie Ihr verschlüsseltes Volume öffnen.


TL; DR :

  1. Mach das Gewölbe:

    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. Füllen Sie den Tresor:

    sudo mkdir /crypt
    sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
    
  3. Schließ den Tresor ab:

    sudo umount /crypt
    sudo cryptsetup luksClose my-secret-device
    
  4. Das Gewölbe einfrieren:

    chmod 400 ~/NSA-Data-Dump-20161012.img
    sudo chattr +i ~/NSA-Data-Dump-20161012.img
    
  5. Öffne den Tresor:

    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
quelle
Natürlich kann ein Benutzer mit Root-Zugang auch cryptsetupetwas ersetzen , das alle eingegebenen Passwörter protokolliert ...
Hagen von Eitzen
@HagenvonEitzen Ja, auf Computern gibt es nichts Vergleichbares wie "wirklich sicher". Es gibt einen Punkt, an dem Sie die Linie zeichnen.
Kaz Wolfe
7

Sie können encfs für die Verzeichnisverschlüsselung verwenden .

Grundsätzlich müssen Sie zwei Verzeichnisse erstellen, eines, in dem die verschlüsselten Daten gespeichert werden, und eines, in dem Sie auf diese Daten zugreifen:

mkdir ~/.encrypted
mkdir ~/private

Führen Sie dann Folgendes aus (Sie müssen diese Zeile jedes Mal ausführen, wenn Sie Ihr Verzeichnis "mounten" möchten):

encfs ~/.encrypted/ ~/private/

Wenn Sie nicht mehr darüber wissen, drücken Sie einfach ENTER, um mit den Standardeinstellungen fortzufahren (nur beim ersten Mal gefragt).

Dann geben Sie Ihr Passwort ein und es wird gemountet.

Ihre Daten werden nur von Ihrem Benutzer sicher in zugegriffen ~/private/(Sie können so ziemlich ignorieren ~/.encrypted)

So hängen Sie es ab:

sudo umount ~/private/

oder

fusermount -u ~/private/

So einfach ist das.

Lepe
quelle
3

Sie können die Daten mit Cryptkeeper verschlüsseln. Cryptkeeper ist eine wirklich sehr gute Anwendung, die Sicherheit für Ihre Datei bietet. Sie können es installieren mit:

sudo apt-get update
sudo apt-get install cryptkeeper

Im Allgemeinen empfehle ich, den Ordner mit dem Namen zu verschlüsseln, der mit beginnt, . da er durch das Setzen vor den Namen der Datei ausgeblendet wird. Es ist ein kleiner Trick, aber es funktioniert.

Verwenden Sie Ctrl+ hoder umgekehrt , um den Ordner einzublenden .

SHUBHRANEEL GHOSH
quelle
1
Der Tastendruck Strg + h gilt für welche Anwendung? Es wird lsdefinitiv nicht funktionieren .
Melebius
Ctrl-H funktioniert zumindest für Nautilus (und Gabeln davon, wie Nemo). Was andere Dateimanager betrifft, kann ich nicht sagen. Bei Verwendung lskönnen Sie den -aSchalter verwenden, um alle (dh auch versteckten) Dateien anzuzeigen.
S3LPH