{"id":455536,"date":"2025-04-11T09:08:26","date_gmt":"2025-04-11T09:08:26","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=455536"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=455536","title":{"rendered":"<span>\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 NFS: RPC-with-TLS \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 VPN<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a NFS-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u0412\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a VPN-\u0442\u0443\u043d\u043d\u0435\u043b\u0438 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u043a\u0441\u0438, \u043d\u0430\u0441 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b <a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9289\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d RFC 9289<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f RPC-with-TLS. \u0418 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0437\u0432\u0435\u0440\u044c.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u043a\u0430\u043a \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f NFS-\u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RPC-with-TLS, \u043a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441\u044b \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c tls \u0438 mtls, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0434\u0435\u043c\u043e\u043d\u043e\u043c tlshd \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u043d\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435. \u0417\u0430\u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u043a\u0430\u043a \u0432\u0441\u0451 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0435 \u0442\u0430\u043a. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u044b\u0440\u043d\u0451\u043c \u0441 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0432 RPC-with-TLS \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0439\u0434\u0435\u0442.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ead\/daf\/f3a\/eaddaff3a0bb7ea0d6024395043cb7e2.png\" width=\"1879\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ead\/daf\/f3a\/eaddaff3a0bb7ea0d6024395043cb7e2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ead\/daf\/f3a\/eaddaff3a0bb7ea0d6024395043cb7e2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b RPC-with-TLS \u0432 \u044f\u0434\u0440\u0435 Linux (\u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u044f\u0434\u0440\u043e) \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0432\u0435 \u043e\u043f\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><code>CONFIG_TLS<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 <a href=\"https:\/\/www.kernel.org\/doc\/html\/latest\/networking\/tls.html\">\u044f\u0434\u0440\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 TLS<\/a>, \u043d\u043e \u0434\u043b\u044f TLS-\u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f (\u0434\u0430\u043b\u0435\u0435 handshake) \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/github.com\/oracle\/ktls-utils\">\u0434\u0435\u043c\u043e\u043d tlshd<\/a>;<\/p>\n<\/li>\n<li>\n<p><code>CONFIG_NET_HANDSHAKE<\/code>, \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0430\u044f\u0441\u044f \u0432 \u044f\u0434\u0440\u0435 6.4, \u043d\u043e \u0431\u044d\u043a\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u0430\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 rpm-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a AlmaLinux\u00a09 \u0438 Rocky Linux\u00a09.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0432\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f RPC-with-TLS: tls \u0438 mtls. \u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e, \u0442\u043e \u043f\u0440\u0438 tls \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0430 \u043f\u0440\u0438 mtls \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u041e\u0442\u0441\u044e\u0434\u0430 \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f: \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f tls, \u0442\u043e \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (CA) \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445, \u0430 \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f mtls, \u0442\u043e \u0435\u0449\u0451 \u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 CA \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0412 Common Name (CN) \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442 \u0432 \u0445\u043e\u0441\u0442\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>mount.nfs<\/code>. CN \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 mtls \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u0438 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0438 \u043d\u0430 \u043a\u043b\u044e\u0447\u0438: \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e root, \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b\u00a0\u2014 644, \u0430 \u043d\u0430 \u043a\u043b\u044e\u0447\u0438\u00a0\u2014\u00a0600.<\/p>\n<h3>Handshake-\u0434\u0435\u043c\u043e\u043d tlshd<\/h3>\n<p>\u0414\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0434\u0435\u043c\u043e\u043d\u0430 tlshd \u043d\u0443\u0436\u0435\u043d \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e <code>\/etc\/tlshd.conf<\/code>. \u0412 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0438 \u043a\u043b\u044e\u0447\u0435\u0439 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 (\u043a\u0430\u043a \u043f\u043e \u043c\u043d\u0435, \u0442\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u044f\u043c\u043e \u00ab\u0434\u0435\u0442\u0441\u043a\u0430\u044f \u0431\u043e\u043b\u0435\u0437\u043d\u044c\u00bb), \u0438\u043d\u0430\u0447\u0435 \u0434\u0435\u043c\u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0445\u043e\u0434\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0442\u0430\u043a: <code>x509.certificate=\/root\/my_ca\/ca1\/certificates\/worker-1.crt\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>, \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e handshake \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b.<\/p>\n<p>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u0432 NFS-\u043f\u0430\u043f\u043a\u0443, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f tlshd \u0443\u043f\u0430\u0434\u0451\u0442 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0435? \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f, \u043f\u0430\u043f\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a tlshd \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0427\u0438\u0441\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043c\u043e\u043d\u0430 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f NFS-\u043f\u0430\u043f\u043a\u0438 \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 tlshd \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f handshake \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.   <\/p>\n<p>\u0411\u044b\u043b \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442: \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0442\u0440\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 tlshd \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c\u0438 (\u043e\u0434\u0438\u043d \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0438 \u0434\u0432\u0430 \u2014 \u043d\u0435\u0442) \u0438 \u0441\u0442\u0430\u043b\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c NFS-\u043f\u0430\u043f\u043a\u0443 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e \u2014 \u0438\u0437 10 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043c\u043e\u0433\u043b\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0432\u0435, \u0438\u043b\u0438 \u043e\u0434\u043d\u0430, \u0438\u043b\u0438 \u0447\u0435\u0442\u044b\u0440\u0435, \u0438\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439. \u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u044b\u0439 tlshd-\u0434\u0435\u043c\u043e\u043d \u043f\u0438\u0441\u0430\u043b \u0447\u0442\u043e-\u0442\u043e \u0432 \u0441\u0432\u043e\u0439 \u043b\u043e\u0433. \u042d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u0441\u0440\u0430\u0437\u0443. \u041e\u0442\u0441\u044e\u0434\u0430 \u0432\u044b\u0442\u0435\u043a\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 mtls \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u042d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438, \u0435\u0441\u043b\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 tlshd \u0441 \u043d\u0443\u0436\u043d\u044b\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u043c (\u0447\u0438\u0442\u0430\u0439: \u0441 \u043d\u0443\u0436\u043d\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c) \u0438 \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c tlshd-\u0434\u0435\u043c\u043e\u043d, \u043d\u043e \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043a\u043e\u0441\u0442\u044b\u043b\u044c, \u0447\u0435\u043c \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<h3>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h3>\n<p>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0435\u043d\u0434 \u0438 \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u0440\u0443\u0447\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f NFS-\u043f\u0430\u043f\u043e\u043a \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0438 NFS-\u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h4>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u0435\u043d\u0434\u0430<\/h4>\n<p>\u0422\u0440\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0441 Ubuntu 24.04 LTS \u043d\u0430 \u0431\u043e\u0440\u0442\u0443: \u0434\u0432\u0430 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 (server-1 \u0438 server-2) \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 CA \u0438 \u043e\u0434\u0438\u043d NFS-\u043a\u043b\u0438\u0435\u043d\u0442 (worker-1). \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0431\u044b\u043b\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 <code>\/mnt\/nfs_none<\/code>, <code>\/mnt\/nfs_tls<\/code>, <code>\/mnt\/nfs_mtls<\/code> \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"bash\">echo '\/mnt\/nfs_none  *(rw,sync,no_subtree_check)'              | sudo tee -a \/etc\/exports echo '\/mnt\/nfs_tls   *(rw,sync,no_subtree_check,xprtsec=tls)'  | sudo tee -a \/etc\/exports echo '\/mnt\/nfs_mtls  *(rw,sync,no_subtree_check,xprtsec=mtls)' | sudo tee -a \/etc\/exports<\/code><\/pre>\n<p>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0434\u043b\u044f NFSv3, NFSv4.1, NFSv4.2 \u0441 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438.<\/p>\n<h4>\u0417\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 NFS-\u0442\u0440\u0430\u0444\u0438\u043a<\/h4>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u043e\u0441\u044c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435: <code>tshark -i eth0 -f 'tcp and port 2049'<\/code>.<\/p>\n<p>\u041c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043f\u043a\u0438:<\/p>\n<pre><code class=\"bash\">    1 0.000000000    10.1.1.13 \u2192 10.1.1.11    TCP 74 674 \u2192 2049 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=398680558 TSecr=0 WS=128     2 0.000028999    10.1.1.11 \u2192 10.1.1.13    TCP 74 2049 \u2192 674 [SYN, ACK] Seq=0 Ack=1 Win=65160 Len=0 MSS=1460 SACK_PERM TSval=2420952483 TSecr=398680558 WS=128     3 0.000213423    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=398680559 TSecr=2420952483     4 0.000213494    10.1.1.13 \u2192 10.1.1.11    NFS 110 V4 NULL Call             5 0.000248597    10.1.1.11 \u2192 10.1.1.13    TCP 66 2049 \u2192 674 [ACK] Seq=1 Ack=45 Win=65152 Len=0 TSval=2420952483 TSecr=398680559     6 0.000331695    10.1.1.11 \u2192 10.1.1.13    NFS 102 V4 NULL Reply (Call In 4)     7 0.000461213    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=45 Ack=37 Win=64256 Len=0 TSval=398680559 TSecr=2420952483     8 0.015183491    10.1.1.13 \u2192 10.1.1.11    TLSv1 417 Client Hello (SNI=server-1)     9 0.015853138    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 264 Server Hello, Change Cipher Spec    10 0.016537570    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 72 Change Cipher Spec    11 0.029186413    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 7306 Application Data    12 0.029199606    10.1.1.11 \u2192 10.1.1.13    TCP 7306 2049 \u2192 674 [PSH, ACK] Seq=7475 Ack=402 Win=64896 Len=7240 TSval=2420952512 TSecr=398680575 [TCP segment of a reassembled PDU]    13 0.029770565    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=402 Ack=7475 Win=78592 Len=0 TSval=398680588 TSecr=2420952512    14 0.029770658    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=402 Ack=14715 Win=92160 Len=0 TSval=398680588 TSecr=2420952512    15 0.029790811    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 2255 Application Data, Application Data, Application Data, Application Data    16 0.029978228    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=402 Ack=16904 Win=96512 Len=0 TSval=398680588 TSecr=2420952512    17 0.046021972    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 1923 Application Data, Application Data, Application Data    18 0.046070545    10.1.1.11 \u2192 10.1.1.13    TCP 66 2049 \u2192 674 [ACK] Seq=16904 Ack=2259 Win=63104 Len=0 TSval=2420952529 TSecr=398680604    19 0.049060919    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 132 Application Data    20 0.049120160    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 116 Application Data    21 0.049489753    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 348 Application Data                                                                                                                   22 0.049569299    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 192 Application Data ...<\/code><\/pre>\n<p>\u041c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432 NFS-\u043f\u0430\u043f\u043a\u0435:<\/p>\n<pre><code class=\"bash\">   82 24.007203648    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 272 Application Data    83 24.007358680    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 260 Application Data    84 24.007529719    10.1.1.13 \u2192 10.1.1.11    TCP 66 792 \u2192 2049 [ACK] Seq=8269 Ack=23090 Win=94976 Len=0 TSval=398803883 TSecr=2421075807    85 24.007641431    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 372 Application Data    86 24.007724635    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 468 Application Data    87 24.007999216    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 316 Application Data    88 24.011385927    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 276 Application Data    89 24.011745229    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 296 Application Data    90 24.011833565    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 268 Application Data    91 24.052731556    10.1.1.13 \u2192 10.1.1.11    TCP 66 792 \u2192 2049 [ACK] Seq=9055 Ack=23904 Win=94976 Len=0 TSval=398803929 TSecr=2421075812 <\/code><\/pre>\n<h3>\u041e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 CA \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445, \u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<pre><code class=\"bash\"># mount.nfs -o xprtsec=mtls,nfsvers=4.2 server-1:\/mnt\/nfs_mtls \/mnt\/nfs_mtls mount.nfs: access denied by server while mounting server-1:\/mnt\/nfs_mtls<\/code><\/pre>\n<h4>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c<\/h4>\n<p>\u041d\u0430 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u043f\u0430\u043f\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e mtls. \u0415\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0443\u043a\u0430\u0436\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 tls \u0438 \u0432\u0435\u0440\u0441\u0438\u044e NFS-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 3, \u0442\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 \u043f\u0430\u043f\u043a\u0443 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>\u041c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c:<\/p>\n<pre><code class=\"bash\"># mount.nfs -o xprtsec=tls,nfsvers=3 server-1:\/mnt\/nfs_mtls \/mnt\/nfs_mtls #<\/code><\/pre>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0435\u0442:<\/p>\n<pre><code class=\"bash\"># ls -l \/mnt\/nfs_mtls\/ ls: cannot open directory '\/mnt\/nfs_mtls\/': Permission denied<\/code><\/pre>\n<p>\u0421 NFS 4.1 \u0438 4.2 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0435\u0442 \u2014 \u043f\u0430\u043f\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f:<\/p>\n<pre><code class=\"bash\"># for i in 4.1 4.2;do mount.nfs -o xprtsec=tls,nfsvers=$i server-1:\/mnt\/nfs_mtls \/mnt\/nfs_mtls ;done mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_mtls on \/mnt\/nfs_mtls mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_mtls on \/mnt\/nfs_mtls<\/code><\/pre>\n<h4>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438 \u0442\u043e\u043c \u0436\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e NFS-\u043f\u0430\u043f\u043e\u043a \u043f\u043e tls \u0438\u043b\u0438 mtls (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0438\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f mtls) \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0442\u043e \u0432\u0441\u0451 \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c:<\/p>\n<pre><code class=\"bash\"># for i in 11 22 33;do mount.nfs -o nfsvers=4.2,xprtsec=mtls server-1:\/mnt\/nfs_mtls\/$i \/mnt\/nfs_mtls\/$i ;done #<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c handshake \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u2014 \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u0438. \u0412 \u043b\u043e\u0433\u0435 tlshd \u044d\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">tlshd[7776]: handshake with server-1 (10.1.1.11) was successful<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0442\u043e\u0433\u043e \u0436\u0435 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u043e tls (\u0438\u043b\u0438 mtls, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043f\u043e tls).<\/p>\n<pre><code class=\"bash\"># for i in 11 22 33;do mount.nfs -o nfsvers=4.2,xprtsec=tls server-1:\/mnt\/nfs_tls\/$i \/mnt\/nfs_tls\/$i ;done mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_tls\/11 on \/mnt\/nfs_tls\/11 mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_tls\/22 on \/mnt\/nfs_tls\/22 mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_tls\/33 on \/mnt\/nfs_tls\/33<\/code><\/pre>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u0447\u0442\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c handshake \u043f\u0440\u043e\u0439\u0434\u0451\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e:<\/p>\n<pre><code class=\"bash\">tlshd[7807]: handshake with server-1 (10.1.1.11) was successful tlshd[7815]: handshake with server-1 (10.1.1.11) was successful tlshd[7820]: handshake with server-1 (10.1.1.11) was successful<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0438 \u0431\u0435\u0437 RPC-with-TLS \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c:<\/p>\n<pre><code class=\"bash\"># for i in 11 22 33;do mount.nfs -o nfsvers=4.2 server-1:\/mnt\/nfs_none\/$i \/mnt\/nfs_none\/$i ;done #<\/code><\/pre>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0435\u0437 RPC-with-TLS, \u0430 \u043f\u043e\u0442\u043e\u043c \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 RPC-with-TLS, \u0442\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 RPC-with-TLS \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442:<\/p>\n<pre><code class=\"bash\"># for i in 11 22 33;do mount.nfs -o nfsvers=4.2 server-1:\/mnt\/nfs_none\/$i \/mnt\/nfs_none\/$i ;done # for i in 11 22 33;do mount.nfs -o nfsvers=4.2,xprtsec=tls server-1:\/mnt\/nfs_tls\/$i \/mnt\/nfs_tls\/$i ;done mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_tls\/11 on \/mnt\/nfs_tls\/11 mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_tls\/22 on \/mnt\/nfs_tls\/22 mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_tls\/33 on \/mnt\/nfs_tls\/33 # for i in 11 22 33;do mount.nfs -o nfsvers=4.2,xprtsec=mtls server-1:\/mnt\/nfs_mtls\/$i \/mnt\/nfs_mtls\/$i ;done mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_mtls\/11 on \/mnt\/nfs_mtls\/11 mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_mtls\/22 on \/mnt\/nfs_mtls\/22 mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_mtls\/33 on \/mnt\/nfs_mtls\/33<\/code><\/pre>\n<p>\u041e\u0442\u0441\u044e\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0438, \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 tls, mtls \u0438 \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>RPC-with-TLS \u2014 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u0449\u0438\u0442\u044b \u0442\u0440\u0430\u0444\u0438\u043a\u0430 NFS, \u043d\u043e \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u043b\u044c\u0437\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0438 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (tls, mtls \u0438 \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0410 \u0435\u0449\u0451 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 mtls \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e, \u0438 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0434\u0435\u043c\u043e\u043d tlshd \u0443\u043f\u0430\u0434\u0451\u0442 \u043f\u043e\u0441\u043b\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u0430\u043f\u043a\u0435 \u0438 \u0437\u0430\u0449\u0438\u0442\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f.<\/p>\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043d\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u2014 \u044d\u0442\u043e Kerberos \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 krb5p, \u043d\u043e \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043c\u0438\u043d\u0443\u0441\u044b: \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-netapp-files\/performance-impact-kerberos\">\u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/a>.<\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u0432 <a href=\"https:\/\/deckhouse.ru\/products\/kubernetes-platform\/\">Deckhouse Kubernetes Platform<\/a> <a href=\"https:\/\/deckhouse.ru\/products\/kubernetes-platform\/modules\/csi-nfs\/early-access\/\">\u0432 \u043c\u043e\u0434\u0443\u043b\u0435 csi-nfs<\/a>, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 v0.2.0, \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 RPC-with-TLS.<\/p>\n<h3>P. S.<\/h3>\n<p>\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043d\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u0433\u0435:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/890728\/\">\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u043e\u0431\u0440\u0430\u0437\u0430 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0451\u043d\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430: ddrescue, losetup \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u0433\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/884622\/\">\u041a\u0430\u043a Linux \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0441\u044f \u043a\u043e \u0441\u043d\u0443<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/flant\/articles\/880354\/\">\u041a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c Linux-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 \u043d\u0443\u043b\u044f \u0438 \u0431\u0435\u0437 Docker<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/897130\/\"> https:\/\/habr.com\/ru\/articles\/897130\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u043c\u044b \u0437\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a NFS-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u0412\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a VPN-\u0442\u0443\u043d\u043d\u0435\u043b\u0438 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u043a\u0441\u0438, \u043d\u0430\u0441 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b <a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9289\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d RFC 9289<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f RPC-with-TLS. \u0418 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0437\u0432\u0435\u0440\u044c.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u043a\u0430\u043a \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f NFS-\u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RPC-with-TLS, \u043a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441\u044b \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c tls \u0438 mtls, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0434\u0435\u043c\u043e\u043d\u043e\u043c tlshd \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u043d\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435. \u0417\u0430\u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u043a\u0430\u043a \u0432\u0441\u0451 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0435 \u0442\u0430\u043a. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u044b\u0440\u043d\u0451\u043c \u0441 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0432 RPC-with-TLS \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0439\u0434\u0435\u0442.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b RPC-with-TLS \u0432 \u044f\u0434\u0440\u0435 Linux (\u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u044f\u0434\u0440\u043e) \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0432\u0435 \u043e\u043f\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><code>CONFIG_TLS<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 <a href=\"https:\/\/www.kernel.org\/doc\/html\/latest\/networking\/tls.html\">\u044f\u0434\u0440\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 TLS<\/a>, \u043d\u043e \u0434\u043b\u044f TLS-\u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f (\u0434\u0430\u043b\u0435\u0435 handshake) \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/github.com\/oracle\/ktls-utils\">\u0434\u0435\u043c\u043e\u043d tlshd<\/a>;<\/p>\n<\/li>\n<li>\n<p><code>CONFIG_NET_HANDSHAKE<\/code>, \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0430\u044f\u0441\u044f \u0432 \u044f\u0434\u0440\u0435 6.4, \u043d\u043e \u0431\u044d\u043a\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u0430\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 rpm-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a AlmaLinux\u00a09 \u0438 Rocky Linux\u00a09.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0432\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f RPC-with-TLS: tls \u0438 mtls. \u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e, \u0442\u043e \u043f\u0440\u0438 tls \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0430 \u043f\u0440\u0438 mtls \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u041e\u0442\u0441\u044e\u0434\u0430 \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f: \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f tls, \u0442\u043e \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (CA) \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445, \u0430 \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f mtls, \u0442\u043e \u0435\u0449\u0451 \u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 CA \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0412 Common Name (CN) \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442 \u0432 \u0445\u043e\u0441\u0442\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>mount.nfs<\/code>. CN \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 mtls \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u0438 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0438 \u043d\u0430 \u043a\u043b\u044e\u0447\u0438: \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e root, \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b\u00a0\u2014 644, \u0430 \u043d\u0430 \u043a\u043b\u044e\u0447\u0438\u00a0\u2014\u00a0600.<\/p>\n<h3>Handshake-\u0434\u0435\u043c\u043e\u043d tlshd<\/h3>\n<p>\u0414\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0434\u0435\u043c\u043e\u043d\u0430 tlshd \u043d\u0443\u0436\u0435\u043d \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e <code>\/etc\/tlshd.conf<\/code>. \u0412 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0438 \u043a\u043b\u044e\u0447\u0435\u0439 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 (\u043a\u0430\u043a \u043f\u043e \u043c\u043d\u0435, \u0442\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u044f\u043c\u043e \u00ab\u0434\u0435\u0442\u0441\u043a\u0430\u044f \u0431\u043e\u043b\u0435\u0437\u043d\u044c\u00bb), \u0438\u043d\u0430\u0447\u0435 \u0434\u0435\u043c\u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0445\u043e\u0434\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0442\u0430\u043a: <code>x509.certificate=\/root\/my_ca\/ca1\/certificates\/worker-1.crt\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>, \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e handshake \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b.<\/p>\n<p>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u0432 NFS-\u043f\u0430\u043f\u043a\u0443, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f tlshd \u0443\u043f\u0430\u0434\u0451\u0442 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0435? \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f, \u043f\u0430\u043f\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a tlshd \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0427\u0438\u0441\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043c\u043e\u043d\u0430 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f NFS-\u043f\u0430\u043f\u043a\u0438 \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 tlshd \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f handshake \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.   <\/p>\n<p>\u0411\u044b\u043b \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442: \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0442\u0440\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 tlshd \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c\u0438 (\u043e\u0434\u0438\u043d \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0438 \u0434\u0432\u0430 \u2014 \u043d\u0435\u0442) \u0438 \u0441\u0442\u0430\u043b\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c NFS-\u043f\u0430\u043f\u043a\u0443 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e \u2014 \u0438\u0437 10 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043c\u043e\u0433\u043b\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0432\u0435, \u0438\u043b\u0438 \u043e\u0434\u043d\u0430, \u0438\u043b\u0438 \u0447\u0435\u0442\u044b\u0440\u0435, \u0438\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439. \u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u044b\u0439 tlshd-\u0434\u0435\u043c\u043e\u043d \u043f\u0438\u0441\u0430\u043b \u0447\u0442\u043e-\u0442\u043e \u0432 \u0441\u0432\u043e\u0439 \u043b\u043e\u0433. \u042d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u0441\u0440\u0430\u0437\u0443. \u041e\u0442\u0441\u044e\u0434\u0430 \u0432\u044b\u0442\u0435\u043a\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 mtls \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u042d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438, \u0435\u0441\u043b\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 tlshd \u0441 \u043d\u0443\u0436\u043d\u044b\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u043c (\u0447\u0438\u0442\u0430\u0439: \u0441 \u043d\u0443\u0436\u043d\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c) \u0438 \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c tlshd-\u0434\u0435\u043c\u043e\u043d, \u043d\u043e \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043a\u043e\u0441\u0442\u044b\u043b\u044c, \u0447\u0435\u043c \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<h3>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h3>\n<p>\u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0435\u043d\u0434 \u0438 \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u0440\u0443\u0447\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f NFS-\u043f\u0430\u043f\u043e\u043a \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0438 NFS-\u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h4>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u0435\u043d\u0434\u0430<\/h4>\n<p>\u0422\u0440\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0441 Ubuntu 24.04 LTS \u043d\u0430 \u0431\u043e\u0440\u0442\u0443: \u0434\u0432\u0430 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 (server-1 \u0438 server-2) \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 CA \u0438 \u043e\u0434\u0438\u043d NFS-\u043a\u043b\u0438\u0435\u043d\u0442 (worker-1). \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0431\u044b\u043b\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 <code>\/mnt\/nfs_none<\/code>, <code>\/mnt\/nfs_tls<\/code>, <code>\/mnt\/nfs_mtls<\/code> \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"bash\">echo '\/mnt\/nfs_none  *(rw,sync,no_subtree_check)'              | sudo tee -a \/etc\/exports echo '\/mnt\/nfs_tls   *(rw,sync,no_subtree_check,xprtsec=tls)'  | sudo tee -a \/etc\/exports echo '\/mnt\/nfs_mtls  *(rw,sync,no_subtree_check,xprtsec=mtls)' | sudo tee -a \/etc\/exports<\/code><\/pre>\n<p>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0434\u043b\u044f NFSv3, NFSv4.1, NFSv4.2 \u0441 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438.<\/p>\n<h4>\u0417\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 NFS-\u0442\u0440\u0430\u0444\u0438\u043a<\/h4>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u043e\u0441\u044c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435: <code>tshark -i eth0 -f 'tcp and port 2049'<\/code>.<\/p>\n<p>\u041c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043f\u043a\u0438:<\/p>\n<pre><code class=\"bash\">    1 0.000000000    10.1.1.13 \u2192 10.1.1.11    TCP 74 674 \u2192 2049 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=398680558 TSecr=0 WS=128     2 0.000028999    10.1.1.11 \u2192 10.1.1.13    TCP 74 2049 \u2192 674 [SYN, ACK] Seq=0 Ack=1 Win=65160 Len=0 MSS=1460 SACK_PERM TSval=2420952483 TSecr=398680558 WS=128     3 0.000213423    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=398680559 TSecr=2420952483     4 0.000213494    10.1.1.13 \u2192 10.1.1.11    NFS 110 V4 NULL Call             5 0.000248597    10.1.1.11 \u2192 10.1.1.13    TCP 66 2049 \u2192 674 [ACK] Seq=1 Ack=45 Win=65152 Len=0 TSval=2420952483 TSecr=398680559     6 0.000331695    10.1.1.11 \u2192 10.1.1.13    NFS 102 V4 NULL Reply (Call In 4)     7 0.000461213    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=45 Ack=37 Win=64256 Len=0 TSval=398680559 TSecr=2420952483     8 0.015183491    10.1.1.13 \u2192 10.1.1.11    TLSv1 417 Client Hello (SNI=server-1)     9 0.015853138    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 264 Server Hello, Change Cipher Spec    10 0.016537570    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 72 Change Cipher Spec    11 0.029186413    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 7306 Application Data    12 0.029199606    10.1.1.11 \u2192 10.1.1.13    TCP 7306 2049 \u2192 674 [PSH, ACK] Seq=7475 Ack=402 Win=64896 Len=7240 TSval=2420952512 TSecr=398680575 [TCP segment of a reassembled PDU]    13 0.029770565    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=402 Ack=7475 Win=78592 Len=0 TSval=398680588 TSecr=2420952512    14 0.029770658    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=402 Ack=14715 Win=92160 Len=0 TSval=398680588 TSecr=2420952512    15 0.029790811    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 2255 Application Data, Application Data, Application Data, Application Data    16 0.029978228    10.1.1.13 \u2192 10.1.1.11    TCP 66 674 \u2192 2049 [ACK] Seq=402 Ack=16904 Win=96512 Len=0 TSval=398680588 TSecr=2420952512    17 0.046021972    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 1923 Application Data, Application Data, Application Data    18 0.046070545    10.1.1.11 \u2192 10.1.1.13    TCP 66 2049 \u2192 674 [ACK] Seq=16904 Ack=2259 Win=63104 Len=0 TSval=2420952529 TSecr=398680604    19 0.049060919    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 132 Application Data    20 0.049120160    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 116 Application Data    21 0.049489753    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 348 Application Data                                                                                                                   22 0.049569299    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 192 Application Data ...<\/code><\/pre>\n<p>\u041c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432 NFS-\u043f\u0430\u043f\u043a\u0435:<\/p>\n<pre><code class=\"bash\">   82 24.007203648    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 272 Application Data    83 24.007358680    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 260 Application Data    84 24.007529719    10.1.1.13 \u2192 10.1.1.11    TCP 66 792 \u2192 2049 [ACK] Seq=8269 Ack=23090 Win=94976 Len=0 TSval=398803883 TSecr=2421075807    85 24.007641431    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 372 Application Data    86 24.007724635    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 468 Application Data    87 24.007999216    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 316 Application Data    88 24.011385927    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 276 Application Data    89 24.011745229    10.1.1.13 \u2192 10.1.1.11    TLSv1.3 296 Application Data    90 24.011833565    10.1.1.11 \u2192 10.1.1.13    TLSv1.3 268 Application Data    91 24.052731556    10.1.1.13 \u2192 10.1.1.11    TCP 66 792 \u2192 2049 [ACK] Seq=9055 Ack=23904 Win=94976 Len=0 TSval=398803929 TSecr=2421075812 <\/code><\/pre>\n<h3>\u041e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 CA \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445, \u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<pre><code class=\"bash\"># mount.nfs -o xprtsec=mtls,nfsvers=4.2 server-1:\/mnt\/nfs_mtls \/mnt\/nfs_mtls mount.nfs: access denied by server while mounting server-1:\/mnt\/nfs_mtls<\/code><\/pre>\n<h4>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c<\/h4>\n<p>\u041d\u0430 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u043f\u0430\u043f\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e mtls. \u0415\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0443\u043a\u0430\u0436\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 tls \u0438 \u0432\u0435\u0440\u0441\u0438\u044e NFS-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 3, \u0442\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 \u043f\u0430\u043f\u043a\u0443 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>\u041c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c:<\/p>\n<pre><code class=\"bash\"># mount.nfs -o xprtsec=tls,nfsvers=3 server-1:\/mnt\/nfs_mtls \/mnt\/nfs_mtls #<\/code><\/pre>\n<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0435\u0442:<\/p>\n<pre><code class=\"bash\"># ls -l \/mnt\/nfs_mtls\/ ls: cannot open directory '\/mnt\/nfs_mtls\/': Permission denied<\/code><\/pre>\n<p>\u0421 NFS 4.1 \u0438 4.2 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0435\u0442 \u2014 \u043f\u0430\u043f\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f:<\/p>\n<pre><code class=\"bash\"># for i in 4.1 4.2;do mount.nfs -o xprtsec=tls,nfsvers=$i server-1:\/mnt\/nfs_mtls \/mnt\/nfs_mtls ;done mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_mtls on \/mnt\/nfs_mtls mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_mtls on \/mnt\/nfs_mtls<\/code><\/pre>\n<h4>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438 \u0442\u043e\u043c \u0436\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e NFS-\u043f\u0430\u043f\u043e\u043a \u043f\u043e tls \u0438\u043b\u0438 mtls (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0438\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f mtls) \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0442\u043e \u0432\u0441\u0451 \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c:<\/p>\n<pre><code class=\"bash\"># for i in 11 22 33;do mount.nfs -o nfsvers=4.2,xprtsec=mtls server-1:\/mnt\/nfs_mtls\/$i \/mnt\/nfs_mtls\/$i ;done #<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c handshake \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u2014 \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u0438. \u0412 \u043b\u043e\u0433\u0435 tlshd \u044d\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">tlshd[7776]: handshake with server-1 (10.1.1.11) was successful<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0442\u043e\u0433\u043e \u0436\u0435 NFS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u043e tls (\u0438\u043b\u0438 mtls, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043f\u043e tls).<\/p>\n<pre><code class=\"bash\"># for i in 11 22 33;do mount.nfs -o nfsvers=4.2,xprtsec=tls server-1:\/mnt\/nfs_tls\/$i \/mnt\/nfs_tls\/$i ;done mount.nfs: Operation not permitted for server-1:\/mnt\/nfs_tls\/11 on \/mnt\/nfs_tls\/11 mount.nfs: Operation not permitted<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-455536","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/455536","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=455536"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/455536\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=455536"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=455536"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=455536"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}