คอนเทนเนอร์ LXC เป็นสภาพแวดล้อมแบบ sandbox


9

ฉันกำลังเริ่มโครงการประเมินโปรแกรมที่ไม่น่าเชื่อถือ (การมอบหมายของนักเรียน) ในสภาพแวดล้อมที่ปลอดภัย แนวคิดหลักคือการสร้างเว็บแอพสำหรับ GlassFish และ Java wrapper รอบ lxc-utils เพื่อจัดการคอนเทนเนอร์ LXC มันจะมีคิวรอโปรแกรมและตัวห่อหุ้ม Java จะรักษาจำนวนคงที่ (พูล) ของคอนเทนเนอร์ LXC โดยกำหนดแต่ละคอนเทนเนอร์หนึ่งโปรแกรม (ไม่ได้ใช้)

แต่ละคอนเทนเนอร์ควรรักษาความปลอดภัยด้วย SELinux เพื่อปกป้องระบบโฮสต์

คำถามของฉันคือ: มันเป็นความคิดที่ดีที่จะสร้างกลไกดังกล่าวสำหรับสภาพแวดล้อม sandbox หรือมีวิธีแก้ไขปัญหาที่เหมาะสมกว่านี้หรือไม่? ควรเบาและปลอดภัยต่อความคิดสร้างสรรค์ของนักเรียน

คำตอบ:


6

คุณไม่ได้เขียนว่าทำไมคุณถึงเลือก LXC เนื่องจากไม่ใช่โซลูชันระบบเสมือนจริงที่ปลอดภัยที่สุด ฉันเป็นผู้ใช้งานหนักของ KVM / XEN และ LXC และฉันสามารถพูดสิ่งนี้ได้ว่าเรื่องความปลอดภัยฉันไม่เคยไปกับตู้ Linux (ไม่ว่า LXC / OpenVZ / VServer) ง่ายกว่า (และเชื่อถือได้มากกว่า) ด้วย KVM / XEN

ถ้ามันเกี่ยวกับข้อกำหนดด้านประสิทธิภาพหรือฮาร์ดแวร์ก็โอเค - คุณสามารถลองกับ LXC ได้ แต่มีกฎบางข้อที่คุณควรปฏิบัติตาม:

  • libvirt รับประกันการ จำกัด ตู้คอนเทนเนอร์อย่างเข้มงวดเมื่อใช้ SELinux (ขอบคุณ LXC_driver) - ไม่แน่ใจว่าถ้าเป็นกรณี RHEL / Centos / Fedora เท่านั้น (ฉันไม่ได้ใช้ Ubuntu / Debian มาก) https://www.redhat.com/archives /libvir - list/2012- มกราคม/msg01006.html - ดังนั้นการไปกับ SELinux จึงเป็นความคิดที่ดี (ในความคิดของฉันมันคือ "ต้องมี" ในสถานการณ์เช่นนี้)
  • กำหนดกฎกลุ่ม cg อย่างเข้มงวดเพื่อให้แขกของคุณไม่ทำให้โฮสต์ของคุณค้างหรือส่งผลกระทบต่อตู้คอนเทนเนอร์อื่น
  • ฉันควรจะไปกับตู้สินค้าที่ใช้ LVM - มันเป็น "ความปลอดภัย" อีกชั้นหนึ่งเสมอ
  • คิดถึงโซลูชันเครือข่ายและสถาปัตยกรรม ตู้คอนเทนเนอร์เหล่านั้นต้องสื่อสารกันหรือไม่?

เริ่มด้วยการอ่านสิ่งนี้ - มันค่อนข้างเก่า แต่ก็ยังมีความรู้มากมาย และ - พบกับเนมสเปซของผู้ใช้

และหลังจากนั้นทั้งหมดคิดอีกครั้ง - คุณมีเวลามากที่จะเล่นกับการรักษาความปลอดภัย LXC? KVM นั้นง่ายกว่ามาก ...


ก่อนอื่นขอขอบคุณสำหรับคำตอบ ฉันเลือก LXC เพราะฉันต้องการแสงบางอย่างและมันจะทำงานภายใน KVM เป็นไปได้หรือไม่ที่จะเรียกใช้ KVM ภายใน KVM?
eXPi

1

สำหรับการรันโปรแกรมที่ไม่น่าเชื่อถือ Linux namespaces ยังคงเป็นทางออกที่ดีที่สุด ตั้งค่าได้ง่ายกว่า KVM และใช้ทรัพยากรน้อยกว่า คุณสามารถลอง LXC ได้ แต่ LXC ก็ถูกสร้างเป็นแซนด์บ็อกซ์ทั่วไปสำหรับการเรียกใช้อิมเมจการกระจาย Linux แบบเต็มรูปแบบ Linux Sandbox เนมสเปซอีกสองอันที่คำนึงถึง:

  • กล่องทดลองใช้ Google Chromeจัดจำหน่ายในปัจจุบันด้วย Google Chrome / Chromium
  • Firejail กล่องความปลอดภัยที่สร้างขึ้นเพื่อใช้งาน Mozilla Firerfox และโปรแกรม GUI อื่น ๆ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.