機械翻訳について

TLSを使用したNFSサーバーの構成

このタスクでは、TLS暗号化を使用して転送中のデータを保護し、信頼できるクライアントからのセキュアな接続を有効にするようにNFSサーバーを設定する方法を示します。

次の条件を満たしていることを確認します。

  • システムでOracle Linux 9以降が実行されています。
  • Oracle LinuxシステムをNFSv4サーバーとして構成しました。
  • 既存のCA証明書を使用するか、自己署名証明書を生成できます。
    • 本番環境では、認証局(CA)からTLS証明書と秘密キーのペアを取得します。
    • テストおよび開発の場合のみ、自己署名証明書を使用できます。 まず、TLS認証用の自己署名証明書の生成の手順に従ってから、次の手順に従って/etc/tlshd.confを編集してTLS用のNFSサーバーを構成するステップから始めます。
  • ktls-utilsパッケージをインストールしました。
  1. サーバーの秘密キーと証明書署名リクエスト(CSR)を作成します。

    次のコマンドを実行して、共通名(CN)、DNSおよびIPアドレスをサーバーの実際のホスト情報に置き換えます。

    openssl req -new -newkey rsa:4096 -noenc \
       -keyout /etc/pki/tls/private/server.example.com.key \
       -out /etc/pki/tls/private/server.example.com.csr \
       -subj "/C=US/ST=State/L=City/O=Organization/CN=hostname" \
       -addext "subjectAltName=DNS:hostname,IP:host-ip-address"
  2. サーバー証明書を取得します。
    • 生成されたCSRをCAに送信し、署名付き証明書をリクエストします。
    • 返されたCA証明書(ca.crt)およびサーバー証明書(server.example.com.crt)をサーバーに格納します。
  3. CA証明書をシステム信頼ストアにインポートします。

    証明書を必要な場所に移動し、次のようにトラスト・ストアを更新します。

    sudo cp ca.crt /etc/pki/ca-trust/source/anchors/
    sudo update-ca-trust
  4. サーバー証明書をインストールします。

    サーバー証明書をファイル・システム内の適切な場所に移動してインストールします。

    sudo mv server.example.com.crt /etc/pki/tls/certs/
  5. SELinuxの内容をリストアします。

    TLSを使用するNFSの証明書などのファイルをセキュリティに敏感なディレクトリに移動またはコピーする場合、それらのSELinuxラベルがそれらの場所に必要なものと一致しない可能性があります。 restoreconを実行して、SELinuxがサービスからアクセスできるように、証明書ファイルに適切なSELinuxラベルがあることを確認します。

    sudo restorecon -Rv /etc/pki/tls/certs/
  6. TLS用にNFSサーバーを構成します。

    /etc/tlshd.confを編集し、[authenticate.server]セクションに次を追加します。

    x509.certificate = /etc/pki/tls/certs/server.example.com.crt
    x509.private_key = /etc/pki/tls/private/server.example.com.key

    ノート:

    x509.truststoreパラメータは未設定のままにします。 相互TLS認証が使用されていないかぎり、サーバーはクライアント証明書を検証する必要はありません。

  7. TLSデーモンを有効にして起動します。

    次のコマンドを実行して、tlshdをすぐに有効にし、システムが再起動するたびに有効にします。

    sudo systemctl enable --now tlshd.service

これで、NFSサーバーはTLS接続で動作するように構成されました。

TLS認証用の自己署名証明書の生成

テストおよび開発の目的でのみ、自己署名証明書を使用してTLS認証でNFSを構成できます。

このタスクでは、自己署名証明書を生成する方法を示します。

NFSサーバーで次のステップを実行します。

  1. 証明書と鍵を作成します。

    NFSサーバーの完全修飾ドメイン名(FQDN)が64文字以下の場合は、次のコマンドを実行します。

    openssl req -noenc -x509 -newkey rsa:4096 -days 365 \
    -keyout nfsd.key -out nfsd.crt

    このコマンドでは、複数のフィールドに値を入力するよう求められます。 共通名(CN)としてFQDNを入力します。 他のすべてのフィールドを空白のままにすることも、デフォルトをそのまま使用することもできます。

    NFSサーバーのFQDNが64文字を超える場合は、次の構文を使用して、コマンドラインでFQDNをサブジェクト代替名(SAN)として指定します。

    openssl req -noenc -x509 -copy_extensions copy \
    -addext "subjectAltName = DNS:<FQDN of server>" \
    -newkey rsa:4096 -days 365 -keyout nfsd.key -out nfsd.crt

    次に、プロンプトが表示されたら、証明書CNとして短い名前(プレーン、修飾されていないホスト名など)を入力します。

    重要:

    [共通名(CN)]フィールドではワイルドカードを使用できません。

  2. 証明書が正常に生成されたことを確認します。

    次のコマンドを実行して証明書を検査し、出力に正しいCNおよび指定されている場合はSANが含まれていることを確認します。

    openssl x509 -in nfsd.crt -text -noout
  3. 生成された証明書と鍵を保護します。

    次のコマンドを実行して、証明書およびキーの所有権をrootに変更します。

    chown root:root nfsd.key nfsd.crt