Làm thế nào để thiết lập một thư mục được mã hóa chỉ được gắn trong khi truy cập samba?


7

(Đây không phải là về việc hạn chế quyền truy cập của máy khách, mà các quyền ext3 thực hiện thủ thuật)

Tôi muốn mã hóa dữ liệu trên ổ NAS của mình ( Buffalo LinkStation Pro có bật quyền truy cập SSH, nếu điều đó quan trọng) theo cách thân thiện với người dùng. Hiện tại, một thùng chứa truecrypt phải được gắn thủ công thông qua SSH và cũng được ngắt kết nối lại (trừ khi bạn giải quyết được câu hỏi hết thời gian của tôi ). Sử dụng khóa SSH không mật khẩu (nhưng được mã hóa EFS), khóa này được rút gọn thành hai phím tắt máy tính để bàn PuTTY và nhập mật khẩu truecrypt (cho đến khi đơn giản hóa hơn nữa ) để gắn.

Tuy nhiên, giải pháp lý tưởng sẽ minh bạch. Trước tiên tôi nghĩ về việc cố gắng bằng cách nào đó để chia sẻ cho phép mã hóa EFS , nhưng điều đó có thể liên quan đến nhiều công việc hơn và EFS cho nhiều người dùng mà không có máy chủ Active Directory có vẻ rắc rối .

Nhưng bây giờ ý tưởng của tôi là một mount tự động, ví dụ như một thư mục được mã hóa EncFS được kích hoạt tự động bởi quyền truy cập samba từ người dùng được ủy quyền (sử dụng máy khách Windows). Làm thế nào mà có thể đạt được? (Điểm thưởng khi hiển thị chia sẻ honeypot cho người dùng trái phép ...)


Tôi vẫn không hiểu ai có thông tin mã hóa trong kịch bản: chúng có được cung cấp bởi người dùng khi cài đặt không? Nó có phải là mật khẩu không, hay nó có thể là một tệp chính (có thể được bảo vệ bằng mật khẩu) trên máy khách hoặc máy chủ (mà)?
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Trong trường hợp này, tên người dùng / mật khẩu Windows được truyền tới samba cũng sẽ được sử dụng làm thông tin mã hóa (Lý tưởng nhất là theo cách nhiều người dùng có thể gắn cùng một âm lượng với các thông tin khác nhau).
Tobias Kienzler

1
Sau đó, mã hóa phía máy chủ, để bảo vệ chống lại kẻ tấn công có quyền truy cập vật lý khi thiết bị lưu trữ không được sử dụng? Đồng ý.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Chính xác là như vậy, cảm ơn vì từ ngữ tốt hơn
Tobias Kienzler

Câu trả lời:


0

Tôi đang xem bản phác thảo của một giải pháp bằng cách sử dụng "kịch bản đăng nhập" của Samba - mã phía máy khách chạy sau khi đăng nhập samba - nhưng một giải pháp hoàn chỉnh cần phải hoàn thành bản phác thảo với các chi tiết. Cũng liên quan là "tập lệnh preexec" - mã phía máy chủ chạy trong quá trình đăng nhập samba.

Tham khảo trang người đàn ông smb.conf

kịch bản đăng nhập (G)

Tham số này chỉ định tệp bó (.bat) hoặc tệp lệnh NT (.cmd) sẽ được tải xuống và chạy trên máy khi người dùng đăng nhập thành công. Tệp phải chứa các kết thúc dòng CR / LF kiểu DOS. Nên sử dụng trình chỉnh sửa kiểu DOS để tạo tệp.

Tập lệnh phải là đường dẫn tương đối đến dịch vụ [netlogon]. Nếu dịch vụ [netlogon] chỉ định đường dẫn / usr / local / samba / netlogon và logon script = STARTUP.BAT, thì tệp sẽ được tải xuống là:

/usr/local/samba/netlogon/STARTUP.BAT

Nội dung của tệp bó hoàn toàn là sự lựa chọn của bạn. Một lệnh được đề xuất sẽ là thêm NET TIME \ SERVER / SET / YES, để buộc mọi máy phải đồng bộ hóa đồng hồ với cùng một máy chủ thời gian. Một cách sử dụng khác là thêm NET USE U: \ SERVER \ UTILS cho các tiện ích thường được sử dụng hoặc

NET USE Q: \\SERVER\ISO9001_QA

ví dụ.

Lưu ý rằng điều đặc biệt quan trọng là không cho phép truy cập ghi vào chia sẻ [netlogon] hoặc cấp cho người dùng quyền ghi trên các tệp bó trong một môi trường an toàn, vì điều này sẽ cho phép các tệp bó bị thay đổi tùy ý và bảo mật bị vi phạm.

Tùy chọn này có các thay thế tiêu chuẩn, cho phép bạn có các tập lệnh đăng nhập riêng cho từng người dùng hoặc máy.

và cũng

preexec (S)

Tùy chọn này chỉ định một lệnh sẽ được chạy bất cứ khi nào dịch vụ được kết nối. Nó thay thế thông thường.

Một ví dụ thú vị là gửi cho người dùng tin nhắn chào mừng mỗi khi họ đăng nhập. Có thể là tin nhắn trong ngày? Đây là một ví dụ:

preexec = csh -c 'echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I' &

Tuy nhiên, trong trường hợp của bạn, bạn thực sự muốn các kịch bản đăng nhập (hình thức không được mã hóa được gắn trên máy khách), vì vậy một bản phác thảo giải pháp có thể bao gồm:

  1. đảm bảo rằng mỗi máy tính có cài đặt tương đương EncFS
  2. viết một kịch bản đăng nhập (định dạng .bat) gọi encfs trên máy khách và nhắc người dùng đăng nhập. Do đó, lệnh encfs gắn kết biểu mẫu không được mã hóa cục bộ, với lưu trữ từ xa được mã hóa.
  3. cấu hình smb.conf để người dùng có liên quan chạy tập lệnh đăng nhập. ví dụ như một cái gì đó như

    kịch bản đăng nhập = runencfs.bat

  4. Đối với điểm thưởng, tập lệnh đăng nhập của bạn có thể tự động / cài đặt nhanh chóng Encfs (từ chia sẻ samba) và chỉ chạy mount nếu nó được cài đặt!

Mặc dù vậy, các kịch bản phía máy khách chắc chắn sẽ khiến bạn đau đầu vì ngôn ngữ cmd, đảm bảo cài đặt các bảng mã và làm việc xung quanh các cửa sổ gotchas, như Windows 8.1 và không chạy các kịch bản đăng nhập cho đến năm phút sau trừ khi được cấu hình khác .


0

Nếu mối quan tâm của bạn là bảo mật dữ liệu khi nghỉ ngơi, bạn có thể tìm kiếm một giải pháp mã hóa trên NAS thay vào đó (FreeNAS và Synology làm điều này). Khi khởi động, bạn cần nhập một khóa để mở âm lượng nhưng sau đó, nó hoạt động giống như một chia sẻ không được mã hóa để không cần cấu hình phía máy khách.

Mặt khác, nếu bạn lo lắng về dữ liệu được lấy từ máy chủ trong khi nó đang chạy, việc mã hóa phía máy khách sẽ giải quyết vấn đề của bạn. Một cái gì đó như EncFS hoặc Cryptomator có thể là giải pháp đơn giản nhất cho vấn đề của bạn?

Hoặc có thể tôi hiểu sai vấn đề?

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.