Linuxで暗号化しながらファイルのバックアップを行う – opensslでAES256暗号化

 Linuxの管理をしているとファイルのバックアップなんかをとるのによく使うのが tar コマンド。

tar -czf /mnt/backup/backup.tgz /var/www/html

みたいな感じで使うことが多いけど、セキュリティ保護すべきファイル(/etcとか)をバックアップする場合、ファイルを暗号化しておきたい。

 Linuxでファイルを暗号化する場合には、opensslパッケージを利用するのが簡単。

openssl enc -e 暗号メソッド -in 入力ファイル -out 出力ファイル ↓
openssl enc -e -aes256 -in plain.tgz -out enclypted.tgz

※AES256暗号でplain.tgzを暗号化してenclypted.tgzに出力する
みたいな感じで使う。
 復号は -e オプションに代えて -d オプションを使用する。

openssl enc -d -aes256 -in enclypted.tgz -out plain.tgz

 また、tarもopensslもパイプで接続することも出来るので

tar -cz /var/www/html | openssl enc -e -aes256 -out enclypted.tgz

のようにして暗号化することも出来る。

 パスワードを問われるが、-k オプションでパスワードを指定することが出来るので、バッチ化する場合などには

tar -cz /var/www/html | openssl enc -e -aes256 -out enclypted.tgz -k password

のようにする。

 更に発展させて

tar -cz /var/www/html | openssl enc -e -aes256 -k password | ssh backup-server.my.tld “cat > /mnt/storage/backup.tgz.aes”

のようにして、ファイルをまとめて、暗号化して、SSHを経由して他のホストにバックアップファイルを作る、みたいな一連の動作が出来る。
SSHがパスワード認証だとインタラクティブにパスワード入力を要求されるので、バッチ化する場合にはSSHの認証を公開鍵認証にして対応する(opensslコマンドでの暗号化も公開鍵を使った場合、鍵自体を別途バックアップしておかないと復元できなくなってしまうから注意)

 ファーストサーバの件もあるので、ある程度重要な処理を行っているVPSなら、さくらVPSお名前.com VPSを両方契約して、SSH転送パターンを使って相互でバックアップをとる、みたいな動きにしておきたいところ。

(554)


カテゴリー: サーバ設定   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です