Linuxの特定のディレクトリを暗号化するユーティリティを探しています。フルディスク暗号化サービスを探しているのではなく、ファイルをクラウドに保存する目的でいくつかのディレクトリを暗号化することだけを目的としています。それらを取得したら、それらにアクセスする前に復号化する必要があります。いくつかのディレクトリ(サイズが数百GB)に対してこれを行うことを検討しています。何か案は?できればCLIベース。
このタスクにはGnuPGのみを使用します。フォルダは最初にTAR-GZアーカイブにパックされます。
tar czf files.tar.gz /path/to/my/files
まだ行っていない場合は、最初にGPG秘密/公開鍵ペアを作成する必要があります。
gpg --gen-key
指示に従ってください。最初のテストでは、デフォルトで十分です。次のようなものが表示されます:
gpg(GnuPG)2.0.18; Copyright(C)2011 Free Software Foundation、Inc。 これはフリーソフトウェアです。自由に変更して再配布できます。 法律で許可されている範囲で、保証はありません。 必要なキーの種類を選択してください: (1)RSAおよびRSA(デフォルト) (2)DSAおよびElgamal (3)DSA (署名のみ) (4)RSA(署名のみ) あなたの選択? 1 RSAキーの長さは1024〜4096ビットの可能性があります。 どのキーサイズが必要ですか? (2048)4096 リクエストされたキーサイズは4096ビットです。 キーの有効期間を指定してください。 0 =キーの有効期限なし =キーの有効期限はn日数 w =鍵はn週間で期限切れ m =鍵はnか月で期限切れ y =鍵はn年で期限切れ 鍵は有効ですか? (0) キーの有効期限はありません これは正しいですか? (y/N)y GnuPGはキーを識別するためのユーザーIDを作成する必要があります。 実名:ファイル暗号化キー メールアドレス:[email protected] コメント:ファイル暗号化キー このユーザーIDを選択しました: 「ファイル暗号化キー(ファイル暗号化キー)」 変更(N)ame、(C)omment、(E)mailまたは(O)kay /(Q)uit? o
キーのパスフレーズを要求されます。強いものを使用することを強くお勧めします。とにかくファイルの暗号化には必要ないので、後でバッチを使用することについて心配する必要はありません。
すべてが完了すると、次のようなものが画面に表示されます。
ランダムなバイトを大量に生成する必要があります。素数生成中に 他のアクション(キーボードでの入力、マウスの移動、 ディスクの利用)を実行することをお勧めします。これは、乱数 ジェネレーターに十分なエントロピーを得るためのより良いチャンスを与えます。 たくさんのランダムなバイトを生成する必要があります。素数生成中に 他のアクション(キーボードでの入力、マウスの移動、 ディスクの利用)を実行することをお勧めします。これにより、乱数 ジェネレータが十分なエントロピーを獲得するチャンスが高まります。 gpg:最終的に信頼できるとマークされたキーFE53C811 公開および秘密キーが作成および署名されます。 gpg:trustdbのチェック gpg:必要なマージナル3つ、必要なコンプリート1つ、PGP信頼モデル gpg:深さ:0有効:1署名済み:0信頼:0-、0q、0n、0m、0f、1u pub *****/******** 2013-03-19 キーフィンガープリント= *** * **** **** **** **** **** **** **** **** **** uid File Encryption Key(File Encryption Key ) sub *****/******** 2013-03-19
これで、他のマシンにインポートするために、公開鍵ファイルをエクスポートしたい:
gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'
File Encryption Key
は、キー生成手順中に入力した名前です。
今、私は新しく作成されたアーカイブでGnuPGを使用しています:
gpg --encrypt --recipient 'File Encryption Key' files.tar.gz
files.tar.gz.gpg
暗号化されたファイル。
次のコマンドで復号化できます(パスフレーズの入力を求められます):
gpg --output files.tar.gz --decrypt files.tar.gz.gpg
それが全体の魔法です。
必ずキーをバックアップしてください。パスフレーズを忘れないでください。バックアップされていない場合、または忘れてしまった場合は、ギガバイトのデータがジャンクになります!
次のコマンドで秘密鍵をバックアップします。
gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'
利点
私の場合、主に2つの方法を使用します。
tar cvf backup.tar /path/to/folder
Tarコマンドから[v]スイッチを削除して、詳細モードをオフにすることができます。
openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword
Aes-128-cbcは、opensslがサポートするその他の暗号化方式(openssl --help)に変更できます。
openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar
パスワードの入力を求められます。
Zip -r -0 -e backup.Zip /path/to/folder
パスワードの入力を求められます。
これの1つの利点:Windowsベースのシステムでよりよく動作します。
公開鍵と秘密鍵のペアを使用してファイルを暗号化したくない場合は、代わりにパスフレーズを使用した対称暗号化のみを使用するには、次のコマンドを使用します。
gpg --symmetric --cipher-algo aes256 files.tar.gz
パスフレーズの入力を求められます。その後、files.tar.gz.gpg
という名前の暗号化ファイルが作成されます。
コマンドを使用して復号化するには
gpg --decrypt files.tar.gz.gpg > files.tar.gz
Truecryptの非常にシンプルで優れたソリューションを使用できます。コンソール専用のパッケージがあります。学習と使用は非常に簡単です。 http://www.truecrypt.org
そのような目的のために、Fuse暗号化( encfs など)をお勧めします-より小さいデータの場合はgpgを使用します。
ユーザー空間に実装されているため、特別な権限は必要ありません。
1つのファイルを暗号化する非常に簡単な方法は次のとおりです。
gpg -c filename.ext
パスフレーズを2回求められ、gpgはfilename.ext.gpg
を作成します。暗号化されたファイルをクラウドサービスにアップロードします。ファイルを回復するには、以下を使用します。
gpg filename.ext.gpg
filename.ext
を再作成します。 暗号化されていないファイルは安全ではなく、削除後も関連データはストレージメディアに残ります。安全なのはgpgコンテナだけです。 EncFS は、ファイルレベルでのクラウドベースの暗号化のより実用的な代替手段です。
データの暗号化を目的としたLinuxファイルシステムがいくつかあります。 Lux について考えたことはありますか?