Bảo vệ hệ thống tệp cho máy chủ SFTP an toàn


12

Điều này có vẻ không phải là một câu hỏi phát triển, nhưng về bản chất nó là. Hãy để tôi giải thích làm thế nào. Trọng tâm phát triển chính của chúng tôi là các trang nội dung động. Một số khách hàng của chúng tôi đã yêu cầu chúng tôi cho phép họ có không gian trong các máy chủ của chúng tôi (họ trả tiền) cho nội dung tĩnh cũ của họ. Chúng tôi sử dụng để thực hiện điều này bằng cách cung cấp cho khách hàng một tài khoản ftp đến một tên miền khác. (ví dụ: Miền khách hàng là customer.com nhưng họ đã truy cập nội dung tĩnh của họ thông qua otherdomain.com/customerstatic).

Bây giờ chúng tôi muốn tăng cường bảo mật cho khách hàng các tài khoản sftp trong các máy chủ linux của họ. Tôi đang sử dụng openssh / sftp-server trong môi trường shell của họ để họ không thể đăng nhập hoặc thực thi lệnh.

Vấn đề là về bản chất, nhiều tệp hệ thống tệp theo mặc định (drwxr-xr-x) có nghĩa là bất kỳ người dùng nào cũng có thể đọc nội dung của thư mục và có thể một số tệp. Tôi không nghĩ rằng việc thay đổi toàn bộ hệ thống tệp thành -rwxr-x - x là một bước đi khôn ngoan vì tôi không biết có bao nhiêu tệp hệ thống sẽ cần quyền đọc đó.

Có ai đó đã đối mặt với vấn đề này trong quá khứ. Nếu bạn có, bạn có thể khai sáng đường?

Cảm ơn


Câu hỏi hay và câu trả lời hoàn chỉnh súc tích - một người điều hành có lẽ nên thay đổi tiêu đề và biến nó thành một câu hỏi không phải wiki.
MikeyB

không thể bỏ wiki một câu hỏi; xin lỗi
Jeff Atwood

Câu trả lời:


22

SFTP về bản chất không an toàn; cho phép họ vào toàn bộ hệ thống tập tin của bạn là. Kiểm tra điều này để xem làm thế nào bạn có thể kích hoạt truy cập SFTP trên cơ sở chroot , nó sẽ khóa trong các thư mục mà họ có thể truy cập, giả sử, thư mục nhà của họ hoặc bất cứ nơi nào bạn muốn họ tải lên.

Trên Linux, tôi sẽ chú ý đến phần này (cấu hình / etc / ssh / sshd_config):

  Match Group sftponly
         ChrootDirectory %h
         ForceCommand internal-sftp 
         AllowTcpForwarding no

Điều này có nghĩa là bất kỳ ai trong nhóm người dùng 'sftponly' sẽ bị hạn chế trong các thư mục nhà của họ.

Xem liên kết để biết thêm và cũng đọc trang chủ sshd_config. Mong rằng sẽ giúp.


Ngoài ra, bạn có thể cần yêu cầu OpenSSH sử dụng nó internal-sftpkhi máy khách yêu cầu hệ thống con sftp, nó có thể đã được đặt để sử dụng sftp-serverchương trình bên ngoài . Để làm điều này, thêm hoặc thay đổi dòng Subsystem sftp internal-sftptrong phần chính của tệp cấu hình (không phải trong Matchphần).
Nate

Josh, bạn đã bao giờ tìm ra một cách để làm cho điều này không yêu cầu quyền sở hữu gốc của các thư mục nhà của người dùng chưa?
Matt Simmons


1

Khi bạn nói "Nhiều hệ thống tập tin theo mặc định 755 cho phép", mà thực sự có nghĩa là mặc định umask được thiết lập để 022. Bạn có thể thay đổi mặc định này (cho các tập tin mới) bằng cách thiết lập umask đến 027, trong đó sẽ thực hiện các điều khoản mặc định 750, hoặc đặt ô thành 007, sẽ tạo các quyền mặc định 770.


0

Bạn có thể xem xét việc thiết lập máy chủ OpenVZ, sau đó tạo một 'container' VM ftp / sftp riêng biệt cho mỗi công ty. Điều này giữ cho tất cả chúng tách biệt và khi bạn hiểu rõ về OpenVZ, nó thực sự tiện dụng cho những thứ nhỏ nhặt này.

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.