ทำไมการเมาท์ nfs ที่ใช้ร่วมกันจาก linux จำเป็นต้องใช้พอร์ตที่มีสิทธิพิเศษ?


11

ฉันส่งออกไดเรกทอรีในกล่อง linux และฉันสามารถติดตั้งจากกล่อง linux อื่นโดยใช้

# mount -t nfs kurush:/media/lynk /mnt/kurush/

คำสั่งเดียวกันล้มเหลวใน Mac OS X:

$ sudo mount -t nfs kurush:/media/lynk /Volumes/lynk
mount_nfs: can't mount /media/lynk from kurush onto /Volumes/lynk: Operation not permitted

ในเวลาเดียวกันให้kurush:/var/logs/syslogบันทึกบรรทัดนี้:

rpc.mountd[7943]: authenticated mount request from sds-MacBook-Pro.home:1009 for /media/lynk (/media/lynk)

เมื่อฉันพยายามที่จะไปว่ากุย (finder-> เชื่อมต่อกับเซิร์ฟเวอร์> nfs://kurush/media/lynk-> การเชื่อมต่อ) ผมได้รับทันทีล้มเหลว (ไม่สามารถเชื่อมต่อและค) และบันทึกกล่อง Linux authenticated mount requestที่

ปัญหาได้รับการแก้ไขโดยใช้พอร์ตที่มีสิทธิพิเศษ :

บรรทัดคำสั่ง:

sudo mount -o resvport -t nfs kurush:/media/lynk /Volumes/lynk

วิธีเปิดใช้งาน GUI:

sudo vifs

จากนั้นเพิ่มบรรทัด

kurush:/media/lynk /Volumes/lynk nfs resvport,ro,user,noauto

คำถามคือ :

  • ทำไมฉันต้องใช้พอร์ตที่มีสิทธิพิเศษ? มันเป็นสิ่งที่ฉันทำในด้านลินุกซ์? ฉันดูเหมือนจะจำได้ว่าครั้งหนึ่งฉันได้ร่วมแบ่งปันนั้นโดยไม่ต้องใช้เวทมนตร์ดังกล่าว

  • ฉันจะบอกให้ MacOSX ใช้พอร์ตที่มีสิทธิพิเศษโดยไม่ต้องใช้บรรทัดคำสั่งได้อย่างไร ฉันคิดว่าแอปเปิ้ลเป็นกลุ่มที่ "ไม่ใช่ช่างเทคนิค" ดังนั้นมันจะต้องเป็นไปได้!


สวัสดี ปกติแล้วเราจะปิดคำถามที่มีอยู่เพื่อถามว่า "ทำไม Apple ถึงทำ X" แต่มีรายละเอียดทางเทคนิคที่ดีที่นี่ คำถามของคุณอาจทำงานได้ดีขึ้นถ้าคุณถามคำถามง่ายๆ (แก้ไขมัน) แล้วใส่คำตอบทั้งหมดในส่วนคำตอบ หากคุณต้องการถามคำถามอธิบายสิ่งที่เป็นปัญหา - อาจเป็นไปได้ ในที่สุดคุณจะทำอย่างไรกับเรื่องราวของ "ทำไม" Apple จึงออกแบบมันขึ้นมา?
bmike

1
@bmike: ฉันเปลี่ยน "ทำไม" ถึง "อย่างไร"
sds

คำตอบ:


10

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

โดยค่าเริ่มต้นเซิร์ฟเวอร์ NFS จำนวนมากไม่อนุญาตพอร์ตที่ไม่มีสิทธิพิเศษ ไคลเอนต์ NFS บางตัว (เช่นอูบุนตู) เริ่มต้นที่จะใช้พอร์ตต้นทางที่มีสิทธิพิเศษเว้นแต่จะระบุไว้เป็นอย่างอื่นซึ่งเป็นสาเหตุที่ไคลเอ็นต์ Linux ของคุณทำงานโดยไม่มีปัญหา เห็นได้ชัดว่าไคลเอ็นต์ OS X ไม่ได้ทำเช่นนี้ ฉันไม่รู้ว่าเป็นตัวเลือกการออกแบบของ Apple หรือสิ่งที่สืบทอดมาจาก BSD ฉันรู้ว่า Solaris เริ่มต้นที่พอร์ตที่ไม่มีสิทธิพิเศษด้วย

สองวิธีในการหลีกเลี่ยงปัญหานี้คือบอกให้ไคลเอ็นต์ OS X ใช้พอร์ตพิเศษดังที่คุณค้นพบหรือกำหนดค่าเซิร์ฟเวอร์ NFS ของคุณให้อนุญาตพอร์ตที่ไม่มีสิทธิพิเศษ (ค้นหาในเอกสารประกอบของเซิร์ฟเวอร์ของคุณ)

คุณจะให้ OS X ใช้พอร์ตที่มีสิทธิพิเศษโดยใช้ GUI ได้อย่างไร เท่าที่ฉันรู้คุณไม่สามารถใช้เวอร์ชัน> 10.6 ได้ หนึ่งใช้เพื่อให้สามารถเมานต์ NFS ที่ใช้ร่วมกันใน Disk Utility และพิมพ์ตัวเลือกเพิ่มเติม แต่ถูกลบออก ( รายละเอียด ) มันไม่เคยง่ายหรือปุ่มอะไรเลย NFS นั้นแทบจะเป็นสิ่งที่คนส่วนใหญ่ไม่ต้องการ "ดังนั้นฉันเดาว่ามันไม่ใช่เรื่องสำคัญและมีเหตุผลหลายประการที่ใช้พอร์ตที่มีสิทธิพิเศษไม่ใช่ความคิดที่ดี

ฉันไม่ได้ลอง แต่http://www.bresink.com/osx/NFSManager.htmlดูเหมือนว่าจะอนุญาตการกำหนดค่าคุณสมบัติ NFS ของ OS X โดยไม่มีบรรทัดคำสั่ง


2
เกี่ยวกับ "หรือกำหนดค่าเซิร์ฟเวอร์ NFS คุณเพื่อให้พอร์ตที่ไม่ด้อย": สำหรับNFS เคอร์เนลเซิร์ฟเวอร์มันเป็นตัวเลือกในinsecure /etc/exportsตัวอย่างเช่น:/media/sda3 192.168.1.0/24(rw,async,no_subtree_check,insecure)
tungd

ขอบคุณความไม่ปลอดภัยทำให้ Mac สามารถเชื่อมต่อกับ NFS โดยใช้ Finder -> Go -> เชื่อมต่อกับเซิร์ฟเวอร์
waza123

นี่เป็นข้อกังวลด้านความปลอดภัยสำหรับระบบในปัจจุบันโดยทั่วไปภายในอินทราเน็ตมากกว่าผ่านทางอินเทอร์เน็ต เนื่องจากระบบมีแนวโน้มที่จะเมานต์ NFS ที่ใช้ร่วมกันภายในระบบไฟล์ การขอพอร์ตที่มีสิทธิพิเศษยังคงป้องกันไม่ให้ผู้ใช้จัดการกับระบบไฟล์เมื่อไม่ควร แน่นอนถ้าผู้ใช้มีรูทอยู่แล้วมันก็ไม่สำคัญ
jtpereyda
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.