web-dev-qa-db-ja.com

作成されていないtarファイルを暗号化するにはどうすればよいですか

このスクリプトを作成しましたが、ba.tarがまだ作成されていないため機能しません。

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

ba.tarを暗号化するにはどうすればよいですか?

2
amina ibrahim

OpenSSLはこの目的にはやや悪いです。何よりもまず、バックアップしたデータを復号化できるようにするには、コマンドにパスフレーズを指定する必要があります。このパスワードはログファイルで読み取ることができ、セキュリティが問題にならない場合にのみ推奨されます。これは、アーカイブを安全に圧縮することを懸念していると思われます。したがって、暗号化にはGPGを使用することをお勧めします。 gpg(実際には新しいUbuntuインストールではGPG2)またはgpg2(古いUbuntuインストールで最初にインストールする必要があります。単に以下のコマンドをgpg2に変更してください) キーの生成:GnuPGのクラシック、安定、モダンの違い?

そのためには、最初に次のコマンドでgpgキーを作成する必要があります。

gpg --gen-key

その後、任意の名前を使用できる「実名」と電子メールアドレスの入力を求められます(スペースを含まない単一の名前を使用するのが最適です。以下の出力結果を参照)。次に、指定した情報が正しいかどうかを尋ねられます。正しい場合は「o」で確認する必要があります。

$ 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

この後、GUIダイアログでキーを保護するためのパスワードを入力するように求められます。GUIダイアログでは、パスワードが正しいことを確認するために2回入力する必要があります。後でファイルを復号化する唯一の方法なので、そのパスワードを覚えておく必要があります。

出力は次のようになります。

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]

新しく作成したキーをUSBスティックに保存する必要があるファイルにバックアップすることをお勧めします。USBスティックは引き出しなどに保管できるため、新しいシステムをセットアップする必要がある場合にこのキーにアクセスできます。キーをインポートしたい。次のコマンドは、~/Downloadにあるキーと重要なビットのバックアップを作成します。

  1. 一般的な失効証明書を作成します。

    # 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
    

    これにより、例を示すために記入した次のダイアログが表示されます。

    $ 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. 公開鍵のコピーを作成します。

    # This will create a copy of your public key
    gpg -o ~/Download/key-public.gpg --export 891E441008DE443C53B44AB2338E09237C58EFA0
    
  3. 秘密鍵のコピーを作成します。

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

公開キーでgpgを使用するには、サーバーに公開キーファイルをインポートする必要があります。

gpg --import key-public.gpg

まず適切な行を作成し、暗号化と復号化をテストして、crontabまたはスクリプトに配置する前に復号化が機能することを確認しましょう。上記のすべての方法で、次のコマンドを使用して直接暗号化されたアーカイブを生成できるようになりました(キーを作成した「本名」に応じてユーザー名を変更する必要があります)。

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

これにより、事前に暗号化されていないファイルを作成せずに暗号化されたファイルが作成されます。これを復号化するには、キーリングに秘密鍵があるマシンにファイルを配置し、以下を実行する必要があります:

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

提供する必要があるキーパスワードの入力を求められ、これによりhddのbackup.tar.gpgファイルが解凍されます。

もちろん、これを使用して圧縮tarアーカイブを作成することもできます。上記の行のtarコマンドを適宜変更してください。詳細については man gpg および man tar をご覧ください。

これらのコマンドをcrontabに直接配置するか、それらのスクリプトを作成できます。

3
Videonauth