Câu trả lời:
SSH Hỗ trợ chroot người dùng SFTP nguyên bản. Bạn chỉ cần cung cấp
ChrootDirectory
Trong tệp cấu hình sshd của bạn và khởi động lại sshd.
Nếu bạn chỉ đang làm sftp, thì bạn không phải làm gì thêm. Thật không may, điều này không làm việc cho scp. Đối với shell tương tác, bạn sẽ cần sao chép các tệp nhị phân và / dev nút vào chroot.
Một cấu hình ví dụ, chỉ cho một người dùng, người kiểm tra:
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
Một số điều cần chú ý, từ trang man sshd_config:
Tất cả các thành phần của tên đường dẫn phải là thư mục thuộc sở hữu gốc không phải là thư mục có thể ghi bởi bất kỳ người dùng hoặc nhóm khác. Sau chroot, sshd (8) thay đổi thư mục làm việc đến thư mục nhà của người dùng.
Tìm kiếm ChrootDirectory trong man sshd_config để biết thêm thông tin.
Subsystem sftp /usr/lib/openssh/sftp-server
dòng thànhSubsystem sftp internal-sftp -f AUTH -l VERBOSE
Match
phần khác .
Chroot là một phương pháp hợp lý đơn giản. Vì hệ điều hành đã có tính năng bảo mật này, các nhà văn daemon có xu hướng không cố gắng thực hiện lại nó.
Rssh đi kèm với một hướng dẫn về việc thiết lập một nhà tù chroot. Đó là trong CHROOT
tập tin trong phân phối nguồn. Tóm lại, bạn cần phải có:
/usr/bin/scp
, /usr/libexec/openssh/sftp-server
,/usr/bin/rssh_chroot_helper
{/usr,}/lib/lib*.so.[0-9]
) mà họ sử dụng, được sao chép tương tự/etc/passwd
(hoàn toàn có thể không phải là bản sao nhưng xuất phát từ bản gốc)/dev/null
, /dev/tty
và cũng là một /dev/log
ổ cắm để ghi nhật ký (và bạn cần nói với trình nền syslog của mình để nghe trên ổ cắm đó)Mẹo bổ sung không có trong tài liệu rssh: Nếu bạn cần một số tệp có thể truy cập được trong nhà tù chroot, bạn có thể sử dụng bindfs hoặc Linux mount --bind
để tạo phân cấp thư mục bổ sung từ bên ngoài nhà tù. bindfs
cho phép thư mục được đếm lại có nhiều quyền hạn chế hơn, ví dụ như chỉ đọc. ( mount --bind
không trừ khi bạn áp dụng bản vá kernel; Debian đã bao gồm bản vá này kể từ lúc đông, nhưng hầu hết các bản phân phối khác không có trong năm 2011).
Bạn có thể muốn xem xét một cách khéo léo (hoặc gần đây hơn, rssh ); về cơ bản, nó là một vỏ đăng nhập chỉ có thể được sử dụng để khởi chạy scp hoặc hệ thống con sftpd. Trong scponlyc
biến thể, nó thực hiện một chroot trước khi kích hoạt hệ thống con được đề cập.