Hệ thống tập tin mạng an toàn cho Linux: Mọi người đang làm gì?


26

NFSv3 là phổ biến, nhưng mô hình bảo mật mặc định là ... kỳ quặc . CIFS có thể sử dụng xác thực Kerberos, nhưng không có ngữ nghĩa POSIX, nó không phải là khởi đầu. AFS không bao giờ mã hóa lưu lượng trên dây và là krb4 - và về cơ bản là một dự án đã chết. Các hệ thống tệp thử nghiệm mới lạ mắt không bao giờ thành hiện thực hoặc tập trung vào tốc độ (và nếu bạn may mắn, độ tin cậy của dữ liệu) - ví dụ, Luster sử dụng mô hình tin cậy khách hàng giống như NFSv3. Đối với sử dụng tại nhà, sshfs là tiện lợi, nhưng điều đó chắc chắn không quy mô.

Và dĩ nhiên, có NFSv4, với sec = krb5p. Tuyệt vời về lý thuyết, nhưng sau mười năm, nó dường như không được sử dụng trong thế giới thực. Máy khách Linux vừa mới xóa thẻ thử nghiệm. Và nếu bạn nhìn vào EMC Celerra, Isilon, v.v., tất cả đều là NFSv3. (Celerra hỗ trợ NFSv4, nhưng nó thực sự chôn trong tài liệu. Isilon dường như làm việc tại thêm sự hỗ trợ RPCGSS để FreeBSD, như vậy có lẽ nó đến, nhưng nó không có ở đó bây giờ.) Tôi thậm chí không thể tag bài này là "NFSv4" bởi vì tôi Mới ở đây và đó là một thẻ mới .

Vì vậy, thực sự . Bạn đang làm gì vậy


Tôi muốn nói, "NFS3 trên IPSEC", nhưng tôi không thể.
sysadmin1138

1
"NFS3 trên IPSEC" giúp giải quyết vấn đề trực tuyến, nhưng không giải quyết được vấn đề NFS cơ bản khác: nếu hộp máy khách bị root hoặc nếu bạn ở trong môi trường nơi người dùng root trên hệ thống của họ, họ sẽ có thể mạo danh tầm thường bất kỳ người dùng từ xa.
mattdm

Có bạn đây, thẻ mới;)
Khóc Havok

1
AFAIK, Kerberos đã được xác định cho NFS
Javier

2
Tôi không chắc chắn về nhu cầu mã hóa lưu lượng trên dây trong môi trường LAN (mặc dù xác thực nên được mã hóa). Dù sao thì bạn cũng nên theo dõi ngộ độc ARP ...
Hubert Kario

Câu trả lời:


8

Vì đó là một câu hỏi cụ thể (tất cả những gì bạn đang làm), hãy trả lời nó: không có gì. Hầu hết quản trị viên và người dùng không lo lắng về bảo mật NFS, vì vậy mọi người đều sử dụng NFSv3. Đó thường là một môi trường được kiểm soát (theo nghĩa là chỉ những máy nổi tiếng mới có thể gắn vào mạng ngay từ đầu). Nếu ai đó bị bắt vì lạm dụng cơ sở hạ tầng, họ sẽ bị sa thải hoặc vào tù.

Đối với dữ liệu mà bạn thực sự không muốn ai có thể đọc được, bạn mã hóa chúng một cách rõ ràng, ví dụ: cơ sở dữ liệu mật khẩu Firefox, khóa ssh hoặc khóa pgp. Bạn làm điều đó bởi vì bạn biết rằng quản trị viên có thể đọc chúng trên máy chủ tệp, vì vậy bảo mật hệ thống tệp mạng sẽ không giúp được gì.


14

Có vẻ như bạn đang hỏi hai câu hỏi ở đây:

Chúng ta thực sự đang sử dụng cái gì? cái này là gì?

Thứ tôi thực sự đang sử dụng là CIFS, trong trường hợp sử dụng POSIX của tôi ít quan trọng hơn nên tôi không gặp vấn đề gì. NFS3 được sử dụng trong các khu vực bảo mật không quan trọng, chẳng hạn như máy chủ cài đặt SLES của tôi. Và cuối cùng, sshfs / gvfs để chia sẻ đất người dùng đơn giản. Mã hóa hữu tuyến không được coi là cần thiết, vì vậy đó không phải là một yếu tố có ý nghĩa đối với chúng tôi.

Đối với câu hỏi khác, dường như có sáu yêu cầu chính cho những gì bạn đang tìm kiếm:

  1. Mã hóa lưu lượng trên dây.
  2. Mã hóa xác thực.
  3. Ngữ nghĩa Posix.
  4. Thực thi mạnh mẽ các ACL dựa trên máy chủ.
  5. Không phải là người dùng.
  6. Được thực sự sử dụng.

Tôi nghi ngờ điểm 5 và 6 sẽ là kẻ giết người ở đây, nhưng rồi đây (đây cũng là điểm mà một bảng sẽ thực sự tiện dụng, nhưng markdown / StackExchange không hỗ trợ nó).

NFSv3 + IPSec

  1. Được mã hóa trên dây, vượt qua
  2. Không xác thực được mã hóa, không thành công
  3. Ngữ nghĩa Posix, vượt qua
  4. Không thực thi mạnh mẽ các ACL dựa trên máy chủ, thất bại
  5. Không phải là người dùng, vượt qua
  6. Được sử dụng thực sự, vượt qua

NFSv4 + Krb + IPSec

  1. Được mã hóa trên dây, vượt qua
  2. Xác thực được mã hóa, vượt qua
  3. Ngữ nghĩa Posix, vượt qua
  4. Thực thi mạnh mẽ các ACL dựa trên máy chủ, vượt qua
  5. Không phải là người dùng, vượt qua
  6. Không thực sự được sử dụng, thất bại

CIFS

  1. Không được mã hóa trên dây, thất bại
  2. Xác thực được mã hóa
  3. Ngữ nghĩa Posix, vượt qua (Samba & Kernel bây giờ, Windows đã có lớp Posix kể từ ngày NT)
  4. Thực thi mạnh mẽ các ACL dựa trên máy chủ, vượt qua
  5. Không phải là người dùng, vượt qua
  6. Được sử dụng thực sự, vượt qua

CIFS + IPSec

  1. Được mã hóa trên dây, vượt qua
  2. Xác thực được mã hóa
  3. Ngữ nghĩa Posix, vượt qua (Samba & Kernel ngay bây giờ)
  4. Thực thi mạnh mẽ các ACL dựa trên máy chủ, vượt qua
  5. Không phải là người dùng, vượt qua
  6. Không thực sự được sử dụng, thất bại

SSHFS

  1. Được mã hóa trên dây, vượt qua
  2. Xác thực được mã hóa, vượt qua
  3. Ngữ nghĩa Posix, vượt qua
  4. Thực thi mạnh mẽ các ACL dựa trên máy chủ, vượt qua
  5. Là người dùng, thất bại
  6. Được sử dụng thực sự, vượt qua

AFP / NetATalk

  1. Được mã hóa trên dây, thất bại
  2. Xác thực được mã hóa, vượt qua
  3. Ngữ nghĩa Posix, vượt qua
  4. Thực thi mạnh mẽ các ACL dựa trên máy chủ, vượt qua
  5. Không phải là người dùng, vượt qua
  6. Thực sự được sử dụng, thất bại

Và tôi không chạm vào các hệ thống tệp phân tán ngoài kia. Đơn giản là không có một thứ duy nhất nào làm được tất cả. Một số đến gần (CIFS) và một số đã ở đó nhưng không ai sử dụng chúng (NFS4 + IPSec, CIFS + IPSec). Vì một số lý do, một hệ thống tập tin mạng an toàn là một thứ đã phải chịu nhiều thỏa hiệp trong những năm qua.


Bạn có thể đã đề cập đến "NFSv4 + Krb" và thêm "7. Nó có nhanh một cách hợp lý không (tức là so với cùng một giao thức mà không cần mã hóa)?" như một câu hỏi Điều này có thể là một thất bại cho NFSv4 + krb5p, nhưng vượt qua cho các câu hỏi 1-6.
al.

có thể là thời gian cho một SNFS hệ thống tập tin mạng an toàn mới?
Unix Janitor

@ user37899 Vấn đề, như mọi khi, là thuyết phục các nhà cung cấp thiết bị hỗ trợ và các tổ chức triển khai nó.
sysadmin1138

1
Chúng tôi đã rất xui xẻo khi cố gắng sử dụng CIFS trong chế độ POSIX. Có lẽ đã đến lúc phải xem lại điều đó.
mattdm

FWIW Tôi đang sử dụng CIFS + IPsec, nhưng không phải với ngữ nghĩa POSIX. máy chủ là emc celerra, máy khách win7. Các đường hầm ipsec được thực hiện ở chế độ lan-lan giữa cisco ASA (bên cạnh celerra) và win7 ipsec dựng sẵn.
Dan Pritts

3

Tôi đã sử dụng openafs trong sản xuất trong nhiều năm, với cả máy khách Linux và Windows. Nó hoạt động rất tốt, có một cộng đồng phát triển tích cực và đã dễ dàng cài đặt và quản trị hơn trong vài năm qua vì các bản phân phối linux khác nhau đã bao gồm đóng gói cho nó. Nó có mụn cóc, nhưng tôi thấy rằng chúng được bù đắp bởi tính linh hoạt quản trị cao hơn, khả năng có các máy khách và máy chủ được phân tách bằng các liên kết chậm, dễ dàng sao lưu ngoại vi và AFSism tích cực khác.

Một điều tôi đặc biệt thích là chạy các máy chủ web trực tuyến sản xuất trên openaf, với các ACL bị khóa. Không có vé kerberos, không có quy trình nào trên máy - ngay cả một máy chạy bằng root - có thể ghi vào hệ thống tập tin. Tôi không thể đếm được bao nhiêu lần chúng tôi nhận thấy các cuộc tấn công hoàn toàn thất bại vì biện pháp đơn giản đó.

Có một số người dùng openafs khá lớn - người dùng thương mại lớn nhất mà tôi biết là Morgan Stanley.


1

Làm thế nào về OpenAFS vẫn còn sống và VPN theo nó bởi vì mã hóa duy nhất của nó tại thời điểm này là DES.


2
Tôi đã sử dụng OpenAFS trong sản xuất. Tin đồn về sự sống động của nó được phóng đại rất nhiều.
mattdm

Đã có bản phát hành mới trong tháng này và trước đó đã có những bản cập nhật khá thường xuyên để hỗ trợ các phiên bản Windows mới và phiên bản mới của nhân Linux (bản phát hành mới nhất hỗ trợ 3.0).
Hubert Kario

1

Tôi thấy rằng rất nhiều người trong chủ đề này đang nói về việc ẩn dữ liệu, tức là các cuộc tấn công không thể rình mò dữ liệu của bạn. Một điều quan trọng không kém để suy nghĩ về tính toàn vẹn và tính xác thực của dữ liệu. Là những gói nfs thực sự từ máy chủ nfs của bạn? Có phải một gói nfs đã được thay đổi trong quá cảnh?


NFS trên IPsec đảm nhiệm việc đó (trên các liên kết diện rộng) và theo dõi ngộ độc ARP thực hiện điều đó trên LAN
Hubert Kario

Có ai thực sự sử dụng ipsec với thành công?
Unix Janitor

1

Chà, với tôi nghe có vẻ như một trong những Hệ thống tập tin phân tán đó sẽ dành cho bạn. Tôi hoàn toàn không muốn giới thiệu OpenAFS, vì nó đã cũ, chưa hỗ trợ IPv6, ..

Bản thân tôi khá hài lòng với GlusterFS . Gluster khá trưởng thành, hoạt động ổn và có một bộ tính năng tốt. Tuy nhiên, như đã thảo luận gần đây trong IRC, Gluster cũng không hỗ trợ IPv6 một cách ổn định. Tính năng này sẽ được lên kế hoạch cho 3.6 hoặc 3.7.

Ngoài ra còn có một dự án tên là HekaFS, được xây dựng trên Gluster, bổ sung thêm các tính năng Xác thực và SSL nâng cao. Nó là tài liệu cực kỳ tốt và được thiết kế rất tốt.

Điều mà alos có thể quan tâm đến bạn là XtreemFS , được thiết kế cho điện toán lưới toàn cầu, do đó, nó đi kèm với SSL và các công cụ theo mặc định. Sự lựa chọn của tôi cho việc sử dụng rơi vào Gluster, vì cộng đồng dường như hoạt động nhiều hơn và nó được ghi nhận tốt hơn.

Tất cả đều tuân thủ posix tất nhiên.


0

Tôi sử dụng NFS. Nhưng NFS từ máy chủ đến máy chủ được thực hiện trên một mạng trục chuyên dụng nên không cần mã hóa và xác thực là vô nghĩa. Chỉ cần đặt mỗi lần xuất thành chỉ chia sẻ một thư mục được chọn vào một máy chủ dựa trên IP.


mạng chuyên dụng, cho đến khi ai đó cắm vào công tắc giá với dây dẫn.
Unix Janitor

Đó là một vấn đề an ninh vật lý sau đó. Khi họ ở cùng phòng với các máy chủ, dù sao thì đó cũng là trò chơi.
Hiên nhà

-2

Với tất cả sự tôn trọng, bạn hoàn toàn nhìn nhận vấn đề này một cách sai lầm và bạn nên lùi xa khỏi bàn điều khiển trong vài giờ.

Khá nhiều tất cả io lưu trữ không được mã hóa bởi vì nó không quan trọng ở lớp trừu tượng đó. Nghi ngờ điều đó? Đặt một nút trên công tắc sợi thổ cẩm của bạn và bạn sẽ thấy kênh sợi đó, giống như iscsi và nfs, tất cả đều là một mớ hỗn độn không được mã hóa - theo thiết kế. Giải quyết đó là một vấn đề trung bình, không phải là vấn đề giao thức lưu trữ. Ví dụ, muốn nfs an toàn và mã hóa? Tạo một lan được mã hóa điểm tới điểm giữa máy khách và máy chủ nfs bằng ipsec / ssl / tls hoặc một giải pháp phần cứng thuần túy.


Tôi nghĩ rằng bạn đang thiếu một điểm quan trọng. Như câu hỏi đã nói, vấn đề là ở mô hình bảo mật NFS. Mặc dù mã hóa là tốt, nhưng như bạn nói, đó là một vấn đề có thể giải quyết được. Vấn đề lớn với NFS là một khi hệ thống tệp được gắn trên hệ thống, bất kỳ ai có quyền truy cập root trên hệ thống đó đều có thể truy cập bất kỳ tệp nào trên hệ thống tệp đó, bất kể quyền sở hữu hoặc quyền. Một hệ thống như AFS hoặc, theo lý thuyết, NFSv4 với sec = krbp5, yêu cầu thông tin xác thực mạnh mẽ để truy cập các tệp và do đó thể hiện sự gia tăng đáng kể về bảo mật. Một máy khách NFS đã root không đánh đồng sự tiếp xúc dữ liệu lớn.
larsks

1
Trừ khi bạn yêu cầu người dùng nhập thông tin đăng nhập cho mỗi lần truy cập, thông tin đăng nhập sẽ được lưu trữ. Một khách hàng bị xâm nhập gốc có thể dễ dàng từ bỏ khóa được lưu trữ. Bất kỳ hệ thống tệp được nối mạng sẽ làm tăng sự tiếp xúc của hệ thống tệp để thỏa hiệp.
BillThor

@BillThor Đây là những gì tôi đã nghĩ .. Nó vẫn mở để tấn công nếu thông tin đăng nhập nằm trong bộ nhớ kernel? Tôi nghĩ rằng một mô-đun hạt nhân có thể được tải lên để đọc bất kỳ phần nào của bộ nhớ kernel.
Rob Olmos

Miễn là yêu cầu được sử dụng trong ngữ cảnh người dùng có quyền truy cập vào bộ lưu trữ được chia sẻ, có thể không có vấn đề gì về thông tin đăng nhập. Thông tin xác thực thường được tổ chức bởi một quy trình nền, vì vậy bất kỳ ai có thể giao tiếp với nó đều có thể có quyền truy cập vào bộ lưu trữ được chia sẻ. Tôi sẽ xếp hạng rủi ro cho lưu trữ mạng được bảo mật giống như lưu trữ cục bộ.
BillThor

2
@BillThor: với kerberos, rủi ro được giảm thiểu đáng kể, vì kẻ tấn công sẽ chỉ có quyền truy cập vào hệ thống tệp của người dùng đã chuyển tiếp vé của họ và chỉ trong vòng đời của những vé đó. Với xác thực dựa trên hệ thống (a la nfsv3), root có thể truy cập và thao tác các tệp của bất kỳ người dùng nào , ngay cả khi người dùng đó không liên quan gì đến hệ thống bị xâm nhập.
mattdm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.