4.12. 상호 TLS 지원을 사용하여 NFS 클라이언트 구성
서버가 TLS 암호화를 사용하여 NFS를 지원하는 경우 TLS 프로토콜을 사용하여 NFS 서버와 클라이언트를 구성하여 서로 인증할 수 있습니다.
사전 요구 사항
- TLS 암호화를 사용하여 NFS 서버를 구성했습니다. 자세한 내용은 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! Toggle word wrap Toggle overflow 중요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! Toggle word wrap Toggle overflow 클라이언트 인증서를
/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! Toggle word wrap Toggle overflow 개인 키 및 인증서에서 SELinux 컨텍스트가 올바른지 확인합니다.
restorecon -Rv /etc/pki/tls/certs/
# restorecon -Rv /etc/pki/tls/certs/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /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! Toggle word wrap Toggle overflow x509.truststore
매개변수를 설정하지 않은 상태로 둡니다.tlshd
서비스를 활성화하고 시작합니다.systemctl enable --now tlshd.service
# systemctl enable --now tlshd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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! Toggle word wrap Toggle overflow
검증
클라이언트가 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! Toggle word wrap Toggle overflow