2.14. 相互 TLS 対応の NFS クライアントの設定
Red Hat Enterprise Linux 9.6 以降、サーバーが TLS 暗号化を備えた NFS に対応している場合は、NFS サーバーおよびクライアントが TLS プロトコルを使用して相互に認証するように設定できます。
前提条件
- NFS サーバーを TLS 暗号化を使用して設定した。詳細は、TLS 対応の NFS サーバーの設定 を参照してください。
-
ktls-utils
パッケージをインストールした。
手順
秘密鍵および証明書署名要求 (CSR) を作成します。
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=client.example.com" \ -addext "subjectAltName=DNS:client.example.com,IP:192.0.2.2"
# 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=client.example.com" \ -addext "subjectAltName=DNS:client.example.com,IP:192.0.2.2"
Copy to Clipboard Copied! 重要コモンネーム (CN) と DNS はホスト名と一致する必要があります。IP はホストの IP と一致する必要があります。
-
/etc/pki/tls/private/client.example.com.csr
ファイルを認証局 (CA) に送信し、クライアント証明書を要求します。受信した CA 証明書とクライアント証明書をホストに保存します。 CA 証明書をシステムのトラストストアにインポートします。
cp ca.crt /etc/pki/ca-trust/source/anchors update-ca-trust
# cp ca.crt /etc/pki/ca-trust/source/anchors # update-ca-trust
Copy to Clipboard Copied! クライアント証明書を
/etc/pki/tls/certs/
ディレクトリーに移動します。mv client.example.com.crt /etc/pki/tls/certs/
# mv client.example.com.crt /etc/pki/tls/certs/
Copy to Clipboard Copied! 秘密鍵と証明書の SELinux コンテキストが正しいことを確認します。
restorecon -Rv /etc/pki/tls/certs/
# restorecon -Rv /etc/pki/tls/certs/
Copy to Clipboard Copied! クライアント証明書と秘密鍵を、
/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
x509.certificate= /etc/pki/tls/certs/client.example.com.crt x509.private_key= /etc/pki/tls/private/client.example.com.key
Copy to Clipboard Copied! x509.truststore
パラメーターは未設定のままにします。tlshd
サービスを有効にして起動します。systemctl enable --now tlshd.service
# systemctl enable --now tlshd.service
Copy to Clipboard Copied! TLS 暗号化を使用して NFS 共有をマウントします。
mount -o xprtsec=mtls server.example.com:/nfs/projects/ /mnt/
# mount -o xprtsec=mtls server.example.com:/nfs/projects/ /mnt/
Copy to Clipboard Copied!
検証
クライアントが TLS 対応の NFS 共有を正常にマウントしたことを確認します。
journalctl -u tlshd
# journalctl -u tlshd … Apr 01 08:37:56 client.example.com tlshd[10688]: Handshake with server.example.com (192.0.2.1) was successful
Copy to Clipboard Copied!