Android

Cara menginstal dan mengkonfigurasi server nfs di ubuntu 18.04

Konfigurasi Ubuntu 18.04

Konfigurasi Ubuntu 18.04

Daftar Isi:

Anonim

Network File System (NFS) adalah protokol sistem file terdistribusi yang memungkinkan Anda untuk berbagi direktori jarak jauh 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.

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

Dalam tutorial ini, kita akan membahas cara menyiapkan Server NFSv4 di Ubuntu 18.04. Kami juga akan menunjukkan kepada Anda cara memasang sistem file NFS pada klien.

Prasyarat

Contoh ini mengasumsikan bahwa Anda memiliki satu server yang menjalankan Ubuntu 18.04 dan yang lainnya menjalankan distribusi Linux lainnya. Server dan klien harus dapat berkomunikasi satu sama lain melalui jaringan pribadi. Jika penyedia hosting Anda tidak menawarkan alamat IP pribadi, Anda dapat menggunakan alamat IP publik dan mengkonfigurasi firewall server untuk mengizinkan lalu lintas di 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

Mengatur Server NFS

Kami akan mulai dengan menginstal dan mengkonfigurasi server NFS.

Menginstal server NFS

Refresh indeks paket dan instal paket server NFS:

sudo apt update sudo apt install nfs-kernel-server

Setelah instalasi selesai, layanan NFS akan mulai secara otomatis.

Secara default, pada Ubuntu 18.04 NFS versi 2 dinonaktifkan. Versi 3 dan 4 diaktifkan. Anda dapat memverifikasi itu dengan menjalankan perintah cat berikut:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

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

Opsi konfigurasi server NFS diatur dalam /etc/default/nfs-kernel-server dan /etc/default/nfs-common . Pengaturan default sudah cukup dalam kasus kami.

Menciptakan sistem file

Ketika mengkonfigurasi server NFSv4 itu adalah praktik yang baik adalah dengan menggunakan direktori root NFS global dan mengikat mount direktori aktual ke titik mount berbagi. Dalam contoh ini, kita akan menggunakan direktur /srv/nfs4 sebagai root NFS.

Kita akan membagikan dua direktori ( /var/www dan /opt/backups ), dengan pengaturan konfigurasi yang berbeda, untuk lebih menjelaskan bagaimana NFS mounts dapat dikonfigurasi.

/var/www/ dimiliki oleh pengguna dan grup www-data dan /opt/backups dimiliki oleh root .

Buat sistem file ekspor menggunakan perintah mkdir :

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

Pasang direktori yang sebenarnya:

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

Untuk membuat bind mounts permanen, buka file /etc/fstab :

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 menentukan sistem file yang akan diekspor oleh server NFS, opsi saham dan klien yang diizinkan untuk mengakses sistem file tersebut. Untuk melakukannya, buka file /etc/exports :

sudo nano /etc/exports File /etc/exports juga berisi komentar yang menjelaskan cara mengekspor direktori.

Dalam kasus kami, kami perlu mengekspor direktori www dan backups dan mengizinkan akses hanya dari klien di jaringan 192.168.33.0/24 :

/ etc / ekspor

/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.110(rw, sync, no_subtree_check)

Baris pertama berisi fsid=0 yang mendefinisikan direktori root NFS /srv/nfs . Akses pada volume NFS ini hanya diizinkan untuk klien dari subnet 192.168.33.0/24 . Opsi crossmnt diperlukan untuk berbagi direktori yang merupakan sub-direktori dari direktori yang diekspor.

Pada baris kedua menunjukkan bagaimana menentukan beberapa aturan ekspor untuk satu sistem file. Ia mengekspor direktori /srv/nfs4/backups dan memungkinkan hanya akses baca ke seluruh rentang 192.168.33.0/24 dan keduanya akses baca dan tulis ke 192.168.33.3 . Opsi sync memberitahu NFS untuk menulis perubahan ke disk sebelum menjawab.

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

Simpan file dan ekspor share:

sudo exportfs -ra

Anda perlu menjalankan perintah di atas setiap kali Anda memodifikasi file /etc/exports . Jika ada kesalahan atau peringatan, mereka akan ditampilkan di terminal.

Untuk melihat ekspor aktif saat ini dan kondisinya, gunakan:

sudo exportfs -v

Output akan mencakup semua saham dengan opsi mereka. Seperti yang Anda lihat ada juga opsi yang belum kami definisikan di file /etc/exports . Itu adalah opsi default dan jika Anda ingin mengubahnya, Anda harus mengatur 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.110(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 paling penting tentang keamanan NFS. Ini mencegah pengguna root yang terhubung dari klien untuk memiliki hak akses root pada saham yang dipasang. Ini akan memetakan root UID dan GID kepada nobody / nogroup UID / GID .

Agar pengguna di mesin klien memiliki akses, NFS mengharapkan pengguna dan ID grup klien agar cocok dengan yang ada di server. Pilihan lain adalah menggunakan fitur idmapping NFSv4 yang menerjemahkan ID pengguna dan grup ke 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

Dengan asumsi Anda menggunakan UFW untuk mengelola firewall Anda untuk memungkinkan akses dari subnet 192.168.33.0/24 Anda perlu menjalankan perintah berikut:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Untuk memverifikasi proses perubahan:

sudo ufw status

Keluaran 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 diatur dan berbagi diekspor langkah selanjutnya konfigurasikan klien dan pasang sistem file jarak jauh.

Anda juga dapat memasang berbagi NFS di macOS dan mesin Windows tetapi kami akan fokus pada sistem Linux.

Menginstal klien NFS

Pada mesin klien kami hanya perlu menginstal alat yang diperlukan untuk me-mount 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 update sudo apt install nfs-common

    Instal klien NFS di CentOS dan Fedora

    Di Red Hat dan turunannya instal paket nfs-utils :

    sudo yum install nfs-utils

Memasang sistem file

Kami akan bekerja pada mesin klien dengan IP 192.168.33.110 yang memiliki akses baca dan tulis ke sistem file /srv/nfs4/www dan hanya akses baca ke sistem file /srv/nfs4/backups .

Buat dua direktori baru untuk mount point. Anda dapat membuat direktori ini di lokasi mana pun yang Anda inginkan.

sudo mkdir -p /backups sudo mkdir -p /srv/www

Pasang sistem file yang diekspor dengan perintah mount :

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

Di mana 192.168.33.10 adalah IP dari server NFS. Anda juga dapat menggunakan nama host alih-alih alamat IP tetapi perlu dipecahkan oleh mesin klien. Ini biasanya dilakukan dengan memetakan hostname ke IP di file /etc/hosts .

Saat memasang sistem file NFSv4, Anda harus menonaktifkan direktori root NFS, jadi alih-alih /srv/nfs4/backups Anda harus menggunakan /backups .

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

df -h

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

Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www

Untuk membuat mounts permanen pada reboot, buka file /etc/fstab :

sudo nano /etc/fstab

dan tambahkan baris berikut:

/ 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 menemukan informasi lebih lanjut tentang opsi yang tersedia saat memasang sistem file NFS, ketikkan man nfs di terminal Anda.

Pilihan lain untuk memasang sistem file jarak jauh adalah menggunakan alat autofs atau membuat unit systemd.

Menguji Akses NFS

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

Pertama, coba buat file uji ke direktori /backups menggunakan perintah touch :

sudo touch /backups/test.txt

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

touch: cannot touch '/backups/test': Permission denied

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

sudo touch /srv/www/test.txt

Sekali lagi, Anda akan melihat pesan Permission denied .

touch: cannot touch '/srv/www': Permission denied

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

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

Perintah tidak akan menampilkan keluaran yang berarti file berhasil dibuat.

Untuk memverifikasi daftar file-file di direktori /srv/www :

ls -la /srv/www

Output akan menampilkan file yang baru dibuat:

drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt

Lepas Sistem File NFS

sudo umount /backups

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

Kesimpulan

Dalam tutorial ini, 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, itu adalah ide yang baik untuk mengaktifkan otentikasi kerberos.

Sebagai alternatif 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.

ubuntu nfs mount terminal