Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
コンテンツコンテンツ
セキュリティ強化ガイド
  1. 前書き
  2. 1 セキュリティと機密保持
  3. I 認証
    1. 2 PAM を利用した認証
    2. 3 NIS の使用
    3. 4 YaST を利用した認証クライアントの設定
    4. 5 389 Directory Server を利用した LDAP サービス
    5. 6 Kerberos を利用したネットワーク認証
    6. 7 Active Directory サポート
    7. 8 FreeRADIUS サーバの構築
  4. II ローカルセキュリティ
    1. 9 物理的なセキュリティ
    2. 10 ソフトウエア管理
    3. 11 ファイルの管理
    4. 12 パーティションやファイルの暗号化
    5. 13 cryptctl を利用したアプリケーション向けのストレージ暗号化
    6. 14 ユーザ管理
    7. 15 cronat の制限
    8. 16 Spectre/Meltdown チェッカー
    9. 17 YaST を利用したセキュリティの設定
    10. 18 Polkit 認可フレームワーク
    11. 19 Linux でのアクセス制御リスト
    12. 20 AIDE を利用した侵入検知
  5. III ネットワークセキュリティ
    1. 21 X Window System と X 認証
    2. 22 OpenSSH によるネットワーク操作の機密保持
    3. 23 マスカレードとファイアウオール
    4. 24 VPN サーバの設定
    5. 25 X Window System で動作する PKI マネージャ XCA による管理
    6. 26 sysctl 変数によるネットワークセキュリティの改善
  6. IV AppArmor による権限の制限
    1. 27 AppArmor の紹介
    2. 28 入門
    3. 29 プログラムに対する予防接種
    4. 30 プロファイルのコンポーネントと文法
    5. 31 AppArmor のプロファイルリポジトリ
    6. 32 YaST を利用したプロファイルの構築と管理
    7. 33 コマンドラインからのプロファイル構築
    8. 34 チェンジハット機能による Web アプリケーションのプロファイル作成
    9. 35 pam_apparmor によるユーザの制限
    10. 36 プロファイルを作成したアプリケーションの管理
    11. 37 サポート
    12. 38 AppArmor 用語集
  7. V SELinux
    1. 39 SELinux の設定
  8. VI Linux 監査フレームワーク
    1. 40 Understanding Linux audit
    2. 41 Linux 監査フレームワークの設定
    3. 42 監査ルールセットの紹介
    4. 43 その他の情報源
  9. A GNU ライセンス
ナビゲーション
適用先 openSUSE Leap 15.6

12 パーティションやファイルの暗号化 Edit source

ファイルやパーティション、ディスク全体の暗号化を行うことで、お使いのデータに対する不正なアクセスを保護し、ファイルや文書に対する機密を保護することができます。

暗号化を行うにあたっては、下記のいずれかの方法をとることができます:

ハードディスク内のパーティションの暗号化

YaST を利用することで、インストール中でもインストール後でも暗号化されたパーティションを作成することができます。詳しくは 12.1.1項 「インストール時における暗号化パーティションの作成」 および 12.1.2項 「動作中のシステムにおける暗号化パーティションの作成」 をお読みください。この方式は外付けのハードディスクなど、リムーバブルメディアに対しても適用することができます。こちらに関する詳細は 12.1.3項 「リムーバブルメディアの内容の暗号化」 をお読みください。

GPG を利用したファイル単独での暗号化

1 つまたは複数のファイルを単純に暗号化したいだけであれば、 GPG ツールをお使いになるとよいでしょう。詳しくは 12.2項 「GPG を利用したファイルの暗号化」 をお読みください。

Rage を利用したファイル単独での暗号化

1 つまたは複数のファイルを単純に暗号化したいだけであれば、 Rage 暗号化ツールをお使いいただくこともできます。詳しくは 12.3項 「Rage によるファイルの暗号化」 をお読みください。

警告
警告: 暗号化による保護範囲について

本章で説明している暗号化は、動作中のシステムでの保護を行う仕組みではありません。たとえ暗号化されているボリュームであっても、マウントが成功してしまえば、アクセス許可での制限がない限り、アクセスができてしまいます。本章での暗号化は、コンピュータをどこかに置き忘れてしまった場合や、盗難にあった場合に役に立つ仕組みであり、このような場合に機密データが読み取られることのないように保護を実現するものです。

12.1 YaST を利用した暗号化ファイルシステムの設定 Edit source

YaST を使用することで、インストール中であってもインストールが終わった後からであっても、暗号化されたパーティションや仮想ハードディスクを作成することができます。しかしながら、インストール済みのシステムに暗号化されたパーティションを追加したい場合、既存のパーティションのサイズを変更したりする作業が必要になることがありますので、比較的難しい作業になります。このような場合は、必要なサイズで暗号化されたファイルを作成して、ファイルやディレクトリなどをその中に書き込むように設定したほうが便利な場合があります。それに対して、パーティション全体を暗号化する場合は、パーティションレイアウト内に専用のパーティションを作成して対応する必要があります。また、 YaST で表示される標準のパーティション提案では、既定では暗号化されたパーティションが含まれません。インストール時に暗号化されたパーティションを設定したい場合は、パーティションダイアログにて手作業で設定をしてください。

12.1.1 インストール時における暗号化パーティションの作成 Edit source

警告
警告: パスワードの入力について

暗号化されたパーティションを作成する際は、パスワードを忘れることがないようにしてください。パスワードを忘れてしまうと、暗号化されたデータにアクセスできなくなってしまいます。

YaST の熟練者向けパーティション設定を使用することで、暗号化パーティションを作成することができます。新しい暗号化パーティションを作成するには、下記の手順で行います:

  1. システム › パーティション設定 を選択して、 YaST 熟練者向けパーティション設定を起動します。

  2. ハードディスクを選択して 追加 を押します。プライマリもしくは論理パーティション のいずれかを選択します。

  3. パーティションに対して設定するサイズ、もしくは範囲を指定します。

  4. パーティションに対して設定するファイルシステムと、マウントポイントを選択します。

  5. このとき、 デバイスの暗号化 にチェックを入れておきます。

    注記
    注記: 追加のソフトウエアが必要となる件について

    デバイスの暗号化 にチェックを入れると、追加のソフトウエアをインストールするよう促すポップアップウインドウが表示されることがあります。暗号化パーティションを動作させるには、これら全てのパッケージをインストールする必要があります。

  6. 暗号化されたパーティションを自動ではマウントしたくない場合は、 マウントのオプションデバイスをマウントしない を選択します。自動的にマウントする場合は、 デバイスのマウント を選択してマウントポイントを入力または選択してください。

  7. 次へ を押して、このパーティションを暗号化するためのパスワードを入力します。入力されたパスワードは表示されません。入力ミスを防止するため、パスワードは 2 回入力してください。

  8. あとは 完了 を押して処理を完了します。暗号化パーティションが新しく作成されます。

/etc/fstab 内で暗号化されているパーティションを自動的にマウントするように設定している場合、システムの起動時に暗号化パーティションに対するパスワード入力を求めるようになります。パスワードの入力を行うことでマウント処理が実行され、全てのユーザからアクセスできるようになります。

システムの起動時に暗号化されたパーティションをマウントしたくない場合は、パスワード入力の際に Enter を押してください。再度パスワードの入力を求められた場合も、同様に入力を拒否してください。これにより、暗号化されたパーティションがマウントされなくなりますが、オペレーティングシステムの起動処理はそのまま続けられるようになります。この場合、暗号化されたパーティション内のデータにはアクセスができなくなります。

システムの起動時にマウントしなかった暗号化パーティションをマウントしたい場合は、ファイルマネージャを開いて 他の場所 を選び、表示された一覧の中から暗号化されたパーティションを選択してください。これにより、パスワードの入力が求められますので、パスワードを入力してください。

既にパーティションが存在するマシンに対してシステムをインストールしている場合は、インストール時に既存のパーティションを暗号化するように設定することもできます。この場合は、 12.1.2項 「動作中のシステムにおける暗号化パーティションの作成」 の手順に従って作業を行ってください。ただし、既存のパーティション内にある全てのデータが削除されることに注意してください。

12.1.2 動作中のシステムにおける暗号化パーティションの作成 Edit source

警告
警告: 動作中のシステムにおける暗号化の有効化について

動作中のシステムで暗号化されたパーティションを作成することもできます。ただし、既存のパーティションを暗号化すると、その中のデータは全て削除されてしまうほか、場合によっては既存のパーティションのサイズを変更したり、再構築したりする作業が必要になってしまうこともあります。

動作中のシステムで暗号化されたパーティションを作成するには、 YaST コントロールセンターから システム › パーティション設定 を選び、表示された警告メッセージには はい を選びます。あとは 熟練者向けパーティション設定 で暗号化したいパーティションを選び、 編集 を押します。残りの作業は 12.1.1項 「インストール時における暗号化パーティションの作成」 で示している手順と同じです。

12.1.3 リムーバブルメディアの内容の暗号化 Edit source

YaST では、リムーバブルメディア (外付けハードディスクや USB フラッシュメモリなど) についても、通常のストレージデバイスと同じように扱います。これまでに説明してきたものと同じ手順で、リムーバブルメディア内に仮想ディスクやパーティションを作成することができます。ただし、システム起動時の自動マウントについては、無効化するようにしてください。これは一般に、リムーバブルメディアはシステムの起動時には接続されていないことがあるためです。

YaST でリムーバブルデバイスを暗号化した場合、 GNOME デスクトップでは暗号化されたパーティションを自動的に認識することができますので、デバイスへのアクセス時にパスワード入力を求めるようになっています。また、 GNOME の動作時に FAT 形式でフォーマットされたリムーバブルデバイスを接続すると、デスクトップを利用しているユーザがデバイスの所有者になります。 FAT 以外のファイルシステムを使用しているデバイスの場合は、デバイスに対して読み書きができるようにするため、 root でパーミッションを変更するなどして、所有権を明示的に設定してください。

12.2 GPG を利用したファイルの暗号化 Edit source

GNU Privacy Guard (GPG) 暗号化ソフトウエアを使用することで、ファイルや文書を個別に暗号化することができます。

GPG でファイルを暗号化するには、まず鍵対を生成する必要があります。鍵対を生成するには、 gpg --gen-key を実行して、表示される手順に従って作業を行ってください。鍵対を作成する際、 GPG はユーザ ID (UID) を作成して鍵対を識別するようになります。ユーザ ID には本名やコメント、電子メールアドレスを含めることができます。この UID (もしくは名前の一部や電子メールアドレス) は、ファイルを暗号化する際に指定します。既存の鍵の一覧を取得するには、 gpg --list-keys コマンドを実行します。鍵対を生成したあと、ファイルを暗号化するには、下記のコマンドを実行します:

> gpg -e -a --cipher-algo AES256 -r UID ファイル名

ここで、 UID には UID の一部 (たとえば名前など) を、 ファイル名 には暗号化したいファイルを指定します。たとえば下記のようになります:

> gpg -e -a --cipher-algo AES256 -r Tux secret.txt

このコマンドは、指定したファイルのファイル名に .asc という新しい拡張子を追加して、暗号化されたファイルを作成します (今回の例では、 secret.txt.asc というファイルが作成されます) 。

-a は ASCII テキスト形式でファイルを出力するための指定です。これにより、ファイルをコピー&ペーストで貼り付けることができるようになります。 -a を省略した場合はバイナリ形式のファイルが作成され、ファイル名も secret.txt.gpg のような名前になります。

暗号化されたファイルを復号するには、下記のコマンドを実行します:

> gpg -d -o 復号化したファイル 暗号化されたファイル

ここで、 復号化したファイル には復号後のファイルのファイル名 (出力先) を、 暗号化されたファイル には暗号化されたファイルのファイル名を指定します。

ただし、この手順でファイルの暗号化を行った場合、暗号化で使用したものと同じ鍵を使用しないと、復号できないことに注意してください。他のユーザに対して暗号化したファイルを送りたい場合は、その相手の公開鍵を取得して、この公開鍵で暗号化を行わなければなりません。

12.3 Rage によるファイルの暗号化 Edit source

Rage はファイルを暗号化するための暗号化ソフトウエアです。他のユーザとの間で容易に鍵を交換できる仕組みのほか、不用意な操作ミスや機密データの漏洩の防止機能を備えています。ファイルの暗号化を行う場合は、 Rage の使用をお勧めします。

Rage のインストールは下記の手順で行います:

> sudo zypper install rage-encryption

暗号化したファイルを受信する側のユーザは、まず Rage で鍵対を生成しなければなりません:

> rage-keygen -o ~/rage.key 2 ~/rage.pub

上記で 2 つのファイルが作成されます; 上記の例では、それぞれ rage.pubrage.key というファイル名になっています。

rage.pub の例
> cat file.pub
    Public key: age17e4g67cs07jk3lmylyq6gduv26uf7tz7nm9jrsaxn8xxx9uc9amsdg4a5e
rage.key の例
>  cat file.key
    # created: 2023-05-30T16:29:20+05:30
    # public key: age17e4g67cs07jk3lmylyq6gduv26uf7tz7nm9jrsaxn8xxx9uc9amsdg4a5e
重要
重要

file.key は機密鍵であるため、他者に開示してはなりません。

暗号化

ファイルを暗号化するには、コマンドラインで公開鍵を指定して実行します:

> rage -e -r 公開鍵 -o 暗号化されたファイル 元の_(暗号化前の)_ファイル

たとえば下記のようになります:

> rage -e -r age17e4g67cs07jk3lmylyq6gduv26uf7tz7nm9jrsaxn8xxx9uc9amsdg4a5e -o test.txt.age test.txt
復号化

暗号化したファイルは、公開鍵に対応する機密鍵を持つユーザのみが復号化できます。つまり、他者と暗号化したファイルをやりとりしたい場合は、相手側の公開鍵を指定して暗号化する必要があります。

> rage -d -i ~/rage.key -o 復号化したファイル 暗号化されたファイル ファイル

たとえば下記のようになります:

> rage -d -i ~/rage.key -o test.txt.decrypted test.txt.age
パスフレーズ

-p--passphrase のパラメータを指定することで、暗号化したファイルにさらにパスフレーズを設定することもできます。既定では Rage は独自にパスフレーズを設定しますが、パスフレーズを指定しておくこともできます。

> rage -e -p -o 暗号化されたファイル ファイル

たとえば下記のようになります:

> rage -e -p -o test.txt.age test.txt
SSH

Rage では、暗号化を行う際、 Rage の鍵対ではなく SSH (Secure Socket Shell) の鍵対を使用することもできます。 Rage ではそれぞれ ssh-rsassh-ed25519 の公開鍵に対応し、復号化もそれに対応する機密鍵で実施することができます。なお、 ssh-agentssh-sk(FIDO) には対応していません。

> rage -e -p -o 暗号化されたファイル ファイル

たとえば下記のようになります:

> rage -e -p -o test.txt.age test.txt

たとえば下記のようになります:

>  ssh-keygen -t ed25519

暗号化するには、下記のようなコマンドを実行します:

>  rage -e -a -R 公開鍵ファイル -o 暗号化されたファイル ファイル

たとえば下記のようになります:

>  rage -e -a -R id_ed25519.pub -o test.txt.age test.txt

復号化するには、下記のようなコマンドを実行します:

>  rage -d -i SSH_機密鍵ファイル -o 復号化したファイル暗号化されたファイル

たとえば下記のようになります:

>  rage -d -i id_ed25519 -o test.txt.decrypted test.txt.age
重要
重要

なお、鍵とファイルはそれぞれパスで指定しなければなりません。

複数の宛先への対応

Rage は同時に複数の宛先で復号化できる暗号ファイルを作成することもできます。この場合、指定した複数の公開鍵のうち、いずれかの機密鍵を利用して復号化することができます。

rage -e -a -R 最初の_SSH_公開鍵-r 最初の_Rage_公開鍵... -o 暗号化されたファイル ファイル

たとえば下記のようになります:

rage -e -a -R id_ed25519.pub -r age1h8equ4vs5pyp8ykw0z8m9n8m3psy6swme52ztth0v66frgu65ussm8gq0t -o -r age1y2lc7x59jcqvrpf3ppmnj3f93ytaegfkdnl5vrdyv83l8ekcae4sexgwkg test.txt.age test.txt
ヒント
ヒント

Rage のコマンドラインパラメータの一覧を取得したい場合は、 -h または --help を指定して実行してください。

12.3.1 その他の情報 Edit source

このページを印刷