ฉันจะ chroot เชื่อมต่อ SSH ได้อย่างไร?


20

ฉันต้องการตั้งค่าคุก chroot สำหรับผู้ใช้ส่วนใหญ่ (ไม่ใช่ทั้งหมด) ที่ลงชื่อเข้าใช้แม้ว่า SSH ฉันได้ยินมาว่าเป็นไปได้ด้วย openssh รุ่นล่าสุด แต่ฉันไม่สามารถหาวิธีทำได้ The How To's ทั้งหมดพูดถึงการแพทช์เวอร์ชั่นเก่าและ patch ไม่สามารถใช้งานได้อีกต่อไป

ฉันใช้เดเบียนจำหลัก

คำตอบ:


13

ฉันใช้ rssh เพื่อจุดประสงค์นี้

คุณอยู่ที่นั่นแล้วมีวิธีใหม่ในการทำและเป็นคุณสมบัติในตัวของเวอร์ชันล่าสุดของ ssh

นี่คือบทความเกี่ยวกับUndeadly


6

ฉันแค่ต้องตั้งค่าผู้ใช้หนึ่งคนที่จะสามารถเข้าสู่ระบบผ่านทาง ssh และ ssh ไปยังเซิร์ฟเวอร์อื่น (ซึ่งไม่ได้เชื่อมต่อโดยตรงกับโลกภายนอก) ลิงค์โดย cstamas และ ericmayo เป็นการเริ่มต้นที่ดี

โดยทั่วไปฉันเพิ่มต่อไปนี้ใน / etc / ssh / sshd_config:

จับคู่ผู้ใช้ myuser
  ChrootDirectory / chroot / myuser

จากนั้นฉันต้องสร้างสภาพแวดล้อม chroot ด้านล่าง / chroot / myuser ฉันคัดลอก / bin / bash และ / usr / bin / ssh และไลบรารีที่แบ่งใช้ที่ต้องการ (ldd จะแสดงรายการเหล่านั้น) สำหรับสภาพแวดล้อมที่มีขนาดใหญ่ขึ้นมันอาจจะเหมาะสมที่จะรวบรวมเวอร์ชั่นที่เชื่อมโยงแบบคงที่ของโปรแกรมปฏิบัติการที่จำเป็น

Bash ทำงานได้ทันทีเพื่อให้ ssh ทำงานฉันต้องสร้างไดเรกทอรี. ssh คัดลอก / etc / passwd, /etc/nsswitch.conf และ / lib / libnss_ * และสร้าง / dev / null, / dev / tty และ / dev / urandom ผ่าน 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>/.

คุณต้องแก้ไขไฟล์ / etc / sshd_config และ addd

ChrootDirectory /chroot/%h

และรีสตาร์ท sshd daemon

ทั้งหมดถูกกล่าวว่าฉันสุจริตคิดว่า SFTP เป็นตัวเลือกที่ดีกว่า

นอกจากนี้ฉันพบ URL นี้หากเป็นประโยชน์

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


1

หากคุณใช้การรับรองความถูกต้องของรหัสสาธารณะคุณสามารถใช้ตัวเลือก "คำสั่ง" ในคีย์ที่ได้รับอนุญาตเพื่อตั้งค่าคุก chroot

~ / .ssh / authorized_keys:

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

ผมไม่ได้ใช้การตรวจสอบคีย์สาธารณะ, การตรวจสอบจะกระทำโดยใช้รหัสผ่านและชื่อผู้ใช้
Malfist

0

เท่าที่ฉันรู้ OpenSSH เวอร์ชันใหม่อนุญาตเฉพาะ chroot สำหรับการเชื่อมต่อ SFTP เท่านั้น ฉันพยายามแล้วก็ใช้งานได้ แต่สำหรับ SSH วิธีแก้ปัญหาที่มีคือ chrootssh patch ฉันเรียกดูเว็บไซต์ SourceForge และไม่มีไฟล์ดังนั้นฉันคิดว่าถูกยกเลิก

สำหรับ Debian Etch มีไฟล์บางไฟล์อยู่ที่นี่: http://debian.home-dn.net/etch/ssh/

มีวิธีแก้ไขปัญหาอื่น ๆ ที่นี่: http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.htmlรวมถึง chrootssh


-1 ขออภัยคำตอบของคุณถูกต้องเมื่อหลายปีก่อนเมื่อคุณเขียน แต่ไม่ได้อีกต่อไป
Chris S
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.