Score:0

จะป้องกันไม่ให้ผู้ใช้ SFTP เห็นไดเร็กทอรีอื่นได้อย่างไร

ธง cn

ฉันกำลังตั้งค่าเว็บเซิร์ฟเวอร์ที่ใช้ Windows Server 2019 หนึ่งในผู้จำหน่ายของเราต้องสามารถอัปโหลดไฟล์ได้ ฉันมี

  • เพิ่ม sshd
  • สร้างล็อกอินให้พวกเขาใช้
  • สร้างกลุ่มสำหรับการเข้าสู่ระบบนั้น
  • เพิ่มการเข้าสู่ระบบนั้นลงในกลุ่ม และนำการเข้าสู่ระบบออกจากกลุ่มอื่นทั้งหมด
  • สร้างไดเร็กทอรีอัปโหลด
  • ให้กลุ่ม เขียน และ แก้ไข สิทธิ์ในไดเร็กทอรีนั้น
  • เพิ่มบรรทัด ForceCommand internal-sftp -d "C:\inetpub\ftproot\Upload" ถึง ก จับคู่ คำสั่งสำหรับกลุ่มนั้นใน sshd_config

จนถึงตอนนี้ดีมาก การเข้าสู่ระบบนั้นสามารถเชื่อมต่อกับกล่องผ่าน SFTP และเซสชันจะเริ่มต้นโดยอัตโนมัติในไดเร็กทอรี ที่อัพโหลดและสามารถอัปโหลดและดาวน์โหลดไฟล์ได้จากที่นั่น แต่ฉันไม่สามารถหาวิธีป้องกันไม่ให้เห็นเนื้อหาของไดเร็กทอรีอื่น แค่ลบล็อกอินออกจากกลุ่ม ผู้ใช้ ไม่มีผล การปฏิเสธกลุ่ม อ่าน และ รายการ ในการปิดล้อม ftproot ไดเร็กทอรีไม่สามารถเชื่อมต่อได้ (ด้วยความล้มเหลวในการตรวจสอบสิทธิ์) คำแนะนำเดียวที่ฉันพบในหนึ่งชั่วโมงของการค้นหาโดย Google คือตั้งค่าให้ ChrootDirectoryแต่นั่นส่งผลให้การเข้าสู่ระบบไม่สามารถเชื่อมต่อโดย SFTP หรือ SSH ได้ (ด้วยความล้มเหลวของบริการในการตอบสนอง) ฉันค่อนข้างใหม่สำหรับเซิร์ฟเวอร์ Windows และฉันก็คิดไม่ออก จะต้องมีวิธีที่ถูกต้องในการทำเช่นนี้ - ใครสามารถชี้ให้ฉันไปในทิศทางที่ถูกต้องได้บ้าง

[อัปเดต]

กล่องนี้กำลังเรียกใช้ OpenSSH 7.7:

> ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5

เมื่อฉันเพิ่มบรรทัดนี้ใน จับคู่ คำสั่งสำหรับกลุ่ม SFTP:

ChrootDirectory "C:\inetpub\ftproot\Upload"

แล้วพยายามเชื่อมต่อในฐานะผู้ใช้ใด ๆ ไม่ว่าจะอยู่ในกลุ่มนั้นหรือไม่ นี่คือสิ่งที่ปรากฏใน sshd.log (เห็นได้ชัดว่า pid, port และ timestamp จะแตกต่างกันไป):

3332 2021-08-17 12:04:24.931 รหัสผ่านล้มเหลวสำหรับผู้ใช้ sftpuser ที่ไม่ถูกต้องจากพอร์ต XX.XX.XX.XX 34240 ssh2
in flag
สมมติว่าคุณใช้ opensh อาจเป็นวิธีแก้ปัญหา https://serverfault.com/a/1006119/187998 หากไม่ใช่ โปรดระบุรายละเอียดเพิ่มเติมเกี่ยวกับเวอร์ชันและการกำหนดค่า ลองสร้างและดูไฟล์บันทึกอย่างละเอียด
Don R avatar
cn flag
ฉันได้เพิ่มข้อมูลเพิ่มเติมที่ฉันมี ฉันไม่พบเอกสารใด ๆ ที่อ้างถึงการเปลี่ยนแปลงระดับความฟุ่มเฟือยของบันทึก
in flag
แล้ว https://github.com/PowerShell/Win32-OpenSSH/issues/190#issuecomment-662879084 ล่ะ
Don R avatar
cn flag
@NiKiZe ฉันเพิ่งลอง `LogLevel VERBOSE` แต่ก็ไม่ได้สร้างความแตกต่างในสิ่งที่บันทึกไว้เมื่อฉันพยายามเชื่อมต่อ
Don R avatar
cn flag
จริงๆ แล้วหลายโพสต์ที่อยู่ถัดลงมามีบางสิ่งที่ดูเหมือนจะเป็นกุญแจสำคัญ: อย่า *ไม่* ใช้เครื่องหมายคำพูดในเส้นทาง `ChrootDirectory`
Score:1
ธง cn

ดูเหมือนว่าชิ้นส่วนสำคัญที่นี่คือ ไม่ เพื่อใช้เครื่องหมายอัญประกาศรอบเส้นทางในบรรทัดนี้:

ChrootDirectory C:\inetpub\ftproot\Upload

หลังจากทำการเปลี่ยนแปลงนั้น การเชื่อมต่อ SFTP จะทำงานตรงตามที่ฉันหวัง: ไดเร็กทอรีที่กลุ่มถูกจำกัดจะปรากฏเป็นรูท

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา