ด้วยการเปิดตัว OpenSSH 4.9p1 คุณไม่จำเป็นต้องพึ่งแฮ็คบุคคลที่สามหรือการตั้งค่า chroot ที่ซับซ้อนอีกต่อไปเพื่อ จำกัด ผู้ใช้ไปยังโฮมไดเร็กตอรี่ของพวกเขาหรือให้พวกเขาเข้าถึงบริการ SFTP
แก้ไข / etc / ssh / sshd_config (/ etc / sshd_config ในการแจกแจงบางอย่าง) และตั้งค่าตัวเลือกต่อไปนี้:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
ตรวจสอบให้แน่ใจว่าคำสั่ง "จับคู่" อยู่ท้ายไฟล์ สิ่งนี้บอก OpenSSH ว่าผู้ใช้ทั้งหมดในกลุ่ม sftp จะถูก chrooted ไปยังโฮมไดเร็กตอรี่ (ซึ่ง% h แสดงถึงในคำสั่ง ChrootDirectory
สำหรับผู้ใช้ใด ๆ ที่คุณต้องการ chroot เพิ่มพวกเขาไปยังกลุ่ม sftp โดยใช้:
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
คำสั่ง usermod ด้านบนจะเพิ่ม user joe ไปยังกลุ่ม sftp และตั้งค่า shell เป็น / bin / false เพื่อให้พวกเขาไม่สามารถเข้าถึง shell ได้อย่างแน่นอน คำสั่ง chown และ chmod จะตั้งค่าการอนุญาตที่จำเป็นสำหรับไดเรกทอรี ด้วยการตั้งค่าการอนุญาตเหล่านี้ผู้ใช้จะได้รับอนุญาตให้อัพโหลดและดาวน์โหลดไฟล์ แต่ไม่สามารถสร้างไดเรกทอรีหรือไฟล์ในไดเรกทอรีรากได้
Chrooting shell accounts มีความซับซ้อนเพิ่มขึ้นเล็กน้อยเนื่องจากจำเป็นต้องใช้ไฟล์อุปกรณ์บางอย่างและเชลล์ในไดเรกทอรีหลักของผู้ใช้ คำสั่งต่อไปนี้จะตั้งค่าระบบ chroot ขั้นพื้นฐานบน Mandriva Linux:
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
จากข้างต้นผู้ใช้ joe สามารถ ssh และจะถูก จำกัด ที่ chroot น่าเสียดายที่นี่ไม่ได้ทำอะไรมาก แต่มันให้ความคิดว่าคุณจะตั้งค่าอย่างไร คุณจะต้องติดตั้งไลบรารีและไบนารีเพิ่มเติมทั้งนี้ขึ้นอยู่กับสิ่งที่คุณต้องการให้
การสร้าง chroot
ติดตั้งแพ็กเกจ dchroot และ debootstrap
ในฐานะผู้ดูแลระบบ (เช่นใช้ sudo) ให้สร้างไดเรกทอรีใหม่สำหรับ chroot ในขั้นตอนนี้ไดเรกทอรี/var/chroot
จะถูกใช้ หากต้องการทำสิ่งนี้ให้พิมพ์sudo mkdir /var/chroot
ลงในบรรทัดคำสั่ง
ในฐานะผู้ดูแลระบบให้เปิด
/etc/schroot/schroot.conf
ในโปรแกรมแก้ไขข้อความ พิมพ์ตามด้วยcd /etc/schroot
gksu gedit schroot.conf
นี่จะช่วยให้คุณแก้ไขไฟล์ได้
เพิ่มบรรทัดต่อไปนี้schroot.conf
จากนั้นบันทึกและปิดไฟล์ แทนที่
your_username
ด้วยชื่อผู้ใช้ของคุณ
[lucid] description = Ubuntu Lucid location = / var / chroot priority = ผู้ใช้ 3 ราย = your_username groups = sbuild root-groups = root
เปิดเทอร์มินัลแล้วพิมพ์:
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \
http://mirror.url.com/ubuntu/
สิ่งนี้จะสร้าง 'การติดตั้ง' พื้นฐานของ Ubuntu 10.04 (Lucid Lynx) ใน chroot อาจต้องใช้เวลาสักครู่ในการดาวน์โหลดแพ็คเกจ หมายเหตุ: คุณสามารถแทนที่ชัดเจนด้วยรุ่นที่คุณเลือก Ubuntu หมายเหตุ: คุณต้องเปลี่ยนข้างต้นmirror.url.com
ด้วย URL ของมิเรอร์เก็บถาวรที่ถูกต้องสำหรับคุณ ตอนนี้ควรสร้าง chroot พื้นฐานแล้ว พิมพ์sudo chroot /var/chroot
เพื่อเปลี่ยนเป็นรูทเชลล์ภายใน chroot
การตั้งค่า chroot
มีบางขั้นตอนพื้นฐานที่คุณสามารถใช้เพื่อตั้งขึ้น chroot ให้สิ่งอำนวยความสะดวกเช่นความละเอียด DNS /proc
และการเข้าถึงการมี
หมายเหตุ: พิมพ์คำสั่งเหล่านี้ในเชลล์ซึ่งอยู่นอก chroot
พิมพ์ต่อไปนี้เพื่อเมาต์/proc
ระบบไฟล์ใน chroot (จำเป็นสำหรับการจัดการกระบวนการ):
sudo mount -o bind /proc /var/chroot/proc
พิมพ์ต่อไปนี้เพื่ออนุญาตการแก้ไข DNS จากภายใน chroot (จำเป็นสำหรับการเข้าถึงอินเทอร์เน็ต):
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
มีการติดตั้งแพคเกจน้อยมากตามค่าเริ่มต้นใน chroot (ไม่ได้ติดตั้งแม้แต่ sudo) ใช้apt-get install package_name
สำหรับติดตั้งแพ็คเกจ