ฉันต้องการสร้างสภาพแวดล้อมที่ปลอดภัยสำหรับผู้ใช้ SSH ต่างประเทศที่ต้องมีการจำกัดการเข้าถึงเซิร์ฟเวอร์ของเรา นั่นคือ:

  • สามารถรันคำสั่งที่ได้รับอนุญาตเท่านั้น
  • ใช้ได้เฉพาะซอฟต์แวร์ที่ได้รับอนุญาตเท่านั้น
  • ต้องไม่ได้รับอนุญาตให้ดู/แก้ไข/ลบโฟลเดอร์และไฟล์นอกระบบไฟล์รูทของเขา/เธอไม่ว่ากรณีใดๆ

ฉันได้ลองใช้คุก chroot ก่อนที่จะใช้เครื่องมือเจลคิทสำหรับโปรเจ็กต์ขนาดเล็กที่ไม่ต้องการการปรับแต่งมากนักและใช้งานได้ดี แต่โปรเจ็กต์นี้ใหญ่กว่ามากและต้องการการปรับแต่งเพิ่มเติมอีกมากในแง่ของซอฟต์แวร์และคำสั่งที่อนุญาต

ข้อกำหนดสำหรับสภาพแวดล้อมที่ปลอดภัยคือ:

  • ความสามารถในการใช้คำสั่งพื้นฐานเช่น ls, cd, grep เป็นต้น
  • ความสามารถในการรันสคริปต์ดอทเน็ต
  • ความสามารถในการใช้นายหน้า RabbitMQ ที่ทำงานอยู่ (นายหน้ากำลังทำงานอยู่นอกสภาพแวดล้อม)
  • ความสามารถในการใช้ฐานข้อมูล PostgreSQL ที่ทำงานอยู่ (ฐานข้อมูลกำลังทำงานอยู่ภายนอกสภาพแวดล้อม)

ฉันเคยได้ยินเกี่ยวกับmultistrapหรือdebootstrapแต่ฉันไม่แน่ใจว่าเครื่องมือเหล่านี้เพียงพอสำหรับการแก้ปัญหาของฉันหรือไม่

เซิร์ฟเวอร์ที่กำลังทำงานอยู่บนDebian OS v. 9 และ 10 ซอฟต์แวร์ที่จำเป็นทั้งหมดได้รับการติดตั้งในระบบไฟล์รูทและทำงานได้ดี ทั้งหมดที่ฉันต้องการคือให้ผู้ใช้ที่ถูกจำกัดสามารถใช้งานได้โดยที่ไม่ทำให้ระบบไฟล์รูทเสียหาย/เสียหาย

คำถามของฉันคือ:

  1. มีเครื่องมืออื่นที่เป็นประโยชน์ (ดีกว่า) ที่ฉันไม่ได้กล่าวถึงซึ่งสามารถแก้ปัญหาของฉันได้หรือไม่
  2. มีคำแนะนำที่เป็นประโยชน์สำหรับซอฟต์แวร์ที่ฉันพูดถึงซึ่งสามารถแก้ปัญหาของฉันได้หรือไม่?
answer

ในกรณีที่มีคนประสบปัญหาเดียวกัน ฉันแก้ไขโดยใช้คอนเทนเนอร์ Docker ที่มีเซิร์ฟเวอร์ SSH แยกต่างหากและติดตั้งซอฟต์แวร์ที่จำเป็นทั้งหมด