Come proteggere i file?


24

Come rendere protetti alcuni file che contengono dati cruciali? Ad esempio, supponiamo che io abbia alcuni file importanti, esiste qualche metodo o strategia per rendere questo tipo di file più protetto su Ubuntu? Voglio anche fare in modo che alcuni file richiedano una password ogni volta che qualcuno tenta di aprirla. Influisce sulla versione di Ubuntu in termini di politica di sicurezza? Posso utilizzare un algoritmo di crittografia esternamente? Saluti.


cosa intendi con protettivo? Vuoi rendere più difficile modificare o eliminare il file?
Zanna,

protettivo nel senso che nessuno può accedervi senza la mia autorizzazione o addirittura facile eliminare qualsiasi modifica. O ha bisogno di una password per aprirla in modo complicato.
Avani badheka,

intendi semplicemente chown roote chmod go-rwx?
njzk2,

Per richiedere una password, utilizzare un disco crittografato o un file immagine del disco che non si monta automaticamente.
Giosuè,

Risposte:


32

Il metodo migliore che hai è chattr +i {file}. Questo imposta l'attributo immutabile e quindi un file non può essere modificato, cancellato, rinominato o un hardlink creato da chiunque includa root.

L'unica persona che può modificare il file è root. (S) deve annullare questo rimuovendo il bit immutabile: chattr -i {file}e può quindi fare qualunque cosa con il file. L'impostazione di + i blocca nuovamente il file da qualsiasi modifica.

Ciò non impedirà di formattare la partizione in cui è archiviato il file. Impedirà il furto del file.


Puoi anche farlo su un mountpoint completo se vuoi:

chattr +i -R /discworld

renderebbe immutabile l'intero "mondo del disco" e tutto ciò che contiene ( chattr -i -R /discworldper annullarlo;))



Vorrei modificare, cancellare, rinominare ecc. Può essere fatto solo da root. Anche se root non può cambiare, allora leggerà solo per tutti, che non voglio nel mio caso.
Avani badheka,

@Avanibadheka root può fare chattr -i prima di modificarlo e poi di nuovo chattr + i per bloccarlo.
Rinzwind,

1
È inoltre possibile rimuovere in modo permanente (fino al riavvio) la possibilità di modificare QUALSIASI bit immutabile dal sistema.
Rackandboneman,

Non può nemmeno essere copiato? Quindi file cat> output o dd non funzionano?
Konerak,

1
Un file immutabile può essere copiato (a meno che non sia impostato come chmod a-r). Vedi il mio log del terminale per esempio test.
Ruslan,

18

Senza fare nulla di speciale, puoi rendere difficile per gli altri leggere, modificare o eliminare il file rimuovendo le autorizzazioni per tutti tranne che per il proprietario. Imposta root come proprietario del file e inseriscilo in una directory a cui solo root ha accesso a ...

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

sposta ( sudo mv file /home/secret) il tuo file lì dentro e fai

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

chmode chownaccetta più argomenti: chmod 600 file1 file2ochmod 600 file*

a parte questo, usa la crittografia ...


3
Forse più facile da capire se si utilizzano i permessi dei caratteri anziché ottali. Quindi sarebbe ad esempio "chmod go-rwx" per rimuovere le autorizzazioni di lettura, scrittura ed esecuzione dal gruppo e da altri. Vedi la pagina man di chmod.
jamesqf,

12

Un modo abbastanza sicuro per proteggere i documenti è la crittografia (a condizione che tu distrugga l'originale e memorizzi correttamente la versione crittografata).

Le autorizzazioni (come suggerito dalle altre risposte) possono essere eluse (vedi questo ).

Pertanto, ti consiglio di crittografare correttamente il file. Ecco come:

(Per un metodo di interfaccia grafica, vedere la fine di questa risposta)

Assicurati di aver gpginstallato.

Ad esempio, per crittografare un file denominato Important_File.txt, utilizzare

$ gpg -c Important_File.txt

Ora inserisci la password (questa verrà utilizzata in seguito quando dovrai leggerla).

Ora otterrai un file con il nome dell'originale e .gpgun'estensione, ad esempio Important_File.txt.gpg.

Rimuovere il file originale e conservare la .gpgversione. Potrebbe essere facile ottenere il file originale dal disco se non si utilizza l' shredutilità sicura (che non funzionerà ancora su unità SSD o schede SD):

$ shred Important_File.txt

Ora abbiamo solo Important_File.txt.gpgcon noi.

Ogni volta che devi leggerlo, semplicemente

$ gpg Important_File.txt.gpg

Quindi inserisci la password che hai impostato nel primo comando. Otterrai l'originale Important_File.txt.

NOTA : Questo proteggerà solo il contenuto del .gpgfile crittografato dalla lettura da parte di chiunque (usando la crittografia), ma chiunque può rimuoverlo, copiarlo o spostarlo ! Per una protezione di base da ciò , utilizzare i metodi di autorizzazione delle altre risposte sul .gpgfile crittografato .

Metodo di interfaccia grafica (GUI)

Installa l'applicazione Seahorse.

Quindi puoi farlo dall'applicazione File:

Schermata della crittografia dei file GNOME


1
"L'unico modo sicuro per proteggere i documenti è la crittografia" Non sono d'accordo. L'atto di crittografare non è sicuro ciò che lo rende sicuro. È la parte sociale che segue. Se si crea un file Leggimi accanto al file crittografato con "questa è la password: 11212324234" è possibile crittografare tutto ciò che si desidera sicuro non lo è.
Rinzwind,

1
@Rinzwind Edited. Comunque, con quel livello di stupidità, nulla è sicuro.
UniversallyUniqueID,

Votato in previsione ;-)
Rinzwind

Si noti che potrebbe essere facile recuperare il file originale non crittografato se lo si elimina in polvere ( rmo si elimina dal file manager). Dovresti sovrascriverlo per renderlo irrecuperabile, ad esempio usando shred. Questo è anche inutile su SSD e unità flash però ...
Byte Commander

@ByteCommander Grazie, l'ho aggiunto alla risposta.
UniversallyUniqueID

9

Basta impostare un permesso molto severo 600, in modo che solo il proprietario possa leggerlo e scriverlo (se hai bisogno di permessi di esecuzione, sarebbe 700).

Puoi anche farlo graficamente: fai semplicemente clic con il pulsante destro del mouse sul file, seleziona Properties > Permissions > Sete imposta tutto tranne il ownercampo su niente.

Vedi l'immagine come esempio:

la foto


Ehi, penso che la tua risposta trarrebbe beneficio da uno screenshot che mostra come farlo con la GUI.
Grooveplex,

Fatto, grazie :) (ma il mio sistema è in italiano ...)
dadexix86,

@Zanna buona osservazione (ho modificato la risposta)
dadexix86

8

Se sei il singolo utente sul sistema e nessuno può ragionevolmente accedere al tuo computer senza le tue autorizzazioni, puoi semplicemente bloccare l'accesso usando questo comando, come da risposta di Zanna :

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

In questo caso, il file può essere letto e / o scritto solo rootdall'utente. Questo è considerato "abbastanza sicuro" se nessuno può avviare il computer senza la tua autorizzazione o sollevare il tuo disco rigido. In rootquesto caso utilizziamo l' utente, poiché l' rootutente può sempre leggere i file, anche se non dispongono dell'autorizzazione. Utilizzando l'utente root, imponiamo che solo un utente possa accedervi.

Se si desidera contrassegnare il file come immutabile in qualsiasi modo, forma o forma, è possibile utilizzare l' iattributo per contrassegnare il file come immutabile . In questo caso, le autorizzazioni del file sono bloccate e non possono essere modificate in nessun caso. Pertanto, è possibile eseguire il comando seguente per rendere immutabile il file e proteggerlo dall'eliminazione e dalle modifiche alle autorizzazioni:

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

Se si desidera modificarlo, sostituirlo +icon a -iper sbloccare temporaneamente il file. Vedi la risposta di Rinzwind per una visione più approfondita.

Ora, se altre persone hanno accesso al tuo computer ( sudoaccesso remoto o qualsiasi forma di accesso fisico), questo cade all'istante. Un utente malintenzionato può utilizzare i rootpoteri per leggere il file, inserire un Live USB o semplicemente tirare il disco rigido.

Pertanto, è necessario crittografare il file. Personalmente preferisco usare i "contenitori di file", in modo da poter rimanere più dentro e farli crescere se necessario. chattr +iè comunque consigliato in modo che il file non venga cancellato (o modificato) accidentalmente. Infine, se stai usando un'immagine crittografata, puoi impostare le autorizzazioni per consentire ad altri di accedere a un sottoinsieme molto limitato di file quando il disco è montato, rendendolo buono per un server. Questa guida era originariamente disponibile qui ed è stata adattata per l'uso qui.

Prima di tutto, vuoi creare un'immagine del disco per il tuo uso. In questo esempio, faremo 5 GB.

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

Quindi, dobbiamo rendere la tua immagine crittografata:

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

Qui puoi scegliere di inserire la tua password di crittografia preferita. Fatto ciò, dobbiamo esporre il dispositivo a blocchi grezzi:

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

In questo momento, abbiamo un contenitore di file decrittografato, ma non esiste un filesystem ed è buono come inutile. Risolviamo che:

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

Ora, abbiamo bisogno di un posto per montare la nostra nuova partizione. In questo caso, lo metterò a /crypt. Sono utente 1000, quindi imposterò la mia partizione per consentire a me (e root) di leggere / scrivere solo da essa.

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

Ora, posso usare il mio strumento di file per navigare /crypte posso archiviare tutti i miei file sensibili lì. Una volta terminato, dovrò smontare e ricrittografare la mia partizione.

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

Ora imposterò le partizioni appropriate sul mio file di immagine, in modo tale che solo io e root possiamo accedervi e che non possa più essere modificato.

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

Ogni volta che voglio aprire questo file per la lettura, devo solo eseguire questi due comandi, che posso facilmente 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

I miei dati crittografati saranno disponibili su /crypte rimarranno di sola lettura e accessibili solo a me e root.

Se voglio modificare il file, devo cambiare i permessi e poi montare:

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

Ora, devi stare attento qui perché se un utente ha root sul proprio sistema, può modificare / distruggere la tua partizione crittografata, rendendola inutile. Possono anche rubare dati dall'unità, ma solo quando è aperto. Tuttavia, non possono rubare dati o persino vedere che esistono dati senza che tu li apra esplicitamente. Pertanto, è tuo dovere assicurarti che il tuo sistema sia abbastanza sicuro da non avere utenti root online quando apri il tuo volume crittografato.


TL; DR :

  1. Crea il caveau:

    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. Riempi il caveau:

    sudo mkdir /crypt
    sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
    
  3. Blocca il caveau:

    sudo umount /crypt
    sudo cryptsetup luksClose my-secret-device
    
  4. Congela il caveau:

    chmod 400 ~/NSA-Data-Dump-20161012.img
    sudo chattr +i ~/NSA-Data-Dump-20161012.img
    
  5. Apri il caveau:

    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
    

Naturalmente un utente con accesso root potrebbe anche sostituire cryptsetupqualcosa che registra tutte le password inserite ...
Hagen von Eitzen,

@HagenvonEitzen Sì, beh, non c'è niente come "veramente sicuro" sui computer. C'è un punto in cui si disegna la linea.
Kaz Wolfe,

7

È possibile utilizzare encfs per la crittografia della directory .

Fondamentalmente è necessario creare 2 directory, 1 in cui verranno archiviati i dati crittografati e 1 in cui si accederà a tali dati:

mkdir ~/.encrypted
mkdir ~/private

Quindi esegui (devi eseguire questa riga ogni volta che vuoi "montare" la tua directory):

encfs ~/.encrypted/ ~/private/

A meno che tu non ne sappia di più, basta premere ENTERper andare con le impostazioni standard (chiesto solo la prima volta).

Quindi inserisci la tua password e verrà montata.

I tuoi dati saranno accessibili solo dall'utente in modo sicuro in ~/private/(puoi praticamente ignorare ~/.encrypted)

Per smontarlo:

sudo umount ~/private/

o

fusermount -u ~/private/

Semplice come quella.


3

Puoi crittografare i dati usando cryptkeeper che è davvero un'ottima applicazione e può fornire sicurezza al tuo file. Puoi installarlo con:

sudo apt-get update
sudo apt-get install cryptkeeper

In genere, ti consiglio di crittografare la cartella con il nome che inizia con, . perché inserirla prima del nome del file la nasconderebbe. È un piccolo trucco ma funziona.

Per scoprire la cartella, usa Ctrl+ ho viceversa.


1
La combinazione di tasti Ctrl + h si applica a quale applicazione? Non funzionerà lssicuramente.
Melebio

Ctrl-H funziona almeno per Nautilus (e forchette di esso, come Nemo). Per quanto riguarda gli altri file manager, non posso dirlo. Durante l'utilizzo ls, è possibile utilizzare l' -aopzione per mostrare tutti i file (inclusi quelli nascosti).
s3lph,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.