機械翻訳について

相互TLS認証を使用したNFSクライアントの構成

このタスクでは、TLS暗号化接続中に証明書を使用して相互に認証するようにNFSクライアントとサーバーの両方を構成する方法を示します。 これにより、信頼できるシステムのみがNFS共有にアクセスできるようになり、機密性の高い環境または規制された環境に対して追加のセキュリティが提供されます。

次のものが利用可能であることを確認します。

  • TLSが有効になっているNFSv4サーバーとクライアント。
  • 両方のシステムにインストールされたktls-utilsパッケージ。
  • NFSサーバーから認証局(CA)証明書を持っているか、TLS認証用の自己署名証明書の生成の説明に従ってNFSサーバーに自己署名証明書を生成しました。 自己署名証明書を使用している場合は、その後のシステム・トラスト・ストアに証明書をインポートするステップから始めます。
  1. クライアント非公開鍵とCSRを作成します。

    次のコマンドを実行して、共通名(CN)、DNSおよびIPアドレスの正しい値を置き換えます。

    openssl req -new -newkey rsa:4096 -noenc \
       -keyout /etc/pki/tls/private/client.example.com.key \
       -out /etc/pki/tls/private/client.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証明書およびクライアント証明書(client.example.com.crt)をクライアントに格納します。
  3. (オプション)廃止された証明書を削除します。

    テストに自己署名証明書を使用している場合は、以前の古いアンカーを最初に削除することをお勧めします。 たとえば、既存のアンカーをリストし、不要なアンカーを削除するには:

    trust list
    
    pkcs11:id=%43%0E%35%20%3B%78%60%39%D0%C7%F8%53%1A%B6%73%83%12%90%AC%5D;type=cert
    type: certificate
    label: Test CA
    trust: anchor
    category: authority
    ...
    sudo trust anchor --remove pkcs11:id=%43%0E%35%20%3B%78%60%39%D0%C7%F8%53%1A%B6%73%83%12%90%AC%5D;type=cert
    
  4. 証明書をシステムトラストストアにインポートします。

    次のコマンドを実行して、システム信頼ポリシー・ストアに新しいアンカーとして証明書を追加します。

    sudo trust anchor cert.pem
  5. 相互TLS用のクライアントを構成します。

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

    x509.certificate = /etc/pki/tls/certs/client.example.com.crt
    x509.private_key = /etc/pki/tls/private/client.example.com.key
  6. TLSデーモンを有効にして起動します。

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

    sudo systemctl enable --now tlshd.service
  7. NFS共有を相互TLSでマウントします。

    次のコマンドを実行して、nfs-serverおよびpath/to/shareをNFSサーバーのホスト名およびエクスポートされたディレクトリに置き換えます。

    sudo mount -o xprtsec=mtls nfs-server:/path/to/share /mnt/
  8. 接続を確認します。

    次のコマンドを実行します。 出力で、サーバー・ハンドシェイクが成功したことを示すメッセージを探します。

    sudo journalctl -u tlshd