Mengapa pemasangan berbagi nfs dari linux memerlukan penggunaan port khusus?

11

Saya mengekspor direktori pada kotak linux dan saya bisa memasangnya dari kotak linux lain menggunakan

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

Perintah yang sama gagal pada 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

Pada saat yang sama, kurush:/var/logs/syslogcatat baris ini:

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

Ketika saya mencoba untuk pergi melalui GUI (finder-> connect to server-> nfs://kurush/media/lynk-> connect), saya mendapatkan kegagalan langsung (tidak dapat terhubung & c) dan kotak linux syslog mencatat authenticated mount request.

Masalahnya diselesaikan dengan menggunakan port istimewa :

Garis komando:

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

Untuk mengaktifkan GUI:

sudo vifs

lalu tambahkan satu baris

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

Pertanyaannya adalah :

  • Mengapa saya perlu menggunakan port khusus? Apakah ini sesuatu yang saya lakukan di sisi linux? Saya ingat bahwa suatu ketika saya melakukan mount bagian itu tanpa sihir yang disebutkan sebelumnya.

  • Bagaimana saya memberi tahu MacOSX untuk menggunakan port istimewa tanpa menggunakan baris perintah? Saya pikir Apple adalah untuk orang-orang "non-techie", jadi itu pasti mungkin!

sds
sumber
Hai. Biasanya kami menutup pertanyaan yang ada untuk bertanya "Mengapa Apple melakukan X?" tapi ada beberapa detail teknis yang bagus di sini. Pertanyaan Anda mungkin bekerja lebih baik jika Anda mengajukan pertanyaan sederhana (sunting) dan kemudian masukkan semua jawaban di bagian jawaban. Jika Anda perlu bertanya, ikuti pertanyaan yang menjelaskan apa masalahnya - mungkin itu bisa berhasil. Apa yang akhirnya akan Anda lakukan dengan kisah "mengapa" Apple mendesainnya?
bmike
1
@bmike: Saya mengubah "mengapa" menjadi "bagaimana".
sds

Jawaban:

10

Kenapa harus begitu? Tradisi, kebanyakan. Sekali waktu, membatasi NFS ke port istimewa (<1023) dianggap sebagai langkah keamanan. Dulu ketika orang menggunakan komputer mainframe, ini memastikan bahwa perangkat lunak NFS di sisi klien adalah bagian dari OS / disetujui oleh administrator, karena sebuah program hanya dapat menggunakan port khusus jika dijalankan oleh pengguna root. Saat ini, ini tidak masuk akal karena siapa pun dapat memiliki komputer dan memiliki akses root, jadi ini tidak berarti apa-apa dalam hal keamanan.

Secara default, banyak server NFS tidak mengizinkan port sumber yang tidak diistimewakan. Beberapa klien NFS (seperti Ubuntu), default untuk menggunakan port sumber istimewa kecuali ditentukan lain, itulah sebabnya klien Linux Anda bekerja tanpa masalah. Jelas, klien OS X tidak melakukan ini. Saya tidak tahu apakah itu pilihan desain Apple atau sesuatu yang diwarisi dari BSD. Saya tahu bahwa Solaris juga default ke port non-privilege.

Dua cara untuk menghindari masalah ini adalah, memberi tahu klien OS X untuk menggunakan port yang diistimewakan, seperti yang Anda temukan, atau mengonfigurasi server NFS Anda untuk memungkinkan port yang tidak diistimewakan (lihat di dokumentasi server Anda).

Bagaimana Anda mendapatkan OS X untuk menggunakan port istimewa menggunakan GUI? Sejauh yang saya tahu, Anda tidak bisa pada versi> 10.6. Satu digunakan untuk dapat me-mount berbagi NFS di Disk Utility dan ketik opsi tambahan, tetapi itu telah dihapus. ( Perincian ) Itu tidak pernah tombol sederhana atau apa pun. NFS bukanlah sesuatu yang sebagian besar dari kebutuhan kerumunan "non-techy", jadi saya kira itu bukan prioritas dan ada alasan secara rutin menggunakan port istimewa bukan ide yang bagus.

Saya belum mencobanya, tetapi http://www.bresink.com/osx/NFSManager.html tampaknya memungkinkan konfigurasi fitur NFS OS X tanpa baris perintah.

Michael DM Dryden
sumber
1
Tentang "atau mengonfigurasi server NFS Anda untuk memungkinkan port yang tidak diistimewakan": untuk nfs-kernel-server itu adalah insecureopsi di /etc/exports. Sebagai contoh:/media/sda3 192.168.1.0/24(rw,async,no_subtree_check,insecure)
tungd
terima kasih, tidak aman memungkinkan Mac terhubung ke NFS menggunakan Finder -> Go -> Connect to server
waza123
Ini adalah masalah keamanan aktif untuk sistem saat ini, biasanya dalam intranet daripada melalui internet. Karena sistem cenderung me-mount berbagi NFS dalam sistem file, ada banyak ruang untuk penyalahgunaan. Membutuhkan port istimewa masih membuat pengguna dari memanipulasi sistem file ketika mereka tidak seharusnya. Tentu saja jika pengguna sudah melakukan root, itu tidak masalah.
jtpereyda