Network File System atau NFS adalah protokol sistem file terdistribusi yang memungkinkan host jarak jauh untuk memasang sistem file melalui jaringan dan melakukan operasi file seolah-olah mereka dipasang secara lokal. Ini sangat berguna ketika Anda ingin berbagi sumber daya dari satu server melalui beberapa klien atau mengizinkan beberapa klien untuk menulis ke satu ruang penyimpanan.
Dalam tutorial ini, Anda akan belajar cara menginstal dan mengkonfigurasi Server NFS dan Klien NFS berbasis Rocky Linux 8. Untuk ini, kami akan menyiapkan host atau server untuk berbagi file dan klien untuk mengakses file host menggunakan NFS mount .
Prasyarat
- Dua server Rocky Linux 8. Masing-masing harus memiliki pengguna non-root dengan hak istimewa sudo.
- Baik host maupun klien harus memiliki alamat IP statis. Anda bahkan dapat mengatur keduanya melalui jaringan Pribadi. Untuk tutorial kami, kami akan menggunakan host_ip untuk menunjukkan alamat IP Host dan client_ip untuk merujuk ke alamat IP Klien.
Langkah 1 - Instal NFS pada Host dan Klien
Tuan Rumah
Untuk menginstal paket NFS, Anda perlu menginstal nfs-utils
kemasan. Ini menyediakan daemon untuk server NFS dan alat terkait.
Instal paket.
$ sudo dnf install nfs-utils
Aktifkan dan Mulai nfs-server
melayani. Layanan yang tersisa yang diperlukan untuk pemasangan dan berbagi NFS seperti nfsd
, nfs-idmapd
, rpcbind
, rpc.mountd
, lockd
, rpc.statd
, rpc.quotad
dan rpc.idmapd
mulai secara otomatis bersamanya.
$ sudo systemctl enable nfs-server --now
Verifikasi versi instalasi NFS.
$ sudo cat /proc/fs/nfsd/versions -2 +3 +4 +4.1 +4.2
NFS versi 3 dan 4 diaktifkan secara default, dan versi 2 dinonaktifkan. NFSv2 cukup tua dan ketinggalan zaman, dan karenanya Anda dapat melihat -ve tanda tangan di depannya.
NFS menyimpan konfigurasinya di /etc/nfsmount.conf
dan /etc/nfs.conf
file. /etc/nfsmount.conf
adalah mengonfigurasi mount NFS saat /etc/nfs.conf
adalah mengkonfigurasi daemon NFS dan alat terkait. Pengaturan default sudah cukup untuk tutorial kami, dan tidak ada perubahan yang diperlukan.
Klien
Pada klien, instal nfs-utils
dan nfs4-acl-tools
paket.
$ sudo dnf install nfs-utils nfs4-acl-tools
Langkah2 - Buat Direktori Berbagi di Host
Kami akan menggunakan dua contoh dengan pengaturan konfigurasi yang berbeda - satu dengan mount tujuan umum dan satu lagi dengan berbagi direktori home host.
Direktori terpasang NFS bukan merupakan bagian dari Klien. Oleh karena itu, NFS tidak dapat melakukan tugas yang memerlukan hak pengguna super. Ini berarti klien tidak dapat mengubah kepemilikan, menulisnya sebagai pengguna root, atau melakukan tugas tingkat tinggi. Namun, ada kasus ketika pengguna tepercaya pada klien perlu melakukan tugas tersebut tanpa memerlukan akses pengguna super di host. Server NFS dapat dikonfigurasi untuk memungkinkan hal ini, tetapi ada risiko di mana klien dapat mengakses host.
Bekerja dengan Mount Tujuan Umum
Untuk kasus pertama kami, kami akan membuat mount sederhana yang menggunakan perilaku NFS default yang berarti klien tidak dapat melakukan tugas apa pun yang membutuhkan hak pengguna super.
Buat direktori berbagi.
host:$ sudo mkdir /var/nfs/share -p
Pengguna root host akan memiliki direktori ini karena kami menggunakan sudo
untuk membuatnya.
host:$ ls -l /var/nfs total 0 drwxr-xr-x. 2 root root 6 Dec 13 07:30 share
NFS akan menerjemahkan semua operasi root di sisi klien ke nobody:nobody
kredensial untuk alasan keamanan. Oleh karena itu, kita perlu mencocokkan mereka di sisi tuan rumah.
host:$ sudo chown nobody:nobody /var/nfs/general
Bekerja dengan Direktori Beranda
Untuk kasus kedua kami, kami akan membuat direktori home pada host tersedia untuk klien. Kita tidak perlu membuatnya karena sudah ada. Kami tidak perlu mengubah izin apa pun karena akan memengaruhi pengguna di mesin host.
Langkah 3 - Mengonfigurasi Ekspor NFS di Host
Buka file /etc/exports
di mesin Host untuk diedit.
host:$ sudo nano /etc/exports
Rekatkan kode berikut ke dalam file.
/var/nfs/share client_ip(rw,sync,no_subtree_check) /home client_ip(rw,sync,no_root_squash,no_subtree_check)
Setiap direktori dan konfigurasinya harus berada pada baris yang terpisah. Ganti client_ip
nilai dengan alamat IP sebenarnya dari mesin klien.
Mari kita lihat semua opsi untuk ekspor NFS.
- rw - memberi mesin klien akses baca dan tulis pada volume NFS.
- sinkronisasi - opsi ini memaksa NFS untuk menulis perubahan ke disk sebelum membalas. Opsi ini dianggap lebih dapat diandalkan. Namun, ini juga mengurangi kecepatan operasi file.
- no_subtree_check - opsi ini mencegah pemeriksaan subpohon, sebuah proses di mana tuan rumah harus memeriksa apakah file tersedia bersama dengan izin untuk setiap permintaan. Ini juga dapat menyebabkan masalah saat file diubah namanya di host saat masih terbuka di klien. Menonaktifkannya meningkatkan keandalan NFS.
- no_root_squash - Secara default, NFS menerjemahkan permintaan dari pengguna root pada klien menjadi pengguna non-istimewa di host. Opsi ini menonaktifkan perilaku tersebut dan harus digunakan dengan hati-hati agar klien dapat mengakses host.
Setelah selesai, simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Untuk mengekspor share, jalankan perintah berikut.
host:$ sudo exportfs -arv exporting client_ip:/home exporting client_ip:/var/nfs/share
- -a - opsi ini menyebabkan semua direktori diekspor.
- -r - opsi ini menyebabkan semua direktori diekspor dengan membuat daftar baru di
/var/lib/nfs/etab
direktori. Opsi ini digunakan untuk menyegarkan daftar ekspor dengan perubahan apa pun yang dibuat pada/etc/exports
. - -v - mengaktifkan keluaran verbose.
Untuk membuat daftar semua direktori yang diekspor, jalankan perintah berikut. Ini akan menampilkan semua opsi, termasuk yang default yang tidak ditentukan dalam /etc/exports
berkas.
host:$ sudo exportfs -s /var/nfs/share client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash) /home client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
Langkah 4 - Mengonfigurasi Firewall pada Host
Rocky Linux menggunakan Firewalld Firewall. Periksa status firewall.
host:$ sudo firewall-cmd --state running
Ini menunjukkan bahwa itu berhasil dan berjalan dengan sukses.
Firewall bekerja dengan zona yang berbeda, dan zona publik adalah zona default yang akan kita gunakan. Buat daftar semua layanan dan port yang aktif di firewall.
host:$ sudo firewall-cmd --permanent --list-services
Ini akan menunjukkan output berikut.
cockpit dhcpv6-client ssh
Selanjutnya, kita perlu mengizinkan lalu lintas ke layanan NFS yang diperlukan - mountd
, nfs
dan rpc-bind
. Kami juga perlu mengizinkan akses dari IP klien. Jika klien dan server host Anda berada di subnet yang sama, Anda tidak perlu menambahkan alamat IP klien.
host:$ sudo firewall-cmd --permanent --add-service=nfs host:$ sudo firewall-cmd --permanent --add-service=rpc-bind host:$ sudo firewall-cmd --permanent --add-service=mountd host:$ sudo firewall-cmd --permanent --add-source=client_IP
Muat ulang firewall untuk menerapkan perubahan.
host:$ sudo firewall-cmd --reload
Langkah 5 - Membuat titik Mount dan Direktori pada Klien
Setelah NFS Server/Host dikonfigurasi, langkah selanjutnya adalah menyiapkan mount point dan direktori pada klien. Anda dapat menjalankan showmount
perintah pada klien untuk memeriksa daftar sistem file yang diekspor pada Host.
client:$ showmount -e host_ip Export list for host_ip: /home host_ip /var/nfs/share host_ip
Selalu buat direktori baru sebagai titik pemasangan pada klien atau gunakan direktori kosong yang ada. Jika ada file di direktori yang Anda mount, file tersebut akan disembunyikan.
Buat direktori Mount.
client:$ sudo mkdir -p /nfs/share client:$ sudo mkdir -p /nfs/home
Pasang share menggunakan alamat IP host.
client:$ sudo mount host_ip:/var/nfs/share /nfs/share client:$ sudo mount host_ip:/home /nfs/home
Verifikasi bahwa pemasangan berhasil.
client:$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 370M 0 370M 0% /dev tmpfs 405M 0 405M 0% /dev/shm tmpfs 405M 16M 389M 4% /run tmpfs 405M 0 405M 0% /sys/fs/cgroup /dev/vda1 25G 2.4G 23G 10% / tmpfs 81M 0 81M 0% /run/user/1000 host_ip:/var/nfs/share 25G 2.4G 23G 10% /nfs/share host_ip:/home 25G 2.4G 23G 10% /nfs/home
Kedua share dipasang dari sistem file yang sama. Karenanya mereka menunjukkan penggunaan disk yang sama.
Anda juga dapat menggunakan mount
perintah untuk memverifikasi.
client:$ mount | grep nfs rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) host_ip:/var/nfs/share on /nfs/share type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip) host_ip:/home on /nfs/home type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)
Langkah 6 - Uji Akses NFS
Menguji Pangsa Tujuan Umum
Tulis file uji ke /var/nfs/share
bagikan.
client:$ sudo touch /nfs/share/test.txt
Periksa kepemilikannya.
client:$ ls -l /nfs/share/test.txt -rw-r--r--. 1 nobody nobody 0 Dec 13 08:08 /nfs/share/test.txt
Karena kami memasang volume ini menggunakan pengaturan NFS default dan membuat file di klien menggunakan sudo
, kepemilikan pada file default ke nobody:nobody
. Pengguna super klien tidak dapat melakukan tugas administratif apa pun pada pembagian.
Menguji Berbagi Direktori Beranda
Tulis file uji ke /nfs/home
bagikan.
client:$ sudo touch /nfs/home/home.txt
Periksa kepemilikannya.
client:$ ls -l /nfs/home/home.txt -rw-r--r--. 1 root root 0 Dec 13 08:09 /nfs/home/home.txt
Karena kami menggunakan no_root_squash
opsi, itu memungkinkan pengguna root klien untuk bertindak sebagai root pada share itu sendiri.
Langkah 7 - Jadikan titik Mount permanen
NFS Shares secara default bersifat sementara dan perlu dipasang saat boot. Kita dapat membuatnya permanen dengan mengedit /etc/fstab
file di klien.
Buka file /etc/fstab
untuk diedit.
client:$ sudo nano /etc/fstab
Tempel baris berikut di bagian bawah file.
. . . host_ip:/var/nfs/share /nfs/share nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0 host_ip:/home /nfs/home nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Anda dapat mengetahui lebih lanjut tentang opsi yang tercantum di atas dengan menjalankan perintah berikut.
client:$ man nfs client:$ man mount
Jika Anda ingin membacanya secara online, Anda dapat mencari di Google frasa man nfs
dan man mount
untuk mempelajari lebih lanjut tentang opsi ini.
Langkah 8 - Lepas NFS Share
Jika Anda tidak lagi menginginkan pemasangan jarak jauh pada sistem Anda, Anda dapat melepasnya dengan menggunakan umount
memerintah. Perhatikan bahwa perintahnya disebut umount dan bukan melepas yang merupakan kesalahan umum.
Keluar dari tunggangan bersama dan Lepas pemasangannya.
client:$ cd ~ client:$ sudo umount /nfs/share client:$ sudo umount /nfs/home
Jika Anda tidak lagi membutuhkan share yang dipasang lagi saat reboot, pastikan Anda mengomentari entri yang sesuai di /etc/fstab
file dengan meletakkan #
tanda tangan di depan mereka.
Kesimpulan
Dalam tutorial ini, kami belajar cara membuat server host NFS dan memasang direktori menggunakannya, yang kami bagikan dengan klien NFS. Jika Anda menerapkannya di jaringan pribadi, maka seharusnya tidak ada masalah tetapi jika Anda menggunakannya dalam produksi, maka Anda harus ingat bahwa protokol tidak dienkripsi dan Anda harus menerapkan beberapa autentikasi untuk melindungi data Anda.
Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.