ฉันได้เขียนแอปพลิเคชั่นเรียบง่ายที่ทำงานในโหมดคอนโซล ฉันต้องการอนุญาตให้ผู้คนจากอินเทอร์เน็ตไปยัง SSH ไปยังโฮสต์นี้และใช้แอปพลิเคชันที่เป็นปัญหา
ทุกครั้งที่มีคนไปที่เซิร์ฟเวอร์ของ SSH ฉันต้องการอนุญาตให้อินสแตนซ์ของแอปพลิเคชันทำงานในเซสชัน SSH ของพวกเขา พวกเขาจะทำงานกับโปรแกรมแล้วหลังจากเสร็จสิ้น (เช่นออกจาก) เซสชัน SSH ควรถูกปิด
คำเตือนคือ:
- ฉันไม่ต้องการใช้เชลล์สคริปต์เช่น. bash_profile มีโอกาสมากเกินไปที่จะถูกแฮ็ก!
- ยิ่งฉันไม่ต้องการบัญชีผู้ใช้ที่จะได้รับ "เปลือก" ที่ถูกต้อง กล่าวอีกนัยหนึ่งฉันต้องการให้เชลล์ผู้ใช้เป็นแบบ / bin / false ดังนั้น FTP, SFTP และอื่น ๆ ที่เหลือจะไม่ได้รับอนุญาต สิ่งเดียวที่ฉันต้องการได้รับอนุญาตจากบัญชีคือการเข้าถึงแอปพลิเคชันคอนโซลนี้โดยเฉพาะซึ่งทำงานในโหมดที่ไม่มีสิทธิ์ใช้งานในฐานะผู้ใช้รายนี้
- ฉันอาจต้องการเสนอแอปพลิเคชันมากกว่าหนึ่งรายการในชื่อผู้ใช้ที่แตกต่างกัน ตัวอย่างเช่น "ค้นหา" จะแสดงแอปคอนโซลหนึ่งแอปขณะที่ "เรียกดู" จะแสดงแอปอื่นขึ้นอยู่กับวิธีที่ผู้ใช้ลงชื่อเข้าใช้
- ไม่จำเป็นต้องใช้รหัสผ่านสำหรับเซสชัน SSH มันจะดีถ้ามันเพิกเฉยต่อการพิสูจน์ตัวตนทั้งหมด แต่ต้องให้รหัสผ่าน SSH แก่ผู้ใช้ปลายทางไม่ใช่ตัวจัดการดีล สิ่งเดียวที่แน่นอนคือการรักษาความปลอดภัย - ฉันไม่ต้องการให้บัญชีได้รับอนุญาตให้ทำสิ่งอื่น
- ผู้ใช้ไม่ควรทำอะไรเป็นพิเศษในตอนท้าย พวกเขาควรจะสามารถแค่ "ssh search@ip.of.host" และรับบริการ
โปรแกรมที่ดำเนินการอาจจำเป็นต้องมีอาร์กิวเมนต์บรรทัดคำสั่ง ฉันสบายดีกับการเขียนเสื้อคลุมเพื่อทำสิ่งนี้ แต่นั่นสร้างความไม่มั่นคงหรือไม่? เช่น. หากคำสั่งคือ "/ usr / local / bin / myapp --mode = search" และฉันเขียนสคริปต์เช่น:
! / bin / ทุบตี
/ usr / local / bin / myapp --mode = search
... สิ่งนี้สร้างสถานการณ์ที่ไม่ปลอดภัยหรือไม่ สมมติว่าสิทธิ์ไฟล์ทั้งหมดได้รับการตั้งค่าอย่างเหมาะสมผู้ใช้ไม่สามารถแก้ไขไฟล์ได้
เป็นไปได้ที่จะทำ? ถ้าเป็นเช่นนั้นจะทำอย่างไรและที่สำคัญจะทำอย่างไรให้ปลอดภัย?
เซิร์ฟเวอร์เสนอ SSH ให้กับภายนอกสำหรับการเข้าสู่ระบบจากระยะไกลซึ่งใช้ได้ ฉันยังต้องการที่จะทำงานแน่นอน ตัวอย่างเช่นถ้าฉันเข้าสู่ระบบในฐานะผู้ใช้ของตัวเองฉันต้องการให้ถามรหัสผ่านเหมือนปกติแล้วนำเสนอเชลล์
ขอบคุณ!
F
search
โครงการ คุณเคยลองไหม