Score:0

OpenSSH - sshd_config - อนุญาต sftp-chroot และเข้าสู่ระบบ ssh ปกติกับผู้ใช้คนเดียวกัน

ธง cn

หวังว่าจะไม่ใช่การหลอกลวง แต่ไม่สามารถหาคำตอบสำหรับสิ่งนี้ได้ ... ฉันพบสิ่งนี้ซึ่งบนพื้นผิวดูเหมือนจะเหมือนกัน แต่เก่ามากและคำตอบเดียวในนั้นไม่ตอบคำถามจริง: ตั้งค่า Users เป็น chrooted สำหรับ sftp แต่อนุญาตให้ผู้ใช้เข้าสู่ระบบใน SSH

ฉันตั้งค่าสภาพแวดล้อม ChrootDirectory ที่ใช้งานได้ผ่าน sftp สำหรับผู้ใช้ในกลุ่ม 'sftp_users' สำเร็จแล้ว มันทำงานได้ดี มีการอนุญาตที่เหมาะสมทั้งหมดและจำกัดการเข้าถึงเฉพาะ sftp และสามารถ rw ในไดเร็กทอรีย่อยภายใน ChrootDirectory วิธีนี้เหมาะสำหรับผู้ใช้ที่ไม่มีความเป็นส่วนตัว การไม่อนุญาตให้เข้าถึง ssh และอนุญาตเฉพาะ rw ภายในโฟลเดอร์ย่อยภายใน ChrootDirectory

ฉันต้องการให้มีผู้ใช้ที่มีสิทธิพิเศษมากกว่านี้เล็กน้อยที่ยังคงสามารถใช้ ssh ได้ตามปกติ แต่เมื่อเข้าสู่ระบบผ่าน sftp จะมีสภาพแวดล้อม ChrootDirectory นี่เป็นปัญหาด้านความปลอดภัยน้อยกว่าเนื่องจากถือว่ามีความเป็นส่วนตัวและ obvi สามารถท่องไปรอบ ๆ ระบบไฟล์ใน ssh ภายใต้สิทธิ์ของผู้ใช้ปกติ ปัญหาคือ ฉันไม่เห็นวิธี Chroot เมื่อพวกเขาเข้าสู่ระบบภายใต้ sftp โดยไม่ป้องกันการเข้าสู่ระบบ ssh สิ่งนี้มีไว้เพื่อสร้างมาตรฐานและความสะดวกสบายมากกว่าสิ่งอื่นใด ดังนั้นเมื่อพวกเขา sftp พวกเขาเพิ่งมาถึงตำแหน่ง Chrooted เช่นเดียวกับผู้ใช้ sftp เท่านั้น

ฉันคิดว่าสิ่งนี้จะใช้ได้ถ้าฉันปล่อยให้เชลล์เป็นค่าเริ่มต้น (ไม่ใช่ /bin/false หรือ nologin) น่าเสียดายที่เมื่อพวกเขาอยู่ในกลุ่ม sftp_only มันจะไม่อนุญาตให้พวกเขา ssh เข้าเลย มีเพียง sftp เท่านั้น มีวิธีแก้ไขปัญหานี้หรือไม่ นอกเหนือจากการมีสองบัญชีแยกกัน บัญชีหนึ่งเพิ่มใน 'sftp_users' และอีกบัญชีหนึ่งไม่ได้อยู่ในกลุ่มนั้น จนถึงตอนนี้ ทั้งหมดที่ฉันพบคือเอกสารเกี่ยวกับการจำกัด sftp Chroot และไม่อนุญาตให้ใช้ ssh พร้อมกันหากอยู่ในกลุ่มนั้น

ตัวอย่างผู้ใช้คือ 'ทดสอบ' 'test' อยู่ในกลุ่ม sftp_users ดังนั้นจึงสามารถเข้าสู่ระบบผ่าน sftp และถูก Chrooted ไปยังโฟลเดอร์ที่ระบุของเขา ('/sftp/test') และอ่านหรือเขียนไปยังโฟลเดอร์หลักของเขา bind-mounted ที่ '/sftp/test/home' . ทั้งหมดนี้ใช้งานได้ แม้ว่าเชลล์ของเขาจะยังคงตั้งค่าใน /etc/passwd เป็น /bin/bash แต่ 'test' ไม่สามารถเข้าสู่ระบบผ่าน ssh ได้หากเพิ่มในกลุ่ม sftp_users ลบการเป็นสมาชิกในกลุ่มนั้นและเขาสามารถทำได้ทั้งสองอย่าง แต่ไม่สามารถ Chrooted ภายใต้ SFTP

ผู้ใช้ที่ไม่ได้อยู่ในกลุ่ม 'sftp_users' ยังสามารถเข้าสู่ระบบผ่าน ssh หรือ sftp ได้ แต่จะไม่ผ่านการ Chrooted ภายใต้ sftp

มีวิธีจับคู่โปรโตคอลที่ใช้ และ/หรืออาจตั้งค่าการจับคู่เพิ่มเติมสำหรับกลุ่มอื่นหรือไม่ ฉันกำลังมองหา chroot เมื่อพวกเขาเข้าสู่ระบบผ่าน sftp เท่านั้น non-chroot ผ่าน ssh นั้นใช้ได้สำหรับผู้ใช้เหล่านี้

ต่อไปนี้คือ sshd_config ของฉัน:

พอร์ต XXXX
#ฟังที่อยู่ ::
#ฟังที่อยู่ 0.0.0.0

พิธีสาร 2

โฮสต์คีย์ /etc/ssh/ssh_host_rsa_key
โฮสต์คีย์ /etc/ssh/ssh_host_dsa_key
โฮสต์คีย์ /etc/ssh/ssh_host_ecdsa_key
โฮสต์คีย์ /etc/ssh/ssh_host_ed25519_key

SyslogFacility AUTH
ข้อมูล LogLevel

ล็อกอินเกรซไทม์ 120
PermitRootเข้าสู่ระบบหมายเลข
โหมดเข้มงวดใช่

PubkeyAuthentication ใช่

ละเว้น Rhosts ใช่
หมายเลขการรับรองความถูกต้องตามโฮสต์

หมายเลขใบอนุญาตว่างรหัสผ่าน

ChallengeResponseAuthentication เลขที่

X11การส่งต่อใช่
X11DisplayOffset10
PrintMotd ใช่
PrintLastLog ใช่

ClientAliveCountสูงสุด 10
ClientAliveInterval 3600
TCPKeepAlive หมายเลข

#แบนเนอร์ /etc/issue.net

ยอมรับEnv LANG LC_*

ระบบย่อย sftp /usr/lib/openssh/sftp-server -u 0027

ใช้ PAM ใช่
การตรวจสอบรหัสผ่านใช่



จับคู่กลุ่ม sftp_users
  ChrootDirectory /sftp/%u
  ForceCommand ภายใน-sftp -u 0027
  X11หมายเลขการส่งต่อ
  อนุญาตให้ Tcp ส่งต่อหมายเลข
  การตรวจสอบรหัสผ่านใช่
Score:1
ธง fr
anx

OpenSSH ไม่รองรับการแทนที่คำหลักส่วนกลางตามคำสั่งที่ส่งมา คุณต้องแยกความแตกต่างของเกณฑ์บางอย่าง (รวมกัน) ที่ OpenSSH เสนอสำหรับ จับคู่ คำแถลง.

เกณฑ์ที่ใช้ได้คือ ผู้ใช้ กลุ่ม โฮสต์, LocalAddress, LocalPort, RDomain และที่อยู่ (โดย RDomain เป็นตัวแทนของ rdomain(4) ที่ได้รับการเชื่อมต่อ)

-- ชาย 5 sshd_config

ตัวเลือกทั่วไปคือการเสนอบริการที่จำกัดโดยเจตนาบน IP สำรองที่เข้าถึงผ่านโดเมนอื่น เช่น snapshot.backup.example และ sftp.backup.example.


ความคิดเห็นเกี่ยวกับ คำถามที่เชื่อมโยง ระบุปัญหาอย่างชัดเจนแม้ว่า

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

jdmayfield avatar
cn flag
เพื่อชี้แจง หากฉันตั้งค่า sshd ให้ฟังบนพอร์ตสองพอร์ต เช่น 22 และ 2222 ฉันอาจมีส่วนการจับคู่ที่ตั้งค่าสำหรับพอร์ต 2222 ที่อาจเจาะจงสำหรับ Chrooted sftp? ฉันมีเพียง IP เดียว ดังนั้นตอนนี้จึงดูเหมือนเป็นตัวเลือกเดียวของฉันที่มีชื่อผู้ใช้เดียวกัน
anx avatar
fr flag
anx
คุณควรมี IP ที่เพียงพอ แม้ว่าคุณจะใช้เพียง IP เดียวก็ตาม หากมีข้อความว่า /56 ในรายการที่อยู่ IP ของคุณ ฉันเชื่อว่าสะกดว่า *quadrillion* เป็นภาษาอังกฤษ
anx avatar
fr flag
anx
ไม่ว่าคุณจะเลือก IP หรือพอร์ต โปรดระวังว่าคุณจะไม่ยกเลิกข้อจำกัดโดยไม่ได้ตั้งใจ จากนั้นใช้ข้อจำกัดของคุณกับพอร์ตและ/หรือที่อยู่เดียวเท่านั้น คุณอาจพบว่าการกำหนดค่าของคุณมีประสิทธิภาพมากขึ้นหากคุณสร้างกลุ่มแยกต่างหากสำหรับ "อนุญาตที่นี่" และ "อนุญาตที่นั่น"
jdmayfield avatar
cn flag
ฉันมี IP สาธารณะในเครื่องหนึ่งรายการที่จัดสรรให้กับเซิร์ฟเวอร์คลาวด์ของฉัน อาจเป็นไปได้ที่จะได้รับ Pub.IP เพิ่มเติม แต่อาจมีราคาแพงหากได้รับอนุญาต กรณีการใช้งานนี้ (โดยทั่วไป) ไม่ได้คำนึงถึง IP ระยะไกล ไม่จำเป็นต้องพึ่งพาที่อยู่ของลูกค้า
jdmayfield avatar
cn flag
ฉันได้ทดลองกับพอร์ต Match-ing และกลุ่มผู้ใช้ต่างๆ ดูเหมือนว่าจะทำงานได้สะดวกและปลอดภัย ผ่านการทดสอบอย่างละเอียด กลุ่ม 'sftp_users' สามารถเข้าสู่ระบบได้เพียงหนึ่งพอร์ต ผ่าน sftp เท่านั้น และถูก chrooted ผู้ใช้ที่ไม่ได้อยู่ในกลุ่มนั้นสามารถ ssh หรือ sftp ไปยังพอร์ตหนึ่ง (เช่น พอร์ต A) ไม่มี chroot หรือสามารถ sftp ไปยังอีกพอร์ตหนึ่งเพื่อรับ chroot (เช่น พอร์ต B) กลุ่ม 'sftp_users' มีเพียงทางเลือกเดียวและได้รับการ chrooted (เฉพาะพอร์ต B) ทั้งหมดนี้ดูเหมือนว่าจะทำงานตามแผน ยกเว้นฉันหวังว่าจะสามารถจับคู่ชื่อโดเมนกับ IP เดียวกันได้ ขอบคุณที่ชี้แจง
jdmayfield avatar
cn flag
ความคิดเห็นเกี่ยวกับคำถามที่เชื่อมโยงไม่ได้กล่าวถึงกรณีการใช้งานของฉัน และไม่ได้ให้คำตอบเกี่ยวกับวิธีการทำงานนี้ให้สำเร็จ เห็นได้ชัดว่าผู้ใช้ในกลุ่ม 'sftp_users' จะถูกล็อกไว้เฉพาะ sftp chroot ไม่ใช่ ssh ผู้ใช้ที่ไม่ได้อยู่ในกลุ่มนั้นจะถือว่าได้รับสิทธิพิเศษและอนุญาต ssh, sftp ปกติ (ไม่มี chroot) และ chroot เพื่อความสะดวก ไม่ใช่การรักษาความปลอดภัยเพิ่มเติม มิฉะนั้นฉันจะไม่ถามคำถามนี้ เนื่องจากมีตัวอย่างง่ายๆ มากมายเกี่ยวกับการ chrooting กลุ่มเดียว มีหลายกรณีการใช้งานสำหรับสิ่งนี้

โพสต์คำตอบ

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