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


24

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


保護とはどういう意味ですか?ファイルの変更または削除をより困難にしたいですか?
ザンナ

保護という意味では、誰も私の許可なしにアクセスすることはできず、変更を簡単に削除することさえできません。または、トリッキーな方法で開くためにパスワードが必要です。
アヴァニバデカ16年

あなたは、単に意味だchown rootchmod go-rwx
njzk2

パスワードを要求するには、自動マウントされない暗号化されたディスクまたはディスクイメージファイルを使用します。
ジョシュア

回答:


32

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

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

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


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

chattr +i -R /discworld

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



変更、削除、名前の変更などはrootのみが行うことができます。rootが変更できない場合でも、すべてのユーザーのみを読み取ります。これは、私の場合は望ましくありません。
アヴァニバデカ16年

@Avanibadheka rootは、編集する前にchattr -iを実行してから、再度chattr + iを実行してロックできます。
リンツウィンド

1
また、システムから不変ビットを変更する機能を永久に(再起動するまで)削除することもできます。
rackandboneman

コピーすることさえできませんか?cat file> outputまたはddは機能しませんか?
コネラック

1
不変ファイルはコピーできます(として設定されていない場合chmod a-r)。テスト例については、端末ログを参照しください。
ルスラン

18

特別なことを何もせずに、所有者以外のすべてのユーザーのアクセス許可を削除することにより、他のユーザーがファイルを読み取り、変更、または削除することを困難にすることができます。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*

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


3
8進数の代わりに文字の許可を使用すると、おそらく理解しやすくなります。したがって、グループや他のユーザーから読み取り、書き込み、実行の許可を削除する場合は、たとえば「chmod go-rwx」になります。chmodのマニュアルページを参照してください。
jamesqf

12

文書を保護するための非常に安全な方法は暗号化です(元の文書を破棄し、暗号化されたバージョンを適切に保存する場合)。

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

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

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

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ます。

:これは、暗号化されたファイルの内容.gpgだれにも読まれないように(暗号化を使用して)保護するだけですが、だれでもそれを削除、コピー、または移動できます!以下からの基本的な保護のためにそれ、暗号化された上の他の回答の許可メソッドを使用し.gpgたファイルを。

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

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

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

GNOME Files暗号化のスクリーンショット


1
「ドキュメントを保護する唯一の安全な方法は暗号化です」私は同意しません。暗号化の行為は安全ではなく、安全です。それはその後の社会的な部分です。「これはパスワードです:11212324234」で、破損したファイルの横にreadmeを作成すると、安全ではないすべてのものを暗号化できます。
-Rinzwind

1
@Rinzwind編集。とにかく、そのレベルの愚かさでは、何も安全ではありません。
UniversallyUniqueID

期待して賛成;-)
リンツウィンド

元の暗号化されていないファイルを削除する(rmまたはファイルマネージャーから削除する)と、元の暗号化されていないファイルを簡単に取得できることに注意してください。たとえば、を使用して、回復不能にするには上書きする必要がありますshred。これはしかしSSDは、フラッシュドライブにも役に立たないのです...
バイト司令

@ByteCommanderありがとう、答えに追加しました。
UniversallyUniqueID

9

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

あなたはまた、グラフィカルにそれを行うことができます-単に右、ファイルをクリックして選択Properties > Permissions > Setし、セットのすべてが、owner何にもフィールド。

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

絵


ねえ、あなたの答えは、GUIでそれを行う方法を示すスクリーンショットから恩恵を受けると思います。
-grooveplex

完了、ありがとう:)(しかし、私のシステムはイタリア語です...)
dadexix86

@Zanna良い観察(答えを修正)
dadexix86

8

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

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

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

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

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

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

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

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

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

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

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

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

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

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を持っている場合、暗号化されたパーティションを変更/破壊して使用できなくなるため、ここで注意する必要があります。また、ドライブからデータを盗むこともできますが、それは開いているときだけです。ただし、明示的に開かない限り、データを盗んだり、データの存在を確認したりすることはできません。したがって、暗号化されたボリュームを開くときに、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
    

もちろん、ルートアクセス権を持つユーザーは、交換するかもしれないcryptsetup...任意のパスワードを入力しログインする何かを
ハーゲン・フォン・Eitzen

@HagenvonEitzenええ、まあ、コンピュータには「本当に安全」というようなものは何もありません。線を引くポイントがあります。
カズウルフ

7

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

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

mkdir ~/.encrypted
mkdir ~/private

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

encfs ~/.encrypted/ ~/private/

それについて詳しく知らない限り、を押しENTERて標準設定に進みます(最初に尋ねただけです)。

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

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

アンマウントするには:

sudo umount ~/private/

または

fusermount -u ~/private/

そのような単純な。


3

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

sudo apt-get update
sudo apt-get install cryptkeeper

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

フォルダを再表示するには、Ctrl+ hまたはvise-versaを使用します。


1
キーストロークCtrl + hは、どのアプリケーションに適用されますか?ls確実に機能しません。
メレビウス

Ctrl-Hは少なくともNautilus(およびNemoなどのフォーク)で機能します。他のファイルマネージャについては、わかりません。使用している場合lsは、使用することができます-aすべての(すなわち隠さ含む)のファイルを表示するようにスイッチを。
s3lph
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.