มีวิธีง่ายๆในการ จำกัด ผู้ใช้ SCP / SFTP ไปยังไดเรกทอรีหรือไม่? วิธีการทั้งหมดที่ฉันเจอนั้นกำหนดให้ฉันต้องจำคุก chroot โดยการคัดลอกไบนารี แต่ฉันไม่คิดว่ามันจำเป็น
มีวิธีง่ายๆในการ จำกัด ผู้ใช้ SCP / SFTP ไปยังไดเรกทอรีหรือไม่? วิธีการทั้งหมดที่ฉันเจอนั้นกำหนดให้ฉันต้องจำคุก chroot โดยการคัดลอกไบนารี แต่ฉันไม่คิดว่ามันจำเป็น
คำตอบ:
SSH รองรับการ chrooting ผู้ใช้ SFTP คุณเพียงแค่ต้องจัดหา
ChrootDirectory
ในไฟล์ sshd config ของคุณแล้วรีสตาร์ท sshd
หากคุณเพิ่งทำ SFTP คุณก็ไม่ต้องทำอะไรอีกแล้ว ขออภัยนี่ใช้ไม่ได้กับ scp สำหรับเชลล์เชิงโต้ตอบคุณจะต้องคัดลอกไบนารีและ / dev โหนดใน chroot
ตัวอย่างการกำหนดค่าสำหรับผู้ใช้เพียงคนเดียว testuser:
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
บางสิ่งที่ต้องระวังจากหน้า sshd_config:
ส่วนประกอบทั้งหมดของชื่อพา ธ ต้องเป็นไดเรกทอรีที่เป็นเจ้าของรูท สามารถเขียนได้โดยผู้ใช้หรือกลุ่มอื่น หลังจาก chroot, sshd (8) จะเปลี่ยน ไดเรกทอรีทำงานไปยังไดเรกทอรีบ้านของผู้ใช้
ค้นหา ChrootDirectory ใน man sshd_config สำหรับข้อมูลเพิ่มเติม
Subsystem sftp /usr/lib/openssh/sftp-server
บรรทัดเป็นSubsystem sftp internal-sftp -f AUTH -l VERBOSE
Match
ส่วนอื่น
chroot เป็นวิธีการที่เรียบง่ายพอสมควร เนื่องจากระบบปฏิบัติการมีฟีเจอร์ความปลอดภัยนี้อยู่แล้วผู้เขียน daemon จึงไม่พยายามนำมาใช้อีก
Rsshมาพร้อมกับคู่มือในการตั้งค่าคุก chroot มันอยู่ในCHROOT
ไฟล์ในการแจกแจงต้นฉบับ สรุปคุณจะต้องมี:
/usr/bin/scp
, /usr/libexec/openssh/sftp-server
,/usr/bin/rssh_chroot_helper
{/usr,}/lib/lib*.so.[0-9]
) ที่ใช้งานก็จะถูกคัดลอกเช่นเดียวกัน/etc/passwd
(อาจจะไม่ใช่สำเนา แต่ได้มาจากต้นแบบ)/dev/null
, /dev/tty
และ/dev/log
ซ็อกเก็ตสำหรับการบันทึก (และคุณต้องแจ้งให้ syslog daemon ของคุณฟังซ็อกเก็ตนั้น)เคล็ดลับพิเศษที่ไม่ได้อยู่ในเอกสาร rssh: หากคุณต้องการให้ไฟล์บางไฟล์สามารถเข้าถึงได้ในคุก chroot คุณสามารถใช้bindfsหรือ Linux mount --bind
เพื่อสร้างลำดับชั้นไดเรกทอรีเพิ่มเติมจากนอกคุก bindfs
อนุญาตให้ไดเร็กทอรีที่เมาท์ใหม่มีสิทธิ์ จำกัด มากขึ้นเช่นอ่านอย่างเดียว ( mount --bind
ไม่เว้นแต่คุณจะใช้เคอร์เนลแพทช์เดเบียนรวมแพทช์นี้มาตั้งแต่ตอนตะวันออกเลนนี่ แต่การกระจายอื่น ๆ ส่วนใหญ่ยังไม่เป็นของปี 2011)