web-dev-qa-db-fra.com

Comment puis-je chiffrer un fichier tar alors qu'il n'est pas créé

J'ai écrit ce script mais cela ne fonctionne pas car ba.tar n'a pas encore été créé.

#! /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

Comment puis-je chiffrer ba.tar?

2
amina ibrahim

OpenSSL est un peu mauvais à cet effet. Avant tout, vous devez donner un mot de passe à la commande pour pouvoir décrypter vos données sauvegardées. Ce mot de passe pourrait alors être lu dans les fichiers de log. Il est uniquement conseillé lorsque la sécurité n’est pas une préoccupation, ce qui est, je suppose, votre préoccupation de voir les archives archivées en toute sécurité. Mon conseil est donc d'utiliser GPG pour le cryptage. Vous pouvez utiliser comme dans les commandes ci-dessous gpg (GPG2 sur les nouvelles installations Ubuntu) ou _gpg2_ (à installer en premier sur les anciennes installations Ubuntu; il suffit de remplacer la commande par _gpg2_). Voir aussi Génération de clés: Différences entre GnuPG classique, stable, moderne? .

Pour ce faire, vous devez d'abord créer une clé gpg avec la commande suivante:

_gpg --gen-key
_

Vous serez ensuite invité à entrer votre 'Nom réel' qui peut être n'importe quel nom et votre adresse électronique (utilisez de préférence un seul nom sans espaces; voir ci-dessous à quoi ressemble cette sortie). Ensuite, on vous demandera si les informations que vous avez fournies sont correctes et vous devrez confirmer par "o" si elles le sont.

_$ 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
_

Après cela, vous serez invité à donner un mot de passe pour protéger la clé à l'aide d'une boîte de dialogue d'interface graphique dans laquelle vous devrez entrer le mot de passe deux fois pour vous assurer qu'il est correct. Rappelez-vous que ce mot de passe est le seul moyen de décrypter vos fichiers ultérieurement.

La sortie continue comme ceci:

_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]
_

Maintenant, il est judicieux de sauvegarder votre clé nouvellement créée dans un fichier que vous devez stocker sur une clé USB que vous pouvez conserver dans un tiroir, etc. afin que vous ayez accès à cette clé au cas où vous auriez besoin de configurer un nouveau système. vouloir importer votre clé. Les commandes suivantes créeront une sauvegarde de vos clés et de vos bits importants que vous pourrez ensuite trouver dans _~/Download_.

  1. Créez un certificat de révocation général:

    _# 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
    _

    Cela vous donnera le dialogue suivant que j'ai rempli pour donner un exemple:

    _$ 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. Créez une copie de votre clé publique:

    _# This will create a copy of your public key
    gpg -o ~/Download/key-public.gpg --export 891E441008DE443C53B44AB2338E09237C58EFA0
    _
  3. Créez une copie de votre clé privée:

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

Pour utiliser gpg avec votre clé publique, vous devez importer le fichier de clé publique sur votre serveur:

_gpg --import key-public.gpg
_

Commençons par créer d'abord une ligne appropriée et en testant le chiffrement et le déchiffrement pour nous assurer qu'un déchiffrement fonctionnera avant de l'insérer dans la crontab ou les scripts. Avec tout ce qui précède hors du chemin, vous pouvez maintenant générer des archives directement cryptées avec la commande suivante (vous devez changer le nom d'utilisateur en fonction du 'Nom réel' avec lequel vous avez créé votre clé).

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

Cela crée un fichier crypté sans jamais créer de fichier non crypté auparavant. Pour le déchiffrer, vous devez placer le fichier sur votre ordinateur sur lequel vous avez la clé privée dans votre trousseau et procédez comme suit:

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

Vous serez invité à entrer votre mot de passe de clé que vous devrez fournir, ce qui décompactera le fichier backup.tar.gpg sur votre disque dur.

Bien sûr, cela peut aussi bien être utilisé pour créer des archives tar compressées si vous voulez le faire, modifiez simplement les commandes tar dans les lignes ci-dessus en conséquence. Pour plus de précisions, voir man gpg et man tar .

Vous pouvez mettre ces commandes directement dans votre crontab ou créer des scripts pour elles.

3
Videonauth