web-dev-qa-db-ja.com

Linux用の暗号化された書き込み専用ファイルシステムはありますか?

書き込み専用モードでマウントできるLinux用の暗号化されたファイルシステムを探しています。つまり、パスワードを入力しなくてもマウントできるはずですが、ファイルの書き込み/追加はできますが、どちらもできません。書き込んだファイルを読み取ったり、ファイルシステムに既に存在するファイルを読み取ったりすることができます。ファイルへのアクセスは、ファイルシステムがパスワードを介してマウントされている場合にのみ許可する必要があります。これの目的は、ファイル自体を公開せずに、書き込まれるだけで変更されることのないログファイルまたは同様のデータを書き込むことです。システムが完全に危険にさらされている場合でもデータにアクセスできないようにしたいので、ファイルのアクセス許可はここでは役に立ちません。

Linuxにはそのようなものがありますか?または、そうでない場合、暗号化されたログファイルを作成するための最良の代替手段は何でしょうか?

私の現在の回避策は、データをgpg --encryptにパイプするだけです。これは機能しますが、ファイルシステム全体に簡単にアクセスできないため、各ファイルをgpg --decryptに手動でパイプする必要があるため非常に面倒です。

14
Grumbel

...システムが完全に危険にさらされている場合でも、データにアクセスできないようにしたい。

これは不可能です。システムが完全に侵害された場合、「定義上」、暗号化キーを含め、システム上のあらゆるものにアクセスできます。

データを暗号化/復号化するためのキーが暗号化されたデータと同じシステム上にある場合、システムの実行中に暗号化はシステムの侵害から保護するのに役に立ちません。たとえば、LUKSファイルシステムがマウントされていて、誰かがシステムへのルートアクセスを取得した場合、復号化するにはRAMに存在する必要があるため、RAMからキーをプルすることができます。ファイルシステム。あなたの状況では、ファイルを暗号化するたびにパスフレーズを入力している場合、あなたは保護されています(キーロガーがシステムに存在しないと仮定します)、そうでない場合、あなたは同じ状況にあり、あなたのシステムを危険にさらす誰かがそれを見つけることができますキーを押して、すべての暗号化を元に戻します。

保護したいデータをシステムの外部に送信する必要があります。+ rootに絶対にアクセスさせたくない場合は、そのシステムの中間メディアにデータを書き込まないでください。 rsyslogはロギングに関してこれを明示的にサポートしており、OpenVPN、stunnelなどを使用してソースとシンク間の接続を暗号化できます。他にも「一方向」の転送オプションがあると確信しています。

4
LawrenceC

あなたが間違った方向に進んでいるように私には聞こえます。書き込みはできるが読み取りはできないファイルが必要な場合は、ファイルのアクセス許可が必要です。


$ touch log
$ chmod 222 log
$ echo test > log
$ cat log
cat: log: Permission denied

もちろん、このファイルは暗号化されたファイルシステム上に置くことができます。

3
gorilla
umask 0477 && touch file && echo test > file && cat file

便利なこともあります。現在のプロセス内で作成されたファイルには、0200モードがあります。

1
edk