Saya agak terganggu oleh NFS4 di Linux. Beberapa informasi 'di luar sana' tampaknya bertentangan dengan informasi lain, dan informasi lain tampaknya sulit ditemukan. Jadi, inilah beberapa hal yang menarik perhatian saya, semoga seseorang di luar sana dapat menjelaskan hal ini.
Pertanyaan ini berfokus secara eksklusif pada NFS4 tanpa Kerberos dll.
1. Ekspor
Ada informasi ambigu dalam halaman exports
manual tentang struktur / etc / ekspor.
Mengutip dari exports(5)
:
Selain itu, setiap baris mungkin memiliki satu atau lebih spesifikasi untuk opsi default setelah nama jalur, dalam bentuk tanda hubung ("-") diikuti oleh daftar opsi.
Daftar opsi digunakan untuk semua ekspor berikutnya pada baris itu saja.
Apa yang dimaksud dengan "ekspor berikutnya hanya pada garis itu"?
1.2 fsid=0
tidak diperlukan lagi?
Saya sedang mencari fsid ketika saya menemukan komentar di daftar linux-nfs yang menyatakan fsid = 0 tidak diperlukan lagi. Sekarang saya hanya bingung, apakah saya perlu dengan nfs4 atau tidak ?!
2. Direktori yang tidak diekspor masih dapat di-mount
Katakanlah saya memiliki pohon berikut:
/exp
/exp/users
/exp/distr
/exp/distr/archlinux
/exp/distr/debian
Dan saya memiliki entri berikut dalam entri fstab ini:
/dev/disk/by-label/users /mnt/users ext4 defaults 0 0
/dev/disk/by-label/distr /mnt/distr ext4 defaults 0 0
/mnt/users /exp/users none bind 0 0
/mnt/distr /exp/distr none bind 0 0
Dan ekspor saya persis seperti ini:
/exp 192.168.1.0/24(fsid=0,rw,async,no_subtree_check,no_root_squash)
/exp/distr 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash)
Dan exportfs -arv
menunjukkan:
exporting 192.168.1.0/24:/exp/distr
exporting 192.168.1.0/24:/exp
Lalu mengapa saya bisa melakukan ini dan tidak mendapatkan kesalahan pada klien:
mount -t nfs4 server:/exp/users /tmp/test
Meskipun /exp/users
tidak diekspor? Saya tidak mengekspor direktori ini, dan sementara saya tidak melihat konten /dev/disk/by-label/users
kecuali saya tentukan crossmnt
, saya masih bisa menulis ke direktori. Semua yang saya tulis di sana pergi ke direktori yang mendasarinya /exp/users
yang dapat dilihat ketika saya umount /exp/users; ls /exp/users
..
3. Kasus aneh showmount -d server
Seperti yang dinyatakan oleh rpc.mountd(8)
, perintah ini harus menampilkan direktori yang saat ini dipasang oleh klien, atau basi entri /var/lib/nfs/rmtab
, seperti yang dapat dibaca:
Daemon rpc.mountd mendaftarkan setiap permintaan MNT yang berhasil dengan menambahkan entri ke file / var / lib / nfs / rmtab. Ketika menerima permintaan UMNT dari klien NFS, rpc.mountd hanya menghapus entri yang cocok dari / var / lib / nfs / rmtab, selama daftar kontrol akses untuk ekspor memungkinkan pengirim untuk mengakses ekspor.
(...)
Perhatikan, bagaimanapun, bahwa ada sedikit untuk menjamin bahwa isi / var / lib / nfs / rmtab akurat. Klien dapat terus mengakses ekspor bahkan setelah memohon UMNT. Jika klien reboot tanpa mengirim permintaan UMNT, entri basi tetap untuk klien di / var / lib / nfs / rmtab.
Setelah membaca ini saya pasti bertanya-tanya:
- Bukankah sangat tidak aman untuk hanya mengekspos informasi klien jenis ini;
- Admin server yang tidak sadar terikat untuk memiliki rmtab dengan banyak klien basi;
- Apakah ini alasan bahwa klien yang me-mount direktori nfs4 dengan
mount -v
bisa melihat output seperti "tidak ada yang dipasang" meskipun ada sesuatu yang dipasang?
Saya punya banyak pertanyaan lain tentang nfs4, tapi saya akan tetap pada saat ini .. :)
Jawaban:
Pertanyaan hebat, menyoroti poin lebih besar dengan dokumentasi IMO. Berikut ini adalah upaya jawaban yang lengkap:
Apa yang dimaksud dengan "ekspor berikutnya hanya pada garis itu"?
Contoh yang mungkin paling mudah di sini:
setara dengan:
Apakah
fsid=0
tidak diperlukan lagi?Ini tergantung pada kasus penggunaan Anda. Sepertinya Anda mengekspor sistem file berbasis disk biasa dari sisa kueri Anda, dalam hal ini Anda sebaiknya menghapus
fsid=0
(yang dalam nfsv4 mengubah perilaku untuk merujuk sistem file root dari ekspor).Untuk mengubah perilaku ini hapus opsi no_subtree_check
rmtab
hal-hal terkaitrmtab
risiko keamanan?Saya kira itu tergantung pada kasus penggunaan Anda untuk menjawab bahwa, di jaringan saya itu tidak menyajikan kebocoran informasi yang kredibel tetapi saya dapat melihat kasus di mana itu bisa berpotensi.
rmtab
akan penuh dengan entri basi?Berpotensi ya, sekali lagi tergantung pada skenario penggunaan Anda / use case.
mount -v
keliru melihat "tidak ada yang dipasang"?Saya belum menemukan ini
sumber