Como posso criptografar o arquivo tar enquanto ele não é criado?

3

Eu escrevi esse script, mas não funciona, pois ba.tar ainda não foi criado.

#! /bin/bash
crontab -l|sed "$a00 23 * * 5 tar cvf /var/backups/ba.tar /home/$USER"|crontab -
openssl aes-128-cbc -salt -in /var/backups/ba.tar -out /var/backups/ba.tar.aes -k 1416
rm /var/backups/ba.tar

Como posso criptografar ba.tar ?

    
por amina ibrahim 04.12.2017 / 18:22

1 resposta

3

O OpenSSL é um pouco ruim para esse propósito, antes de tudo você teria que dar ao comando uma senha para poder descriptografar seus dados de backup depois. Essa senha poderia ser lida nos arquivos de log e, então, é apenas recomendada quando a segurança não é uma preocupação, o que é que eu assumo sua preocupação de ter os arquivos compactados de forma segura. Então, meu conselho é usar o GPG para criptografia. Você pode usar como feito nos comandos abaixo gpg (que na verdade é GPG2 em instalações mais novas do Ubuntu) ou gpg2 (que precisa ser instalado primeiro em instalações antigas do Ubuntu; simplesmente altere o comando abaixo para gpg2 ). Veja também Geração de chaves: Diferenças entre o GnuPG clássico, estável e moderno? .

Para fazer isso, você precisa criar uma chave gpg primeiro com o seguinte comando:

gpg --gen-key

Em seguida, você será solicitado para o seu 'nome real', que pode ser qualquer nome e seu endereço de e-mail (melhor usando um único nome sem espaços; veja abaixo como esta saída se parece). Em seguida, você será perguntado se as informações fornecidas estão corretas e você deve confirmar com 'o' se for.

$ gpg --gen-key
gpg (GnuPG) 2.1.15; Copyright (C) 2016 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-gen-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: Videonauth
Email address: [email protected]
You selected this USER-ID:
    "Videonauth <[email protected]>"

Change (N)ame, (E)mail, or (O)kay/(Q)uit? o

Depois disso, você será solicitado a fornecer uma senha para proteger a chave por meio de uma caixa de diálogo da GUI, na qual deverá inserir a senha duas vezes para garantir que esteja correta. Você deve se lembrar dessa senha, já que é a única maneira de descriptografar seus arquivos mais tarde.

A saída continua assim:

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key 338E09237C58EFA0 marked as ultimately trusted
gpg: revocation certificate stored as '/home/videonauth/.gnupg/openpgp-revocs.d/891E441008DE443C53B44AB2338E09237C58EFA0.rev'
public and secret key created and signed.

pub   rsa2048 2017-12-06 [SC]
      891E441008DE443C53B44AB2338E09237C58EFA0
uid                      Videonauth <[email protected]>
sub   rsa2048 2017-12-06 [E]

Agora é uma boa idéia fazer backup de sua chave recém-criada em um arquivo que você deve armazenar em um dispositivo USB que pode ser guardado em uma gaveta, etc. para ter acesso a essa chave, caso precise configurar uma novo sistema e deseja importar sua chave. Os seguintes comandos criarão um backup de suas chaves e bits importantes que podem ser encontrados em ~/Download .

  1. Crie um certificado de revogação geral:

    # generate a copy of the revoke certificate
    # you need the key ID for this which you can find in
    # the before output. In this example this would be
    # 891E441008DE443C53B44AB2338E09237C58EFA0
    gpg -o ~/Download/key-revocation-cert.asc --gen-revoke 891E441008DE443C53B44AB2338E09237C58EFA0
    

    Isso fornecerá a seguinte caixa de diálogo que preenchi para dar um exemplo:

    $ gpg -o ~/Download/key-revocation-cert.asc --gen-revoke 891E441008DE443C53B44AB2338E09237C58EFA0 
    sec  rsa2048/338E09237C58EFA0 2017-12-06 Videonauth <[email protected]>
    
    Create a revocation certificate for this key? (y/N) y
    Please select the reason for the revocation:
      0 = No reason specified
      1 = Key has been compromised
      2 = Key is superseded
      3 = Key is no longer used
      Q = Cancel
    (Probably you want to select 1 here)
    Your decision? 0
    Enter an optional description; end it with an empty line:
    > Example Reason
    > 
    Reason for revocation: No reason specified
    Example Reason
    Is this okay? (y/N) y
    ASCII armored output forced.
    Revocation certificate created.
    
    Please move it to a medium which you can hide away; if Mallory gets
    access to this certificate he can use it to make your key unusable.
    It is smart to print this certificate and store it away, just in case
    your media become unreadable.  But have some caution:  The print system of
    your machine might store the data and make it available to others!
    
  2. Crie uma cópia da sua chave pública:

    # This will create a copy of your public key
    gpg -o ~/Download/key-public.gpg --export 891E441008DE443C53B44AB2338E09237C58EFA0
    
  3. Crie uma cópia da sua chave privada:

    # This will create a copy of your private key
    gpg -o ~/Download/key-private.gpg --export-secret-keys 891E441008DE443C53B44AB2338E09237C58EFA0
    

Para usar o gpg com sua chave pública, você precisa importar o arquivo de chave pública no seu servidor:

gpg --import key-public.gpg

Vamos começar criando uma linha adequada primeiro e testando a criptografia e a descriptografia para garantir que uma descriptografia funcione antes de colocá-la no crontab ou nos scripts. Com todas as alternativas acima, agora você pode gerar arquivos diretamente criptografados com o seguinte comando (você precisa alterar o nome de usuário de acordo com o 'Nome real' com o qual criou sua chave).

tar -cv <directory-to-archive> | gpg -e -r Videonauth -o backup.tar.gpg

Isso cria um arquivo criptografado sem nunca criar um arquivo não criptografado de antemão, para descriptografá-lo você precisa colocar o arquivo em sua máquina onde você tem a chave privada em seu chaveiro e faça o seguinte:

gpg -d backup.tar.gpg | tar -xv

Você será solicitado a fornecer sua senha de chave, a qual deverá ser fornecida, e isso descompactará o arquivo backup.tar.gpg no seu disco rígido.

É claro que isso também pode ser usado para criar arquivos tar compactados se você quiser fazer isso, apenas mude os comandos tar nas linhas acima de acordo. Para mais informações, consulte man gpg e man tar .

Você pode colocar esses comandos diretamente no seu crontab ou criar scripts para eles.

    
por Videonauth 06.12.2017 / 06:05