Como tornar arquivos protegidos?

23

Como fazer com que alguns arquivos que contenham dados cruciais sejam protegidos? Por exemplo, suponha que eu tenha alguns arquivos que são importantes, existe algum método ou estratégia para tornar esse tipo de arquivo mais protegido no Ubuntu? Eu ainda quero fazer alguns arquivos pedirem uma senha sempre que alguém tentar abri-la. Isso afeta a versão do Ubuntu em termos de política de segurança? Posso usar algum algoritmo de criptografia externamente? Atenciosamente.

    
por Avani badheka 12.10.2016 / 09:38

7 respostas

32

O melhor método que você tem é chattr +i {file} . Isso define o atributo imutável e, em seguida, um arquivo não pode ser modificado, excluído, renomeado ou um link físico criado por qualquer pessoa, incluindo root.

A única pessoa que pode editar o arquivo é raiz. (S) ele tem que desfazer isso removendo o bit imutável: chattr -i {file} e pode então fazer qualquer coisa com o arquivo. Definir o + i bloqueia novamente o arquivo de qualquer modificação.

Isso não impedirá a formatação da partição em que o arquivo está armazenado. Isso impedirá o roubo do arquivo.

Você pode até fazer isso em um ponto de montagem completo se quiser:

chattr +i -R /discworld

tornaria todo o "discworld" e qualquer coisa imutável ( chattr -i -R /discworld para desfazê-lo;))

  • homem chattr
por Rinzwind 12.10.2016 / 09:43
17

Sem fazer nada de especial, você pode dificultar que outras pessoas leiam, alterem ou excluam o arquivo, removendo permissões de todos, exceto do proprietário. Torne o root do proprietário do arquivo e coloque-o dentro de um diretório que somente o root tenha acesso ...

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

mova ( sudo mv file /home/secret ) o seu arquivo para lá e faça

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

chmod e chown recebem vários argumentos: chmod 600 file1 file2 ou chmod 600 file*

diferente disso, use criptografia ...

    
por Zanna 12.10.2016 / 10:15
12

Uma maneira bastante segura de proteger documentos é a criptografia (desde que você destrua o original e armazene a versão criptografada corretamente).

As permissões (conforme sugerido pelas outras respostas) podem ser contornadas (consulte this ).

Portanto, eu recomendo que você criptografe corretamente o arquivo. Aqui está como:

(Para um método de interface gráfica, veja o final desta resposta)

Verifique se você tem gpg instalado.

Por exemplo, para criptografar um arquivo chamado Important_File.txt , use

$ gpg -c Important_File.txt

Agora digite a senha (isso será usado mais tarde quando for necessário lê-la).

Você agora receberá um arquivo com o nome do original e uma extensão .gpg , por exemplo Important_File.txt.gpg .

Remova o arquivo original e mantenha a versão .gpg . Pode ser fácil obter o arquivo original do disco se você não usar o utilitário shred seguro (que ainda não funcionará em unidades SSD ou cartões SD):

$ shred Important_File.txt

Agora só temos Important_File.txt.gpg conosco.

Sempre que você precisar lê-lo, simplesmente

$ gpg Important_File.txt.gpg

Em seguida, digite a senha que você definiu no primeiro comando. Você receberá o original Important_File.txt .

  

OBSERVAÇÃO : Isso protege apenas o conteúdo do arquivo .gpg criptografado de ser lido por qualquer pessoa (usando criptografia), mas qualquer um pode remover, copie ou mova-o ! Para proteção básica de que , use os métodos de permissão das outras respostas no arquivo .gpg criptografado.

Método da interface gráfica (GUI)

Instale o aplicativo Seahorse.

Então você pode fazer isso a partir do aplicativo Files:

    
por UniversallyUniqueID 12.10.2016 / 15:51
9

Basta definir uma permissão muito estrita 600, para que apenas o proprietário possa ler e gravar (se precisar de permissões de execução, isso seria 700).

Você também pode fazer isso graficamente - basta clicar com o botão direito do mouse no arquivo, selecionar Properties > Permissions > Set e definir tudo menos o campo owner para nada.

Veja a figura como um exemplo:

    
por dadexix86 12.10.2016 / 10:12
8

Se você é o único usuário no sistema, e ninguém pode razoavelmente acessar seu computador sem as suas permissões, então você pode simplesmente bloquear o acesso usando este comando, como por A resposta de Zanna :

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

Nesse caso, o arquivo só pode ser lido e / ou gravado pelo usuário root . Isso é considerado "seguro o suficiente" se ninguém conseguir iniciar seu computador sem sua permissão ou levantar seu disco rígido. Estamos usando o usuário root neste caso, porque o usuário root sempre pode ler arquivos, mesmo que eles não tenham permissão. Ao usar o usuário root, impomos que somente um usuário possa acessá-lo.

Se você quiser marcar o arquivo como imutável de qualquer forma, forma ou formulário, poderá usar o atributo i para marcar o arquivo como imutável . Nesse caso, as permissões do arquivo estão bloqueadas e não podem ser alteradas sob nenhuma circunstância. Assim, você pode fazer o seguinte comando para tornar o arquivo imutável e protegê-lo das alterações de exclusão e permissão:

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

Se você quiser alterá-lo, substitua o +i por um -i para desbloquear o arquivo temporariamente. Veja a resposta de Rinzwind para uma visão mais aprofundada.

Agora, se outras pessoas tiverem acesso ao seu computador (remoto sudo access ou qualquer forma de acesso físico), isso se desfaz instantaneamente. Um invasor pode usar root de poderes para ler seu arquivo, inserir um Live USB ou apenas puxar seu disco rígido.

Portanto, precisamos criptografar o arquivo. Eu pessoalmente prefiro usar "contêineres de arquivos", para que você possa ficar mais lá e fazer com que ele cresça conforme necessário. chattr +i ainda é recomendado para que o arquivo não seja excluído acidentalmente (ou alterado). Por fim, se você estiver usando uma imagem criptografada, poderá definir permissões para permitir que outras pessoas acessem um subconjunto muito limitado de arquivos quando o disco estiver montado, tornando-o adequado para um servidor. Este guia estava originalmente disponível aqui e foi adaptado para uso aqui.

Primeiramente, você deseja criar uma imagem de disco para seu uso. Neste exemplo, vamos fazer 5 GB.

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

Então, precisamos tornar sua imagem criptografada:

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

Você terá uma escolha aqui para inserir sua senha de criptografia preferida. Feito isso, precisamos expor o dispositivo de bloco bruto:

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

Neste momento, temos um contêiner de arquivos descriptografado, mas não há sistema de arquivos, e é tão bom quanto inútil. Vamos consertar isso:

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

Agora, precisamos de um lugar para montar nossa nova partição. Nesse caso, vou colocá-lo em /crypt . Eu sou usuário 1000, então, vou definir minha partição para permitir que eu (e o root) leiam / escrevam a partir dela.

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

Agora, posso usar minha ferramenta de arquivo para navegar até /crypt e posso armazenar todos os meus arquivos confidenciais lá. Quando terminar, precisarei desmontar e criptografar novamente minha partição.

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

Agora, vou definir partições apropriadas em meu arquivo de imagem, de modo que apenas eu e o root possam acessá-lo, e que ele não possa mais ser alterado.

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

Sempre que eu quero abrir este arquivo para leitura, eu só preciso executar esses dois comandos, que eu posso facilmente apelidar:

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

Meus dados criptografados estarão disponíveis em /crypt e permanecerão como somente leitura e estarão acessíveis somente para mim e para o root.

Se eu quiser alterar o arquivo, preciso alterar as permissões e montar:

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

Agora, você precisa ter cuidado aqui porque, se um usuário tiver raiz em seu sistema, ele poderá modificar / destruir sua partição criptografada, tornando-a inútil. Eles também podem roubar dados da unidade, mas apenas quando ela estiver aberta. No entanto, eles não podem roubar dados ou até mesmo ver que os dados existem sem que você os abra explicitamente. Portanto, é seu dever certificar-se de que seu sistema é seguro o suficiente para não ter nenhum usuário root online ao abrir seu volume criptografado.

TL; DR :

  1. Faça o cofre:

    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. Encha o cofre:

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

    sudo umount /crypt
    sudo cryptsetup luksClose my-secret-device
    
  4. Congelar o cofre:

    chmod 400 ~/NSA-Data-Dump-20161012.img
    sudo chattr +i ~/NSA-Data-Dump-20161012.img
    
  5. Abra o cofre:

    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
    
por Kaz Wolfe 12.10.2016 / 19:01
7

Você pode usar encfs para criptografia de diretório .

Basicamente, você precisa criar 2 diretórios, 1 nos quais os dados criptografados serão armazenados e 1 onde você acessará os dados:

mkdir ~/.encrypted
mkdir ~/private

Em seguida, execute (você precisa executar esta linha toda vez que quiser 'montar' seu diretório):

encfs ~/.encrypted/ ~/private/

A menos que você saiba mais sobre isso, apenas pressione ENTER para ir com as configurações padrão (perguntado apenas na primeira vez).

Em seguida, digite sua senha e ela será montada.

Seus dados serão acessados apenas pelo seu usuário com segurança em ~/private/ (você pode praticamente ignorar ~/.encrypted )

Para desmontar:

sudo umount ~/private/

ou

fusermount -u ~/private/

Simples assim.

    
por lepe 14.10.2016 / 09:27
3

Você pode criptografar os dados usando o cryptkeeper , que é realmente um aplicativo muito bom e pode fornecer segurança ao seu arquivo. Você pode instalá-lo com:

sudo apt-get update
sudo apt-get install cryptkeeper

Eu geralmente recomendo que você criptografe a pasta com o nome começando com . porque colocá-lo antes do nome do arquivo iria escondê-lo. É um pequeno truque, mas funciona.

Para mostrar a pasta, use Ctrl + h ou vice-versa.

    
por SHUBHRANEEL GHOSH 12.10.2016 / 10:08