Sistem File Jaringan , juga disingkat NFS , adalah sistem file yang dapat diakses melalui jaringan.
Dibandingkan dengan sistem file yang mungkin lokal untuk mesin Anda, sistem file jaringan disimpan pada mesin yang jauh yang diakses melalui protokol jaringan tertentu :protokol NFS .
NFS termasuk dalam keluarga besar protokol berbagi file, di antaranya dengan SMB, FTP, HTTP, dan banyak protokol berbagi file lainnya.
NFS memiliki caranya sendiri untuk mengakses dan mengamankan sistem file yang jauh, serta berbagai cara untuk mengamankan akses ke sistem file jarak jauh.
Dalam tutorial ini, kita akan mengatur server NFS pada mesin jarak jauh dan instal klien NFS untuk mengaksesnya.
Kami akan mengonfigurasi server NFS tergantung pada sumber daya yang ingin kami bagikan, dan kami akan melihat sedikit gotcha yang perlu diketahui tentang NFS.
Yang Akan Anda Pelajari
Jika Anda mengikuti tutorial ini sampai akhir, Anda akan mempelajari konsep-konsep berikut:
- Bagaimana Anda dapat mengatur server NFSv4 , buat folder bersama dan ekspor ke klien jarak jauh;
- Cara memasang klien NFS dan cara mengikatnya ke server NFS Anda;
- Cara kerja autentikasi pengguna di NFS dan mengapa autentikasi NFS dianggap lemah;
- Apa itu menekan dan mengapa Anda harus selalu mengaktifkan root_squashing;
- Bagaimana NFS menangani pengeditan bersamaan dibandingkan dengan protokol berbagi file lainnya.
Itu program yang cukup panjang, jadi tanpa basa-basi lagi, mari kita mulai dengan melihat bahwa Anda dapat mengatur server NFSv4 Anda sendiri.
Menyiapkan Server NFSv4
Untuk tutorial ini, kita akan menggunakan distribusi Kubuntu standar, tetapi bagian selanjutnya dari tutorial ini akan bekerja sama jika Anda menggunakan distribusi lain.
$ uname -a
Linux kubuntu 5.3.0-18-generic #19-Ubuntu GNU/Linux
Sebelum menginstal paket apa pun, pastikan sistem Anda dikonfigurasi dengan benar dengan perintah apt.
sudo apt-get update
Sekarang setelah sistem Anda diperbarui, Anda harus menginstal beberapa paket untuk server NFS Anda.
Menginstal Server NFSv4
Untuk menginstal server NFS di Linux, Anda harus menginstal “nfs-kernel-server ” dengan apt.
$ sudo apt-get install nfs-kernel-server
Seperti yang Anda lihat dari tangkapan layar di atas, nfs-kernel-server dilengkapi dengan beberapa file konfigurasi yang perlu Anda ubah:
- ekspor :digunakan sebagai file konfigurasi untuk mengatur direktori yang akan diekspor melalui NFS;
- nfs-kernel-server :yang dapat digunakan jika Anda ingin mengatur otentikasi atau mengubah parameter terkait RPC dari server NFS Anda.
Untuk tutorial ini, kami hanya mengonfigurasi untuk memodifikasi file ekspor untuk mengekspor direktori kami.
Mengekspor direktori dengan ekspor
Seperti yang dinyatakan di atas, kita akan memodifikasi file ekspor yang terletak di direktori etc untuk berbagi direktori.
Sintaks untuk file ekspor cukup mudah.
File ekspor adalah file yang dipisahkan kolom yang terbuat dari bidang berikut:
- Direktori lokal :direktori yang akan diekspor pada sistem file lokal;
- IP atau nama host dari mesin yang ingin Anda beri akses;
- Opsi NFS seperti rw (untuk baca-tulis), sync (artinya perubahan yang dilakukan langsung di-flush ke disk)
Pertama, Anda perlu membuat direktori yang akan diekspor ke sistem Anda. Anda jelas tidak perlu membuatnya jika direktori sudah ada di mesin Anda.
$ sudo mkdir -p /var/share
Untuk saat ini, Anda dapat mengizinkan root sebagai pemilik dan sebagai grup yang memiliki file, tetapi kami akan mengubahnya nanti tergantung pada izin yang kami inginkan untuk folder bersama ini.
Sekarang setelah folder bersama Anda dibuat, Anda perlu menambahkannya ke file ekspor untuk diekspor.
Kembali ke /etc/exports . Anda file dan tambahkan informasi yang kami tentukan dalam daftar peluru di atas.
Di kolom pertama, Anda perlu menentukan folder yang akan diekspor yang merupakan folder berbagi yang baru saja kita buat.
Selanjutnya, Anda harus menentukan IP atau nama host yang dapat me-mount direktori ini secara lokal.
Dalam hal ini, kami memilih untuk memiliki IP jaringan diatur dalam file ekspor, tetapi mungkin berbeda untuk Anda.
Untuk mengekspor semua direktori yang ditentukan dalam file "ekspor", Anda harus menggunakan "ekspor ” dengan opsi “-a” untuk “semua”.
$ sudo exportfs -a
Selanjutnya, Anda dapat memverifikasi bahwa folder Anda telah diekspor dengan benar dengan menjalankan perintah “exportfs” dengan opsi “-v” untuk “verbose”.
$ sudo exportfs -v
Seperti yang mungkin Anda perhatikan, beberapa opsi yang tidak ditentukan dalam file ekspor disetel oleh server NFS secara default :
- rw :operasi baca dan tulis diotorisasi pada volume (opsi ini awalnya ditentukan dalam file);
- penundaan :server NFS akan menyebabkan penundaan penulisan kecil jika mencurigai bahwa beberapa operasi penulisan saat ini dilakukan pada waktu yang sama;
- root_squash :akun "root" akan "dihancurkan" ke pengguna anonim secara default. Jika Anda tidak tahu apa itu squashing, Anda bisa membacanya di bagian selanjutnya;
- no_subtree_check :secara default, server NFS akan memeriksa bahwa operasi yang diminta adalah bagian dari sistem file yang diekspor di server;
- sec=sys :secara default, NFS akan menggunakan kredensial yang ditetapkan di server. Jika sistem Anda menggunakan otentikasi lokal, kredensial itu akan digunakan, tetapi jika NIS digunakan, itu akan digunakan sebagai sistem otentikasi;
- aman :opsi ini memverifikasi bahwa permintaan berasal dari port yang lebih rendah dari 1024 (sebagai pengingat, permintaan klien NFS berasal dari port 111);
- no_all_squash :kecuali untuk akun “root”, pengguna lain tidak terjepit saat berinteraksi dengan server NFS.
Sesuaikan Aturan Firewall untuk NFS
Agar klien kami terhubung ke server NFS kami, Anda harus memastikan bahwa firewall dikonfigurasi untuk menerima koneksi NFS.
Sebagai pengingat cepat, NFS berjalan pada port 2049 di server.
Untuk Debian dan Ubuntu, Anda mungkin menjalankan firewall UFW (Anda dapat memverifikasinya dengan perintah “ufw status”)
Untuk mengizinkan koneksi NFS ke server Anda, jalankan “ufw ” perintah sebagai root dan izinkan koneksi pada port 2049.
$ sudo ufw allow 2049
Di sisi lain, jika Anda menjalankan distribusi Red Hat atau CentOS, Anda harus mengubah firewall bawaan "firewalld".
$ sudo firewall-cmd --add-port=2049/tcp
Terakhir, pastikan adaptor jaringan Anda mengekspos port 2049 dengan benar ke dunia luar dengan perintah “netstat”.
$ netstat -tulpn | grep 2049
Oke, sekarang Anda telah memastikan bahwa server NFS Anda aktif dan berjalan dengan benar dan bahwa share Anda telah diekspor, mari kita lihat bagaimana Anda dapat mengonfigurasi klien NFS Anda.
Mengonfigurasi Klien NFSv4
Konfigurasi pada klien cukup mudah, tetapi Anda akan memerlukan paket khusus untuk memasang partisi NFS.
Memasang partisi NFS pada klien
Pertama, Anda perlu menginstal “nfs-utils ” agar dapat me-mount paket NFS.
Anda jelas perlu memiliki hak istimewa sudo untuk menginstal paket baru. Berikut adalah beberapa tutorial untuk Debian/Ubuntu dan CentOS/RHEL.
$ sudo apt-get install nfs-utils
$ sudo yum install nfs-utils
Sekarang setelah paket terinstal, Anda cukup memasang partisi menggunakan sintaks berikut
$ mount -t nfs <dest_ip_or_hostname>:<remote_path> <mount_point>
Misalnya, server NFS Anda terletak di alamat IP 192.168.178.31/24 dan Anda ingin berbagi folder /var/share di server.
Untuk mengekspor folder ini, Anda akan menulis perintah berikut
$ sudo mount -t nfs 192.168.178.31:/var/share /var/share
Pemecahan masalah klien NFS tidak terlalu praktis, namun jika ditangani oleh terminal Anda, ini mungkin berarti Anda tidak dapat mencapai host tujuan.
Jika perintah berhasil dijalankan, Anda seharusnya dapat membuat daftar titik pemasangan baru Anda menggunakan perintah df.
$ df -H
Membuat file baru pada volume NFS
Seperti yang mungkin Anda ingat dari bagian terakhir, kami telah melihat bahwa volume NFS kami dikonfigurasi untuk menekan akun root secara default tetapi tidak ada pengguna lain.
Selanjutnya, folder bersama dimiliki oleh root dan grup root.
Jika Anda mencoba membuat file baru pada volume ini, Anda akan mendapatkan kesalahan izin ditolak, bahkan saat mencoba membuatnya dengan sudo.
Kenapa?
Akun klien bukan milik grup "root" di server, dan jika Anda mencoba membuat file sebagai root di klien, Anda akan terjepit ke akun anonim.
Sepatah Kata tentang Manajemen Pengguna NFS
Sebelum mengonfigurasi server dan klien kami untuk berbagi folder dengan benar, mari kita tinjau sekilas tentang cara kerja manajemen pengguna pada volume NFS.
Seperti yang mungkin Anda pelajari di tutorial kami sebelumnya, pengguna diidentifikasi dengan ID pengguna (juga disebut UID ) dan UID ini unik pada mesin tetapi tidak akan unik pada beberapa mesin di situs yang sama.
Namun, jika sistem Anda tidak dikonfigurasi untuk bekerja dengan sistem manajemen pengguna pusat (seperti NIS, OpenLDAP, atau Samba), ID pengguna Anda mungkin bertentangan pada sistem yang Anda operasikan.
Dalam hal ini, jika kami menganggap bahwa Anda tidak memiliki sistem manajemen pusat, kami hanya akan menyatakan bahwa Anda menyimpan daftar pengguna yang konsisten di antara sistem.
Sekarang pengguna dan grup dibuat konsisten di antara host, mari buat grup yang dapat menambahkan dan menghapus file ke folder.
Membuat grup untuk berbagi NFS
Dalam tutorial ini, kita akan mengasumsikan bahwa “administrator ” dapat menambah dan menghapus file pada folder ini.
Pertama, di server, gunakan “groupadd ” perintah untuk membuat grup baru ini
$ sudo groupadd administrators
Anda kemudian dapat mengubah grup yang memiliki bagian NFS Anda menjadi “administrator “
$ sudo chown :administrators /var/share
Di server, tambahkan pengguna yang diizinkan ke grup yang baru saja Anda buat.
$ sudo usermod -aG administrators <user>
Anda tidak perlu mengekspor ulang drive bersama, Anda cukup mulai membuat file sekarang setelah izin dikonfigurasi dengan benar.
Di klien, mari buat file baru di drive bersama menggunakan perintah sentuh.
$ cd /var/share && touch file-example
Di server, Anda akan dapat melihat bahwa file Anda dibuat dengan benar.
Luar biasa!
Anda berhasil membuat volume NFS dan Anda membagikannya dengan mesin klien.
Mount NFS yang persisten dengan fstab
Seperti yang sudah Anda ketahui dari tutorial sebelumnya, memasang drive di Linux menggunakan perintah mount tidak membuatnya terus-menerus saat reboot.
Untuk membuat tunggangan Anda persisten, Anda perlu menambahkannya ke file fstab.
Sebagai pengguna istimewa, edit file fstab dan tambahkan baris untuk drive NFS Anda
#
# /etc/fstab
# Accessible filesystems, by reference, are maintained under '/dev/disk'.
<ip_address>:<remote_path> <mountpoint> nfs <options> 0 0
Misalnya, mengingat volume NFS yang dibuat sebelumnya pada “192.168.178.31” pada jalur “/var/share”, ini akan memberikan
#
# /etc/fstab
# Accessible filesystems, by reference, are maintained under '/dev/disk'.
192.168.178.31:/var/share /var/share nfs defaults 0 0
Jika Anda menggunakan sistem berbasis systemd, Anda dapat memuat ulang daemon dependen dengan menjalankan perintah daemon-reload
$ systemctl daemon-reload
Luar biasa!
Anda sekarang dapat mem-boot ulang mesin klien Anda dan memverifikasi bahwa drive Anda telah dipasang dengan benar saat boot.
Melangkah Lebih Jauh dengan NFS
Di bagian ini, kita akan membahas topik lanjutan tentang NFS, khususnya bagaimana pengeditan bersamaan ditangani dan bagaimana Anda dapat mengubah konfigurasi NFS Anda ke host klien tertentu.
Pengeditan Bersamaan
Saat menggunakan NFS, Anda mungkin akan mengedit beberapa file bersama dengan beberapa pengguna lain.
Secara bawaan, server NFS tidak akan mencegah Anda mengedit file yang sama.
Jika Anda menggunakan vi sebagai editor teks, Anda akan diberi tahu bahwa beberapa modifikasi telah dilakukan oleh pengguna lain (melalui file swp).
Namun, pertukaran file NFS tidak akan mencegah Anda mengedit file:itu hanya akan menampilkan pesan peringatan pada file yang sedang diedit.
Selain itu, jika Anda menggunakan editor teks lain, tidak ada file “swp” yang akan dibuat dan file tersebut akan memiliki konten modifikasi terakhir yang dilakukan.
Perhatikan bahwa ada cara untuk mengunci file secara lokal menggunakan “ local_lock ” parameter di sisi klien , Anda dapat memeriksa dokumentasi Linux jika Anda tertarik dengan opsi ini.
Mengekspor folder ke alamat IP klien tertentu
Dalam beberapa kasus, Anda mungkin perlu mengekspor folder ke klien tertentu di subnet Anda.
Untuk menentukan alamat IP klien Anda, buka mesin klien dan gunakan perintah “ip” dengan opsi “a” untuk alamat.
$ ip a
Seperti yang Anda lihat, host klien saya memiliki dua antarmuka:antarmuka loopback (atau localhost) dan satu adaptor jaringan bernama “enp0s3”.
Yang terakhir memiliki alamat IP yang sudah ditetapkan ke antarmuka yang dapat dilihat pada baris "inet" :192.168.178.27/24.
Jika Anda ingin mengekspor folder Anda ke seluruh subnet, Anda dapat menentukan IP subnet:sebagai konsekuensinya, setiap IP pada subnet akan dapat mengekspor folder Anda.
Demikian pula, dimungkinkan untuk memeriksa nama host mesin klien untuk mengekspornya nanti di server.
$ hostname
Kembali ke file ekspor, Anda dapat memilih untuk mengekspor satu atau beberapa alamat IP atau mengekspor mesin dengan nama hostnya.
Pemantauan NFS
Saat menginstal paket nfs-common, Anda juga akan menginstal "nfsstat ” utilitas yang merupakan program yang memaparkan statistik NFS.
Dengan menggunakan nfsstat, Anda akan dapat melihat jumlah total operasi yang dilakukan di server NFS Anda serta aktivitas saat ini.
Kesimpulan
Dalam tutorial ini, Anda mempelajari bagaimana Anda dapat menyiapkan server NFSv4 dengan mudah menggunakan utilitas nfs-kernel-server.
Anda juga mempelajari cara memasang drive pada klien dan tentang berbagai opsi yang Anda miliki untuk menyesuaikan pemasangan NFS.
Terakhir, Anda mempelajari lebih dalam tentang drive NFS dan mempelajari bagaimana manajemen pengguna dilakukan di antara beberapa mesin host dan bagaimana Anda harus menyiapkan sistem manajemen pengguna Anda sendiri.
Jika Anda tertarik dengan administrasi Sistem Linux, kami memiliki bagian lengkap yang didedikasikan untuk itu di situs web, jadi pastikan untuk memeriksanya!