Linux

Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

NFS atau Network File System adalah protokol sistem file terdistribusi yang memungkinkan Anda berbagi direktori melalui jaringan. Dengan NFS, Anda dapat memasang direktori jarak jauh di sistem Anda dan bekerja dengan file di mesin jarak jauh seolah-olah itu adalah file lokal.

Secara default, protokol NFS tidak dienkripsi dan tidak menyediakan otentikasi pengguna. Akses ke server dibatasi oleh alamat IP atau nama host klien.

Artikel ini menjelaskan cara mengatur Server NFSv4 di Ubuntu 20.04. Kami juga akan menunjukkan cara memasang sistem file NFS pada mesin klien.

Prasyarat #

Kami akan menggunakan dua mesin, satu menjalankan Ubuntu 20.04, yang akan bertindak sebagai server NFS, dan yang lain menjalankan distribusi Linux lain di mana kita akan me-mount share. Server dan klien harus dapat berkomunikasi satu sama lain melalui jaringan pribadi. Anda dapat menggunakan alamat IP publik dan mengkonfigurasi firewall server untuk mengizinkan lalu lintas di port 2049 hanya dari sumber terpercaya.

Mesin dalam contoh ini memiliki IP berikut:

IP Server NFS: 192.168.33.10 IP Klien NFS: Dari 192.168.33.kisaran 0/2424 

Siapkan Server NFS#

Langkah pertama adalah mengatur server NFS. Kami akan menginstal paket yang diperlukan, membuat dan mengekspor direktori NFS, dan mengkonfigurasi firewall.

Menginstal server NFS#

Paket server NFS menyediakan dukungan ruang pengguna yang diperlukan untuk menjalankan server kernel NFS. Untuk menginstal paket, jalankan:

sudo apt updatesudo apt install nfs-kernel-server

Setelah instalasi selesai, layanan NFS akan dimulai secara otomatis.

Di Ubuntu 20.04, NFS versi 2 dinonaktifkan. Versi 3 dan 4 diaktifkan. Anda dapat memverifikasi itu dengan menjalankan yang berikut ini kucing perintah:

sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2 

NFSv2 sudah cukup tua sekarang, dan tidak ada alasan untuk mengaktifkannya.

Konfigurasi server NFS didefinisikan dalam /etc/default/nfs-kernel-server dan /etc/default/nfs-common file. Pengaturan default sudah cukup untuk sebagian besar situasi.

Membuat sistem file #

Server NFSv4 menggunakan direktori root global, dan direktori yang diekspor relatif terhadap direktori ini. Anda dapat menautkan titik pemasangan berbagi ke direktori yang ingin Anda ekspor menggunakan pengikatan pengikat.

Dalam contoh ini, kita akan mengatur /srv/nfs4 direktori sebagai root NFS. Untuk lebih menjelaskan bagaimana NFS mount dapat dikonfigurasi, kami akan membagikan dua direktori (/var/www dan /opt/backup) dengan pengaturan konfigurasi yang berbeda. Itu /var/www/ dimiliki oleh pengguna www-data, dan /opt/cadangan dimiliki oleh akar.

Pertama buat direktori root dan share mount point:

sudo mkdir -p /srv/nfs4/backupssudo mkdir -p /srv/nfs4/www

Ikat mount direktori ke share mount point:

sudo mount --bind /opt/backups /srv/nfs4/backupssudo mount --bind /var/www /srv/nfs4/www

Untuk membuat pengikatan mount permanen di seluruh reboot, buka /etc/fstab mengajukan:

sudo nano /etc/fstab

dan tambahkan baris berikut:

/etc/fstab
/opt/backups /srv/nfs4/backups none mengikat 0 0 /var/www /srv/nfs4/www none mengikat 0 0 

Mengekspor sistem file #

Langkah selanjutnya adalah menambahkan sistem file yang akan diekspor dan klien diizinkan untuk mengakses share tersebut ke /etc/ekspor mengajukan.

Setiap baris untuk sistem file yang diekspor memiliki bentuk berikut:

tuan rumah ekspor (opsi) 

Dimana ekspor adalah direktori yang diekspor, tuan rumah adalah nama host atau alamat/rentang IP yang dapat mengakses ekspor, dan pilihan adalah pilihan tuan rumah.

Buka /etc/ekspor file dan tambahkan baris berikut:

sudo nano /etc/exports
/etc/ekspor
/srv/nfs4 192.168.33.0/24(rw,sinkronisasi,no_subtree_check,crossmnt,fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro,sinkronkan,no_subtree_check) 192.168.33.3(rw,sinkronisasi,no_subtree_check) /srv/nfs4/www 192.168.33.20(rw,sinkronisasi,no_subtree_check) 

Baris pertama berisi fsid=0 opsi, yang menentukan direktori root NFS (/srv/nfs4). Akses ke volume NFS ini hanya diperbolehkan untuk klien dari 192.168.33.0/24 subjaringan. Itu lintas opsi diperlukan untuk berbagi direktori yang merupakan sub-direktori dari direktori yang diekspor.

Baris kedua menunjukkan cara menentukan beberapa aturan ekspor untuk satu sistem file. Akses baca diizinkan untuk keseluruhan 192.168.33.0/24 jangkauan, dan keduanya hanya membaca dan menulis akses ke 192.168.33.3 alamat IP. Itu sinkronisasi opsi memberitahu NFS untuk menulis perubahan ke disk sebelum membalas.

Baris terakhir cukup jelas. Untuk informasi lebih lanjut tentang semua jenis opsi yang tersedia ekspor pria di terminal Anda.

Simpan file dan ekspor saham:

sudo exportfs -ar

Anda perlu menjalankan perintah di atas setiap kali Anda memodifikasi /etc/ekspor mengajukan. Jika ada kesalahan atau peringatan, itu akan ditampilkan di terminal.

Untuk melihat ekspor aktif saat ini dan statusnya, gunakan:

sudo exportfs -v

Outputnya akan mencakup semua saham dengan opsi mereka. Seperti yang Anda lihat, ada juga opsi yang belum kami definisikan di /etc/ekspor mengajukan. Itu adalah opsi default dan jika Anda ingin mengubahnya, Anda harus mengatur opsi tersebut secara eksplisit.

/srv/nfs4/backup 192.168.33.3(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash) /srv/nfs4/www 192.168.33.20(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash) /srv/nfs4 192.168.33.0/24(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash) 

Di Ubuntu, root_squash diaktifkan secara default. Ini adalah salah satu opsi terpenting terkait keamanan NFS. Ini mencegah pengguna root yang terhubung dari klien memiliki hak akses root pada share yang dipasang dengan memetakan root UID dan GID untuk tak seorangpun/bukan kelompok UID/GID.

Agar pengguna di mesin klien memiliki akses, NFS mengharapkan pengguna klien dan ID grup untuk cocok dengan yang ada di server. Pilihan lainnya adalah menggunakan fitur idmapping NFSv4 yang menerjemahkan ID pengguna dan grup menjadi nama dan sebaliknya.

Itu dia. Pada titik ini, Anda telah menyiapkan server NFS di server Ubuntu Anda. Anda sekarang dapat pindah ke langkah berikutnya dan mengkonfigurasi klien dan terhubung ke server NFS.

Konfigurasi firewall #

Jika Anda menginstal Jenkins di server Ubuntu jarak jauh yang dilindungi oleh firewall , Anda harus mengaktifkan lalu lintas di port NFS:

sudo ufw izinkan dari 192.168.33.0/24 ke port nfs

Verifikasi perubahan:

status sudo ufw

Outputnya harus menunjukkan bahwa lalu lintas di port 2049 Diperbolehkan:

Bertindak Dari -- ------ ---- 2049 IZINKAN 192.168.33.0/24 22/tcp Izinkan Di Mana Saja 22/tcp (v6) Izinkan Di Mana Saja (v6) 

Mengatur Klien NFS #

Sekarang setelah server NFS diatur dan berbagi diekspor, langkah selanjutnya adalah mengonfigurasi klien dan memasang sistem file jarak jauh.

Kami akan fokus pada sistem Linux, tetapi Anda juga dapat memasang bagian NFS di mesin macOS dan Windows.

Menginstal klien NFS #

Pada mesin klien, kita hanya perlu menginstal alat yang diperlukan untuk memasang sistem file NFS jarak jauh.

Memasang sistem file #

Kami akan bekerja pada mesin klien dengan IP 192.168.33.20, yang memiliki akses baca dan tulis ke /srv/nfs4/www sistem file dan akses hanya baca ke /srv/nfs4/backup berkas sistem.

Buat dua direktori baru untuk titik pemasangan:

sudo mkdir -p /backupsudo mkdir -p /srv/www

Anda dapat membuat direktori di lokasi mana pun yang Anda inginkan.

Pasang sistem file yang diekspor dengan meningkat perintah:

sudo mount -t nfs -o vers=4 192.168.33.10:/cadangan / cadangansudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www

Dimana 192.168.33.10 adalah IP dari server NFS. Anda juga dapat menggunakan nama host alih-alih alamat IP, tetapi itu harus dapat diselesaikan oleh mesin klien. Ini biasanya dilakukan dengan memetakan nama host ke IP di in /etc/hosts mengajukan.

Saat memasang sistem file NFSv4, hilangkan direktori root NFS. Menggunakan /cadangan, dari pada /srv/nfs4/backup.

Verifikasi bahwa sistem file jarak jauh berhasil dipasang baik menggunakan mount atau df perintah:

df -h

Perintah akan mencetak semua sistem file yang terpasang. Dua baris terakhir adalah bagian yang dipasang:

Ukuran Sistem File yang Digunakan Tersedia Penggunaan% Dipasang di udev 951M 0 951M 0% /dev tmpfs 199M 676K 199M 1% /run /dev/sda3 124G 2.8G 115G 3% / tmpfs 994M 0 994M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 994M 0 994M 0% /sys/fs/cgroup /dev/sda1 456M 197M 226M 47% /boot tmpfs 199M 0 199M 0% /run/user/1000 192.168.33.10:/backup 124G 2.8G 115G 3% / cadangan 192.168.33.10:/www 124G 2.8G 115G 3% /srv/www

Untuk membuat tunggangan permanen saat reboot, buka /etc/fstab file dan tambahkan baris berikut::

sudo nano /etc/fstab
/etc/fstab
192.168.33.10:/backups /backups nfs default,timeo=900,retrans=5,_netdev 0 0 192.168.33.10:/www /srv/www nfs defaults,timeo=900,retrans=5,_netdev 0 0 

Untuk informasi tentang opsi yang tersedia saat memasang sistem file NFS, ketik pria nfs di terminal Anda.

Pilihan lain untuk memasang sistem file jarak jauh adalah dengan menggunakan salah satu dari autof alat atau untuk membuat unit systemd.

Menguji Akses NFS #

Mari kita uji akses ke share dengan membuat file baru di masing-masingnya.

Pertama, coba buat file uji ke /cadangan direktori menggunakan menyentuh perintah:

sudo touch /backup/test.txt

Itu /cadangan sistem file diekspor sebagai hanya-baca dan seperti yang diharapkan Anda akan melihat a Izin ditolak pesan eror:

sentuh: tidak dapat menyentuh '/ backup/test': Izin ditolak 

Selanjutnya, coba buat file uji ke /srv/www direktori sebagai root menggunakan sudo perintah:

sudo sentuh /srv/www/test.txt

Sekali lagi, Anda akan melihat Izin ditolak pesan.

sentuh: tidak dapat menyentuh '/ srv/www': Izin ditolak 

Jika Anda ingat, /var/www direktori dimiliki oleh www-data pengguna, dan bagian ini memiliki root_squash set opsi yang memetakan pengguna root ke tak seorangpun pengguna dan bukan kelompok grup yang tidak memiliki izin menulis untuk berbagi jarak jauh.

Dengan asumsi bahwa Anda memiliki www-data gunakan pada mesin klien dengan yang sama UID dan GID seperti pada server jarak jauh (yang seharusnya terjadi jika, misalnya, Anda menginstal nginx di kedua mesin), Anda dapat mencoba membuat file sebagai pengguna www-data:

sudo -u www-data sentuh /srv/www/test.txt

Perintah tidak akan menampilkan output yang berarti file berhasil dibuat.

Untuk memverifikasinya, daftarkan file di /srv/www direktori:

ls -la /srv/www

Output harus menunjukkan file yang baru dibuat:

drwxr-xr-x 3 www-data www-data 4096 10 Apr 22:18 . drwxr-xr-x 3 root root 4096 10 Apr 22:29… -rw-r--r-- 1 www-data www-data 0 Apr 10 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Apr 10 22:18 tes.txt 

Melepas Sistem File NFS #

Jika berbagi NFS jarak jauh tidak lagi diperlukan, Anda dapat melepasnya seperti sistem file terpasang lainnya menggunakan using jumlah perintah.

Misalnya, untuk melepas /cadangan bagikan, Anda akan menjalankan:

sudo umount / backup

Jika titik pemasangan didefinisikan dalam /etc/fstab file, pastikan Anda menghapus baris atau mengomentarinya dengan menambahkan # di awal baris.

Kesimpulan #

Kami telah menunjukkan kepada Anda cara mengatur server NFS dan cara memasang sistem file jarak jauh pada mesin klien. Jika Anda menerapkan NFS dalam produksi dan berbagi data yang masuk akal, sebaiknya aktifkan autentikasi kerberos.

Sebagai alternatif untuk NFS, Anda dapat menggunakan SSHFS untuk memasang direktori jarak jauh melalui koneksi SSH. SSHFS dienkripsi secara default dan jauh lebih mudah untuk dikonfigurasi dan digunakan.

Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.

Emulator Konsol Game Terbaik untuk Linux
Artikel ini akan mencantumkan perangkat lunak emulasi konsol game populer yang tersedia untuk Linux. Emulasi adalah lapisan kompatibilitas perangkat l...
Distro Linux Terbaik untuk Gaming pada tahun 2021
Sistem operasi Linux telah berkembang jauh dari tampilan aslinya, sederhana, berbasis server. OS ini telah sangat meningkat dalam beberapa tahun terak...
Cara merekam dan streaming sesi permainan Anda di Linux
Dulu, bermain game hanya dianggap sebagai hobi, namun seiring berjalannya waktu, industri game mengalami pertumbuhan yang sangat pesat baik dari segi ...