คำอธิบายของ nodev และ nosuid ใน fstab


43

ฉันเห็นตัวเลือกทั้งสองที่แนะนำบนเว็บอย่างต่อเนื่องเมื่อมีคนอธิบายวิธีการเมานต์ tmpfs หรือ ramfs บ่อยครั้งที่มี noexec แต่ฉันสนใจเฉพาะ nodev และ nosuid โดยทั่วไปฉันเกลียดเพียงแค่ทำซ้ำสิ่งที่บางคนแนะนำโดยไม่เข้าใจจริง ๆ และเนื่องจากฉันเห็นเฉพาะคำแนะนำการคัดลอก / วางบนเน็ตเกี่ยวกับเรื่องนี้ฉันจึงถามที่นี่

นี่คือจากเอกสารประกอบ:
nodev - อย่าตีความบล็อกอุปกรณ์พิเศษในระบบไฟล์
nosuid - บล็อกการทำงานของ suid และ sgid bits

แต่ฉันต้องการคำอธิบายที่ใช้งานได้จริงว่าจะเกิดอะไรขึ้นถ้าฉันปล่อยให้สองสิ่งนั้นหมดไป สมมติว่าฉันได้กำหนดค่า tmpfs หรือ ramfs (ไม่มีตัวเลือกที่กล่าวถึงทั้งสองชุด) ที่สามารถเข้าถึงได้ (อ่าน + เขียน) โดยผู้ใช้ที่ไม่รูทบนระบบ ผู้ใช้นั้นสามารถทำอะไรเพื่อเป็นอันตรายต่อระบบ? ไม่รวมกรณีของการใช้หน่วยความจำระบบที่มีอยู่ทั้งหมดในกรณีของ ramfs


1
นี่เป็นคำตอบที่ดีสำหรับ Q ของคุณ: unix.stackexchange.com/questions/188601/…
มุมมองแบบไข่

คำตอบ:


35

คุณไม่ต้องทำตามกฎนี้อย่างเด็ดขาด แต่เหตุผลสำหรับสถานการณ์ที่เน้นเรื่องความปลอดภัยมีดังนี้

  • ตัวเลือก nodev mount ระบุว่าระบบไฟล์ไม่สามารถมีอุปกรณ์พิเศษ: นี่คือข้อควรระวังด้านความปลอดภัย คุณไม่ต้องการให้ระบบไฟล์ที่ผู้ใช้เข้าถึงได้ทั่วโลกเช่นนี้มีศักยภาพในการสร้างอุปกรณ์ตัวอักษรหรือเข้าถึงฮาร์ดแวร์ของอุปกรณ์แบบสุ่ม

  • อ็อพชัน nosuid mount ระบุว่าระบบไฟล์ไม่สามารถมีไฟล์ userid ที่ตั้งค่าไว้ การป้องกัน setuid ไบนารีบนระบบไฟล์ที่เขียนได้ทั่วโลกนั้นสมเหตุสมผลเพราะมีความเสี่ยงต่อการเพิ่มระดับรากหรือความน่ากลัวอื่น ๆ

สำหรับสิ่งที่คุ้มค่าฉันไม่ได้ใช้พารามิเตอร์เหล่านี้บ่อยครั้ง ... เฉพาะกับระบบสาธารณะที่มีข้อควรพิจารณาอื่น ๆ


1
จริง ๆ แล้วฉันมีระบบสาธารณะเนื่องจากซอฟต์แวร์กำลังทำงานภายใต้บัญชีที่สัมผัสกับอินเทอร์เน็ต ดังนั้นฉันจึงสงสัยเกี่ยวกับสถานการณ์สมมติที่นี่ จะเกิดอะไรขึ้นถ้าใครบางคนได้รับการเข้าถึงเชลล์ผ่านช่องโหว่บางอย่าง แน่นอนมีสิ่งอื่น ๆ ที่เขาสามารถทำได้เพื่อเพิ่มสิทธิ แต่ฉันอยากจะลดพวกเขา ดังนั้นฉันจึงสงสัยว่าตัวอย่างสำหรับ suid จะไม่ผู้ใช้ยังไม่สามารถเปลี่ยนการตั้งค่านั้นไม่ว่าระบบไฟล์จะอนุญาตหรือไม่ก็ตาม ตัวเลือก nosuid จะป้องกันเฉพาะซอฟต์แวร์ที่กำหนดค่าไม่ดี (โดยรูท) หรือไม่ หรือผู้ใช้สามารถใช้ประโยชน์จากมันคนเดียว?
Ivan Kovacevic

1
@IvanKovacevic คุณไม่จำเป็นต้องใช้ตัวเลือกการเมานต์ระบบไฟล์ที่แนะนำ พวกเขาอยู่ที่นั่นเพื่อลดเวกเตอร์การโจมตี การตรวจสอบสถานการณ์สมมติว่าอาจเกินขอบเขตของคำถามนี้
ewwhite

3
@ whitewhite: การที่nosuidไม่เกี่ยวกับsetuid bit จะถูกละเว้นหรือไม่? (แทนThe nosuid mount option specifies that the filesystem cannot contain set userid files)
2284570
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.