GNU/Linux >> Belajar Linux >  >> Ubuntu

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 satu lagi menjalankan distribusi Linux lain yang akan kami 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 pada port 2049 hanya dari sumber tepercaya.

Mesin dalam contoh ini memiliki IP berikut:

NFS Server IP: 192.168.33.10
NFS Clients IPs: From the 192.168.33.0/24 range

Siapkan Server NFS #

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

Memasang 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 penginstalan selesai, layanan NFS akan dimulai secara otomatis.

Di Ubuntu 20.04, NFS versi 2 dinonaktifkan. Versi 3 dan 4 diaktifkan. Anda dapat memverifikasinya dengan menjalankan cat berikut: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 di /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 pengikat ikatan.

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/backups ) dengan pengaturan konfigurasi yang berbeda. /var/www/ dimiliki oleh pengguna www-data , dan /opt/backups dimiliki oleh root .

Pertama buat direktori root dan share mount point:

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

Ikat mount direktori ke titik mount berbagi:

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 berkas:

sudo nano /etc/fstab

dan tambahkan baris berikut:

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

Mengekspor sistem file #

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

Setiap baris untuk sistem file yang diekspor memiliki bentuk berikut:

export host(options)

Di mana export adalah direktori yang diekspor, host adalah nama host atau alamat/rentang IP yang dapat mengakses ekspor, dan options adalah opsi host.

Buka /etc/exports file dan tambahkan baris berikut:

sudo nano /etc/exports
/etc/exports
/srv/nfs4         192.168.33.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)
/srv/nfs4/backups 192.168.33.0/24(ro,sync,no_subtree_check) 192.168.33.3(rw,sync,no_subtree_check)
/srv/nfs4/www     192.168.33.20(rw,sync,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. crossmnt 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 ke seluruh 192.168.33.0/24 jangkauan, dan keduanya hanya membaca dan menulis akses ke 192.168.33.3 Alamat IP. sync option memberitahu NFS untuk menulis perubahan ke disk sebelum membalas.

Baris terakhir cukup jelas. Untuk informasi lebih lanjut tentang semua opsi yang tersedia ketik man exports di terminal Anda.

Simpan file dan ekspor share:

sudo exportfs -ar

Anda perlu menjalankan perintah di atas setiap kali Anda mengubah /etc/exports 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 tentukan di /etc/exports mengajukan. Itu adalah opsi default dan jika Anda ingin mengubahnya, Anda harus menyetel opsi tersebut secara eksplisit.

/srv/nfs4/backups
		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 UID root dan GID untuk nobody /nogroup UID /GID .

Agar pengguna di mesin klien memiliki akses, NFS mengharapkan pengguna klien dan ID grup untuk mencocokkan dengan yang ada di server. Opsi lainnya adalah menggunakan fitur pemetaan id 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 mengonfigurasi 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 allow from 192.168.33.0/24 to any port nfs

Verifikasi perubahan:

sudo ufw status

Outputnya harus menunjukkan bahwa lalu lintas pada port 2049 diperbolehkan:

To                         Action      From
--                         ------      ----
2049                       ALLOW       192.168.33.0/24           
22/tcp                     ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)  

Mengatur Klien NFS #

Sekarang setelah server NFS disiapkan 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 share NFS pada mesin macOS dan Windows.

Menginstal klien NFS #

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

  • Instal klien NFS di Debian dan Ubuntu

    Nama paket yang menyertakan program untuk memasang sistem file NFS pada distribusi berbasis Debian adalah nfs-common . Untuk menginstalnya, jalankan:

    sudo apt updatesudo apt install nfs-common
  • Instal klien NFS di CentOS dan Fedora

    Pada Red Hat dan turunannya, instal nfs-utils paket:

    sudo yum install nfs-utils

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/backups sistem file.

Buat dua direktori baru untuk titik pemasangan:

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

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

Pasang sistem file yang diekspor dengan mount perintah:

sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backupssudo 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 /etc/hosts berkas.

Saat memasang sistem file NFSv4, hilangkan direktori root NFS. Gunakan /backups , alih-alih /srv/nfs4/backups .

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

df -h

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

Filesystem              Size  Used Avail Use% Mounted on
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:/backups  124G  2.8G  115G   3% /backups
192.168.33.10:/www      124G  2.8G  115G   3% /srv/www

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

sudo nano /etc/fstab
/etc/fstab
192.168.33.10:/backups /backups   nfs   defaults,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 man nfs di terminal Anda.

Opsi lain untuk memasang sistem file jarak jauh adalah dengan menggunakan autofs 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 /backups direktori menggunakan touch perintah:

sudo touch /backups/test.txt

/backups sistem file diekspor sebagai hanya-baca dan seperti yang diharapkan Anda akan melihat Permission denied pesan kesalahan:

touch: cannot touch ‘/backups/test’: Permission denied

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

sudo touch /srv/www/test.txt

Sekali lagi, Anda akan melihat Permission denied pesan.

touch: cannot touch ‘/srv/www’: Permission denied

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

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

sudo -u www-data touch /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

Outputnya akan menampilkan file yang baru dibuat:

drwxr-xr-x 3 www-data www-data 4096 Apr 10 22:18 .
drwxr-xr-x 3 root     root     4096 Apr 10 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 test.txt

Melepas Sistem File NFS #

Jika pembagian NFS jarak jauh tidak lagi diperlukan, Anda dapat melepasnya seperti sistem file terpasang lainnya menggunakan umount perintah.

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

sudo umount /backups

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


Ubuntu
  1. Cara mengonfigurasi server NFS dan memasang share NFS di Ubuntu 14.10

  2. Cara Menginstal dan Mengkonfigurasi Server DHCP di Ubuntu 20.04

  3. Cara Menginstal Dan Mengkonfigurasi Server Redis Di Ubuntu

  1. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 18.04

  3. Cara Menginstal dan Mengkonfigurasi Server VPN Algo di Ubuntu 20.04

  1. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 18.04

  2. Cara Menginstal dan Mengonfigurasi Server NFS di CentOS 8

  3. Cara Menginstal dan Mengkonfigurasi Nginx di Ubuntu 18.04 / Debian 9