転送中TLS暗号化の使用

oci-fss-utilsまたはスタックを使用した転送中暗号化では、TLS v.1.2 (Transport Layer Security)暗号化を使用して、インスタンスとマウントされたファイル・システム間でデータを保護できます。Oracle Cloud Infrastructure Vaultファイル・ストレージの保存中の暗号化など、その他のセキュリティ方式とともに、転送中暗号化はエンドツーエンドのセキュリティを実現します。

ヒント

認証にKerberosを使用する場合、KRB5Pセキュリティ・オプションは、代替の転送中暗号化オプションとして、NFSを介した認証、データ整合性(転送中のデータの不正変更)およびデータ・プライバシを提供します。

oci-fss-utilsまたはstunnelを使用した転送中暗号化では、ファイル・システムのマウント・ターゲットまたはエクスポート構成の更新は必要ありませんが、ステップはLinuxユーザーおよびWindowsユーザーによって異なります。

前提条件

マウント・ターゲットのサブネットのセキュリティ・リストに次の新しいルールを追加します。また、次のルールをネットワーク・セキュリティ・グループ(NSG)に追加し、マウント・ターゲットをNSGに追加することもできます。ファイル・ストレージに対するセキュリティ・リスト・ルールの追加の詳細および手順は、ファイル・ストレージに対するVCNセキュリティ・ルールの構成を参照してください。

  • 宛先ポート範囲(2051)へのTCPトラフィックを許可するステートフル・イングレス・ルール。
  • ソース・ポート範囲(2051)からのTCPトラフィックを許可するステートフル・エグレス・ルール。
重要

ファイル・ストレージのマウント・ターゲットへの標準(暗号化されていない)アクセスでは、次のポートへのアクセスが必要です:

  • TCPポート111、2048、2049および2050へのステートフル・イングレス。
  • UDPポート111および2048へのステートフル・イングレス。
  • TCPポート111、2048、2049および2050からのステートフル・エグレス。
  • UDPポート111からのステートフル・エグレス。

以前に標準アクセスのルールを設定してあり、暗号化アクセスのみを適用する場合は、標準アクセス・ポートを無効にできます。

暗号化アクセスには、TCPポート2051のルールのみが必要です。

Linuxユーザーの転送中暗号化

転送中暗号化を有効にするには、oci-fss-utilsというパッケージをインスタンスにインストールします。oci-fss-utilsは、次のインスタンス・タイプで使用できます:

インスタンス・タイプ RPM
Oracle Linux、CentOS 7 x86 oci-fss-utils-3.0-0.el7.x86_64.rpm
Oracle Linux、CentOS 8 x86 oci-fss-utils-3.0-0.el8.x86_64.rpm
Oracle Linux、CentOS 7 Arm* oci-fss-utils-3.0-0.el7.aarch64.rpm
Oracle Linux、CentOS 8 Arm* oci-fss-utils-3.0-0.el8.aarch64.rpm

*Oracleは、Ampere Altraプロセッサに基づいたArmベースのコンピュート・プラットフォームを提供しています。詳細は、Armベースのコンピュートを参照してください。

転送中暗号化を有効化する方法

oci-fss-utilsパッケージは、インスタンス上にネットワーク・ネームスペースと仮想ネットワーク・インタフェースを作成し、ローカルのNFSエンドポイントを提供します。oci-fss-utilsパッケージは、oci-fss-forwarderという転送プロセスもバックグラウンドで実行します。

ネットワーク・ネームスペースによって、転送プロセスがインスタンスのネットワーキング環境から分離されます。仮想ネットワーク・インタフェースによって、転送プロセスに一意のIPアドレスが提供されます。ローカルのNFSエンドポイントでNFS接続機能が提供されます。

ファイル・システムは、暗号化を開始する特殊なコマンドを使用してマウントされます。ファイル・システムのマウント後、oci-fss-forwarderプロセスは、ローカルのNFSクライアントをNFSエンドポイントに接続します。その後、プロセスはNFSクライアントからリクエストを受信し、それらを暗号化してTLSトンネルを使用してマウント・ターゲットに送信します。

転送中暗号化を設定する一般的なステップは次のとおりです:

  1. 転送中暗号化を設定する前に、前提条件を満たしていることを確認してください。
  2. oci-fss-utilsパッケージをダウンロードします。手順については、タスク1: OCI-FSS-UTILSパッケージのダウンロードを参照してください
  3. oci-fss-utilsパッケージをインスタンスにインストールします。手順については、タスク2: Oracle LinuxまたはCentOSでのOCI-FSS-UTILSパッケージのインストールを参照してください
  4. 転送中暗号化コマンドを使用して、ファイル・システムをマウントします。詳細は、タスク3: 暗号化コマンドを使用したファイル・システムのマウントを参照してください

制限事項および考慮事項

  • 転送中暗号化インストール・パッケージは、Oracle LinuxおよびCentOSのRPMとして配布され、cloud-infrastructure-file-storage-downloads.htmlでダウンロードできます
  • マウント・ターゲットへの暗号化アクセスを必要とするすべてのインスタンスに、oci-fss-utilsパッケージをインストールする必要があります。
  • 1つのマウント・ターゲットの暗号化されたNFS/TLS接続の数は、64に制限されています。この制限は、TLSメモリー要件が原因です。NFS接続とは異なり、TLS接続はメモリー・バッファを共有しません。したがって、TLS接続が確立されると、割り当てられたメモリーは専用のままになります。
  • DNSホスト名は、oci-fss-forwarderを使用して暗号化されたファイル・システムをマウントする場合にはサポートされていません。暗号化されたファイル・システムをマウントするには、マウント・ターゲットのIPアドレスを使用してください。
重要

最新バージョンのoci-fss-utilsパッケージを使用していない場合は、SSL接続に失敗する可能性があります。SSL接続が失敗すると、NFSv3操作が失敗する可能性があります。

最新バージョンのoci-fss-utilsパッケージが使用可能になったら、できるだけ早くアップグレードすることをお薦めします。新しいRPMバージョン・リリースの詳細は、ファイル・ストレージのリリース・ノートを参照してください。

Linuxでの転送中暗号化の設定

タスク1: OCI-FSS-UTILSパッケージのダウンロード

RPMインストール・パッケージをダウンロードするにはインターネット・アクセスが必要です。宛先インスタンスにインターネット・アクセス権がない場合、RPMをネットワーク上のステージング・インスタンスにダウンロードし、scpコマンドを使用してRPMをステージング・インスタンスから宛先インスタンスにセキュアにコピーします。

scpコマンドには、リモート・ユーザーを認証するためのSSHキー・ペアが必要です。インスタンスがUNIXスタイルのシステムの場合は、ssh-keygenユーティリティがすでにインストールされている可能性があります。インストールされているかどうかを確認するには、シェルまたはターミナルを開き、コマンドラインでssh-keygenと入力します。インストールされていない場合は、http://www.openssh.com/portable.htmlからOpenSSH for UNIXを取得できます。

  1. (オプション) 宛先インスタンスにRPMインストール・パッケージのディレクトリを作成します。例: 

    sudo mkdir -p /<rpm_directory_name>
  2. cloud-infrastructure-file-storage-downloads.htmlから、宛先インスタンスのディレクトリまたはネットワーク上のステージング・インスタンスにoci-fss-utilsパッケージをダウンロードします。

    パッケージを宛先インスタンスに直接ダウンロードした場合は、次のステップをスキップしてタスク2: Oracle LinuxまたはCentOSでのOCI-FSS-UTILSパッケージのインストールに直接進みます。

    パッケージをステージング・インスタンスにダウンロードした場合は、手順の次のステップに進みます。

  3. ステージング・インスタンス上のターミナル・ウィンドウを開き、scpコマンドを使用して、RPMをステージング・インスタンスから宛先インスタンスにセキュアにコピーします。例:

    scp -i <private_key> <path_to_.rpm> <username>@<destination-public-ip-address>:/<rpm_directory_name>

    RPMパッケージをターゲット・インスタンスにダウンロードした後、タスク2: Oracle LinuxまたはCentOSでのOCI-FSS-UTILSパッケージのインストールに進みます。

タスク2: Oracle LinuxまたはCentOSでのOCI-FSS-UTILSパッケージのインストール
  1. 宛先インスタンスでターミナル・ウィンドウを開きます。
  2. 次のコマンドを使用して、パッケージをインストールします:

    sudo yum localinstall oci-fss-utils-<version>.rpm

このパッケージは、インスタンス内でns1というネームスペースを作成します。これには、イーサネット・トラフィックのデフォルトのネットワーク・インタフェースが含まれています。ネットワーク・インタフェースのペアは、マウント・ターゲットごとに作成されます。

パッケージのインストールが完了したら、タスク3: 暗号化コマンドを使用したファイル・システムのマウントに進みます。

タスク3: 暗号化コマンドを使用したファイル・システムのマウント
  1. インスタンスのターミナル・ウィンドウを開きます。
  2. 次のように入力し、yourmountpoint をファイル・システムへのアクセス元となるローカル・ディレクトリに置き換えて、マウント・ポイントを作成します。

    sudo mkdir -p /mnt/yourmountpoint
    						
  3. 次のコマンドを使用して、ファイル・システムをマウントします:

    sudo mount -t oci-fss 10.x.x.x:/fs-export-path /mnt/yourmountpoint

    10.x.x.x:を、マウント・ターゲットに割り当てられたローカル・サブネットIPアドレスに置き換え、fs-export-pathを、マウント・ターゲットにファイル・システムを関連付ける際に指定したエクスポート・パスに置き換え、yourmountpointをローカル・マウント・ポイントへのパスに置き換えます。エクスポート・パスは、(マウント・ターゲットのIPアドレスからの)ファイル・システムのパスです。

    oci-fss-utilsバージョン2.0-1以上がインストールされている場合は、mountコマンドに-o FIPSを含めることで、ファイル・システムをFIPS承認済モードでマウントできます。例:
    sudo mount -t oci-fss -o fips 10.x.x.x:/fs-export-path /mnt/yourmountpoint
    重要

    DNSホスト名は、現時点ではmount -t oci-fssコマンドを使用してファイル・システムをマウントする場合にはサポートされていません。マウント・ターゲットのIPアドレスを使用する必要があります。

    mount -t oci-fssコマンドの出力例:

    Created symlink from /etc/systemd/system/multi-user.target.wants/oci-fss-2.service to /usr/lib/systemd/system/oci-fss-2.service.

    このコマンドを使用してファイル・システムをマウントするたびに、新しいoci-fssサービスが、2から255まで増加する順序番号で開始されます。たとえば、oci-fss-2.serviceoci-fss-3.serviceなどです。

    ヒント

    resvportオプションを使用して、クライアントが特定の予約されたポートを使用するように制限できます。例:

    sudo mount -t oci-fss -o resvport=900 10.x.x.x:/fs-export-path /mnt/yourmountpoint

Linuxでの転送中暗号化の管理

ファイル・システムを自動マウントするには

自動マウントでは、再起動された場合に、インスタンスにファイル・システムが自動的に再マウントされます。

  1. インスタンス上でターミナル・ウィンドウを開きます。タスク2: Oracle LinuxまたはCentOSでのOCI-FSS-UTILSパッケージのインストールの説明に従って、ファイル・システムをマウントします。
  2. /etc/fstabファイルを編集のために開きます: 

    cd /etc
    vi fstab
  3. fstabファイルに次の行を追加します:

    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail 0 0

    10.x.x.x:を、マウント・ターゲットに割り当てられたローカル・サブネットIPアドレスに置き換え、fs-export-pathを、マウント・ターゲットにファイル・システムを関連付ける際に指定したエクスポート・パスに置き換え、yourmountpointをローカル・マウント・ポイントへのパスに置き換えます。

    oci-fss-utilsバージョン2.0-1以上がインストールされている場合は、mountコマンドに-o FIPSを含めることで、ファイル・システムをFIPS承認済モードでマウントできます。例:
    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail,fips 0 0
    重要

    DNSホスト名は、現時点ではmount -t oci-fssコマンドを使用してファイル・システムをマウントする場合にはサポートされていません。マウント・ターゲットのIPアドレスを使用する必要があります。
    ヒント

    resvportオプションを使用して、クライアントが特定の予約されたポートを使用するように制限できます。例:

    10.x.x.x:/fs-export-path /mnt/yourmountpoint oci-fss x-systemd.requires=oci-fss-init.service,defaults,nofail,resvport=900 0 0
ファイル・システムをアンマウントするには

ファイル・システムをアンマウントする場合、別のoci-fss-utilsコマンドを使用して、関連付けられたローカル・ネットワーク・ネームスペースが削除されていることを確認する必要があります:

  1. インスタンス上でターミナル・ウィンドウを開きます。
  2. 次のコマンドを使って、ファイル・システムをアンマウントします:

    sudo umount -t oci-fss /mnt/yourmountpoint

    yourmountpointをローカル・マウント・ポイントへのパスに置き換えます。

OCI-FSS-UTILSパッケージをアンインストールするには
  1. まず、マウントされているすべてのファイル・システムをアンマウントします。手順については、ファイル・システムをアンマウントするにはを参照してください。
  2. インスタンス上でターミナル・ウィンドウを開きます。
  3. 次のコマンドを入力して、oci-fssパッケージをアンインストールします:

    sudo yum remove oci-fss-utils

Windowsユーザーの転送中暗号化

Windowsクライアントは、stunnelを使用してファイル・システムへの転送中暗号化を有効にできます。

制限事項および考慮事項

  • 1つのマウント・ターゲットの暗号化されたNFS/TLS接続の数は、64に制限されています。この制限は、TLSメモリー要件が原因です。NFS接続とは異なり、TLS接続はメモリー・バッファを共有しません。したがって、TLS接続が確立されると、割り当てられたメモリーは専用のままになります。
  • DNSホスト名は、暗号化されたファイル・システムをマウントする場合にはサポートされていません。暗号化されたファイル・システムをマウントするには、マウント・ターゲットのIPアドレスを使用してください。

Windowsでの転送中暗号化の設定

次の手順では、ファイル・システムで転送中暗号化が使用されるようにstunnelをインストールおよび設定する方法について説明します。転送中暗号化を設定する前に、前提条件を満たしていることを確認してください。

ヒント

このプロセスは、次のステップを含むバッチ・スクリプトを使用して自動化できます。

設定タスク

タスク1: Windows NFSクライアントのインストール
  1. ターゲット・インスタンスでWindows PowerShellを開き、次のコマンドを使用してWindows NFSクライアントをインストールします:

    Install-WindowsFeature NFS-Client

    クライアントがインストールされたら、タスク2: stunnelのダウンロードとインストールに進みます。

タスク2: stunnelのダウンロードとインストール
  1. https://www.stunnel.org/downloads.htmlからstunnelをダウンロードしてインストールします。

    ノート

    最後のインストール・ステップで、証明書情報をリクエストします。ここでの値の入力はオプションです。

    デフォルトでは、stunnelはC:\Program Files (x86)\stunnelディレクトリにインストールされます

  2. ファイルC:\Program Files (x86)\stunnel\config\stunnel.cfgを編集のために開き、次の構成を指定します:

    [mount]
        client=yes
        accept=127.0.0.1:2048
        connect=10.0.1.155:2051
     
    [nfs]
        client=yes
        accept=127.0.0.1:2049
        connect=10.0.1.155:2051
     
    [nlm]
        client=yes
        accept=127.0.0.1:2050
        connect=10.0.1.155:2051
     
    [rpcbind]
        client=yes
        accept=127.0.0.1:111
        connect=10.0.1.155:2051
  3. C:\Program Files (x86)\stunnel\bin\tstunnel.exeを使用してstunnelを起動します。

    タスク3: 接続のマウントとテストに進みます。

タスク3: 接続のマウントとテスト

コマンド・プロンプトを開き、次の一連のコマンドを入力します:

  1. ファイル・システムをマウントします:

    mount \\127.0.0.1\fss z:
  2. ディレクトリの内容をリストして、ファイル・システムへの接続をテストします:

    dir z:
  3. ファイル・システムをアンマウントします:

    umount z: