web-dev-qa-db-ja.com

ファイルを保護する方法は?

重要なデータを含むファイルを保護する方法は?たとえば、重要なファイルがある場合、Ubuntuでこれらのファイルをより保護する方法や戦略はありますか?誰かがそれを開こうとするたびに、いくつかのファイルにパスワードを要求させたいとさえ思います。セキュリティポリシーの面でUbuntuのバージョンに影響しますか?外部で暗号化アルゴリズムを使用できますか?よろしく。

24
Avani badheka

最適な方法はchattr +i {file}です。これにより不変の属性が設定され、rootを含む誰もがファイルを変更、削除、名前変更、またはハードリンクを作成できなくなります。

ファイルを編集できるのはrootのみです。 (S)不変のビットchattr -i {file}を削除することでこれを元に戻さなければならず、ファイルに対して何でもできます。 + iを再度設定すると、ファイルは変更されなくなります。

ただし、ファイルが保存されているパーティションのフォーマットは妨げられません。ファイルの盗難を防ぎます。


必要に応じて、完全なマウントポイントでこれを行うこともできます。

chattr +i -R /discworld

「discworld」全体とその中のすべてを不変にします(元に戻すにはchattr -i -R /discworld;))


32
Rinzwind

特別なことを何もせずに、所有者以外のすべてのユーザーのアクセス許可を削除することにより、他のユーザーがファイルを読み取り、変更、または削除することを困難にすることができます。 rootをファイルの所有者にし、rootのみがアクセスできるディレクトリ内に配置します...

Sudo mkdir /home/secret     #this directory will be owned by root, no need to chown
Sudo chmod 700 /home/secret

そこにファイルを移動(Sudo mv file /home/secret)して

Sudo chown root: /home/secret/file
Sudo chmod 600 /home/secret/file

chmodおよびchownは複数の引数を取ります:chmod 600 file1 file2またはchmod 600 file*

それ以外は、暗号化を使用...

18
Zanna

ドキュメントを保護するための非常に安全な方法は暗号化です(元のファイルを破棄し、暗号化されたバージョンを適切に保存する場合)。

許可(他の回答で示唆されている)は回避できます( this を参照)。

したがって、ファイルを適切に暗号化することをお勧めします。方法は次のとおりです。

(グラフィカルインターフェイスメソッドについては、この回答の最後を参照してください)

gpgがインストールされていることを確認してください。

たとえば、Important_File.txtという名前のファイルを暗号化するには、次を使用します。

$ gpg -c Important_File.txt

ここでパスワードを入力します(これは後で読む必要があるときに使用されます)。

これで、元の名前と.gpg拡張子を持つファイル、たとえばImportant_File.txt.gpgが取得されます。

元のファイルを削除し、.gpgバージョンを保持します。セキュアなshredユーティリティ(SSDドライブまたはSDカードではまだ動作しません)を使用しない場合、ディスクから元のファイルを取得するのは簡単です:

$ shred Important_File.txt

これで、Important_File.txt.gpgだけが手に入りました。

読む必要があるときはいつでも

$ gpg Important_File.txt.gpg

次に、最初のコマンドで設定したパスワードを入力します。元のImportant_File.txtを取得します。

NOTE:これは、暗号化された.gpgファイルのcontentsのみを保護します誰でも(暗号化を使用して)読み取られますが、だれでも削除、コピー、または移動できますthatからの基本的な保護のために、暗号化された.gpgファイルで他の回答の許可メソッドを使用します。

グラフィカルインターフェイス(GUI)メソッド

Seahorseアプリケーションをインストールします。

次に、ファイルアプリケーションからこれを実行できます。

Screenshot of GNOME Files encrypting

12

所有者だけが読み取りと書き込みを行えるように、非常に厳しいアクセス許可を600に設定するだけです(実行アクセス許可が必要な場合は、700になります)。

グラフィカルに実行することもできます-ファイルを右クリックし、Properties > Permissions > Setを選択して、all butownerフィールドを何も設定しないでください。

例として図を参照してください。

the picture

9
dadexix86

あなたがシステム上の単一のユーザーであり、誰もあなたの許可なしにあなたのコンピューターに合理的にアクセスできない場合、 Zanna's answer に従って、このコマンドを使用してアクセスをブロックすることができます。

Sudo chown root:root /my/secret/file.txt
Sudo chmod 600 /my/secret/file.txt

この場合、ファイルはrootユーザーのみが読み書きできます。これは、だれもあなたの許可なしにコンピュータを起動できないか、ハードドライブを持ち上げることができない場合、「十分に安全」と見なされます。この場合、rootユーザーは、許可がない場合でも常にファイルを読み取ることができるため、rootユーザーを使用しています。 rootユーザーを使用することで、only1人のユーザーのみがアクセスできるようにします。

何らかの方法、形状、または形式でファイルを変更不可としてマークする場合は、i属性を使用して、ファイルをimmutable。この場合、ファイルの権限はロックされており、いかなる状況でも変更されない可能性があります。これにより、次のコマンドを実行してファイルを変更不可にし、削除や権限の変更からファイルを保護できます。

Sudo chattr +i /my/secret/file.txt

変更する場合は、+i-iに置き換えて、ファイルを一時的にロック解除します。より詳細なビューについては、 Rinzwindの答え を参照してください。

これで、他の人があなたのコンピューターにアクセスできる場合(リモートSudoアクセスまたは何らかの形の物理的アクセス)、これは即座にバラバラになります。攻撃者はroot powersを使用して、ファイルの読み取り、Live USBの挿入、またはハードドライブのプルを行うことができます。

したがって、ファイルを暗号化する必要があります。個人的には「ファイルコンテナ」を使用することを好みます。そうすれば、必要に応じてファイルコンテナをさらに使い、成長させることができます。ファイルが誤って削除(または変更)されないように、chattr +iを引き続きお勧めします。最後に、暗号化されたイメージを使用している場合、アクセス許可を設定して、ディスクのマウント時に他のユーザーが非常に限られたファイルのサブセットにアクセスできるようにすることができます。このガイドはもともと利用可能だった here で、ここでの使用に適合しました。

まず、使用するディスクイメージを作成します。この例では、5 GBにします。

dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img

次に、画像を暗号化する必要があります。

Sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img

ここで、希望する暗号化パスワードを入力する選択肢があります。これが完了したら、未加工のブロックデバイスを公開する必要があります。

Sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device

現時点では、復号化されたファイルコンテナーがありますが、ファイルシステムはなく、役に立たないほど優れています。それを修正しましょう:

Sudo mkfs.ext4 /dev/mapper/my-secret-device

次に、新しいパーティションをマウントする場所が必要です。この場合、/cryptに配置します。私はユーザー1000なので、自分(およびルート)が読み取り/書き込みのみできるようにパーティションを設定します。

Sudo mkdir /crypt
Sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000

これで、ファイルツールを使用して/cryptに移動し、すべての機密ファイルをそこに保存できます。完了したら、パーティションをアンマウントして再暗号化する必要があります。

Sudo umount /crypt
Sudo cryptsetup luksClose my-secret-device

次に、イメージファイルに適切なパーティションを設定して、自分とrootだけがアクセスできるようにし、それ以上変更できないようにします。

chmod 400 ~/NSA-Data-Dump-20161012.img
Sudo chattr +i ~/NSA-Data-Dump-20161012.img

このファイルを読み取り用に開きたいときはいつでも、次の2つのコマンドを実行するだけでよく、簡単にエイリアスを作成できます。

Sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
Sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro

暗号化されたデータは/cryptで利用でき、読み取り専用のままであり、自分とrootのみがアクセスできます。

ファイルを変更する場合は、アクセス許可を変更してからマウントする必要があります。

Sudo chattr -i ~/NSA-Data-Dump-20161012.img
chmod 700 ~/NSA-Data-Dump-20161012.img
Sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
Sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro

ここで、ユーザーが自分のシステムにルートを持っている場合、暗号化されたパーティションを変更/破棄して使用できなくなるため、ここで注意する必要があります。また、ドライブからデータを盗むこともできますが、ドライブが開いているときだけです。ただし、明示的に開かない限り、データを盗んだり、データの存在を確認したりすることはできません。したがって、暗号化されたボリュームを開くときに、rootユーザーがオンラインにならないようにシステムが十分に安全であることを確認するのはあなたの義務です。


TL; DR

  1. ボールトを作成します。

    dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
    Sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
    Sudo mkfs.ext4 /dev/mapper/my-secret-device
    
  2. 金庫を満たします:

    Sudo mkdir /crypt
    Sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
    
  3. ボールトをロックします。

    Sudo umount /crypt
    Sudo cryptsetup luksClose my-secret-device
    
  4. ボールトをフリーズします。

    chmod 400 ~/NSA-Data-Dump-20161012.img
    Sudo chattr +i ~/NSA-Data-Dump-20161012.img
    
  5. ボールトを開きます。

    Sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
    Sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
    
8
Kaz Wolfe

ディレクトリ暗号化のencfs を使用できます。

基本的に、2つのディレクトリを作成する必要があります。1つは暗号化されたデータが保存され、もう1つはそのデータにアクセスする場所です。

mkdir ~/.encrypted
mkdir ~/private

次に実行します(ディレクトリを「マウント」するたびにこの行を実行する必要があります):

encfs ~/.encrypted/ ~/private/

あなたがそれについてもっと知らない限り、ただ押す ENTER 標準設定を使用する(最初にのみ要求)。

次に、パスワードを入力すると、パスワードがマウントされます。

データには、~/private/でユーザーのみが安全にアクセスします(~/.encryptedはほとんど無視できます)

アンマウントするには:

Sudo umount ~/private/

または

fusermount -u ~/private/

そのような単純な。

7
lepe

cryptkeeperを使用してデータを暗号化できます。これは実際には非常に優れたアプリケーションであり、ファイルにセキュリティを提供できます。以下でインストールできます:

Sudo apt-get update
Sudo apt-get install cryptkeeper

通常、.で始まる名前のフォルダーを暗号化することをお勧めします。ファイル名の前に置くと隠れるからです。ちょっとしたトリックですが、うまくいきます。

フォルダを再表示するには、次を使用します Ctrl+h またはその逆。

3