Làm thế nào tôi có thể chroot kết nối ssh?


20

Tôi muốn thiết lập một nhà tù chroot cho hầu hết (không phải tất cả) người dùng đăng nhập mặc dù SSH. Tôi đã nghe nói có thể với các phiên bản mới nhất của openssh, nhưng tôi không thể tìm ra cách để làm điều đó. Tất cả nói về cách vá một phiên bản cũ và bản vá không còn nữa.

Tôi đang chạy debian etch.

Câu trả lời:


13

Tôi đang sử dụng rssh cho mục đích này.

Bạn đúng là có một cách mới để làm điều đó và đó là một tính năng tích hợp của các phiên bản ssh gần đây.

Đây là một bài viết về Undeadly .


6

Tôi chỉ cần thiết lập một người dùng có thể đăng nhập thông qua ssh và ssh đến một máy chủ khác (không được kết nối trực tiếp với thế giới bên ngoài). Các liên kết của cstamas và ericmayo là một khởi đầu tốt.

Về cơ bản, tôi đã thêm các mục sau vào / etc / ssh / sshd_config:

Phù hợp với người dùng myuser
  ChrootDirectory / chroot / myuser

Từ đó trở đi, tôi chỉ cần tạo môi trường chroot bên dưới / chroot / myuser. Tôi đã sao chép / bin / bash và / usr / bin / ssh và các thư viện chia sẻ mà họ cần (ldd sẽ hiển thị những cái đó). Đối với một môi trường lớn hơn, có lẽ sẽ hợp lý khi biên dịch các phiên bản được liên kết tĩnh của các tệp thực thi cần thiết.

Bash đã làm việc ngay lập tức, để ssh hoạt động, tôi cũng phải tạo thư mục .ssh, copy / etc / passwd, /etc/nsswitch.conf và / lib / libnss_ * và tạo / dev / null, / dev / tty và / dev / urandom thông qua mknod.


2
mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

Bạn phải chỉnh sửa tệp / etc / sshd_config và addd

ChrootDirectory /chroot/%h

Và khởi động lại sshd daemon.

Tất cả đang được nói, tôi thành thật nghĩ rằng sftp là một lựa chọn tốt hơn.

Ngoài ra, tôi tìm thấy url này nếu nó hữu ích.

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229


1

Nếu bạn đang sử dụng xác thực khóa công khai, bạn có thể sử dụng tùy chọn "lệnh" trong các khóa được ủy quyền để thiết lập nhà tù chroot.

~ / .ssh / ủy quyền

command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host

Tôi không sử dụng xác thực khóa công khai, xác thực được thực hiện bằng mật khẩu và tên người dùng
Malfist

0

Theo tôi biết các phiên bản mới của OpenSSH chỉ cho phép chroot cho các kết nối SFTP. Tôi đã thử và nó hoạt động. Nhưng đối với SSH, giải pháp khả dụng là bản vá chrootssh. Tôi duyệt trang SourceForge và không có tệp nào nên tôi nghĩ là đã ngừng.

Đối với Debian Etch có một số tệp ở đây: http://debian.home-dn.net/etch/ssh/

Có các giải pháp khác ở đây: http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html , bao gồm cả chrootssh.


-1 Xin lỗi, Câu trả lời của bạn đã đúng từ nhiều năm trước khi bạn viết nó, nhưng không còn nữa.
Chris S
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.