Linux

Cara Memasang dan Mengkonfigurasi Pelayan NFS di Ubuntu 20.04

Cara Memasang dan Mengkonfigurasi Pelayan NFS di Ubuntu 20.04

NFS atau Sistem Fail Rangkaian adalah protokol sistem fail diedarkan yang membolehkan anda berkongsi direktori melalui rangkaian. Dengan NFS, anda boleh memasang direktori jauh pada sistem anda dan bekerja dengan fail pada mesin jauh seolah-olah itu fail tempatan.

Secara lalai, protokol NFS tidak disulitkan dan tidak memberikan pengesahan pengguna. Akses ke pelayan dibatasi oleh alamat IP pelanggan atau nama host.

Artikel ini menerangkan cara menyediakan Pelayan NFSv4 di Ubuntu 20.04. Kami juga akan menunjukkan kepada anda cara memasang sistem fail NFS pada mesin pelanggan.

Prasyarat #

Kami akan menggunakan dua mesin, satu menjalankan Ubuntu 20.04, yang akan bertindak sebagai pelayan NFS, dan yang lain menjalankan pengedaran Linux lain yang akan kami pasangkan bahagiannya. Pelayan dan pelanggan harus dapat berkomunikasi antara satu sama lain melalui rangkaian peribadi. Anda boleh menggunakan alamat IP awam dan mengkonfigurasi firewall pelayan untuk membenarkan lalu lintas di port 2049 hanya dari sumber yang dipercayai.

Mesin dalam contoh ini mempunyai IP berikut:

IP Pelayan NFS: 192.168.33.10 IP Pelanggan NFS: Dari 192.168.33.Julat 0/24 

Sediakan NFS Server #

Langkah pertama ialah menyediakan pelayan NFS. Kami akan memasang pakej yang diperlukan, membuat dan mengeksport direktori NFS, dan mengkonfigurasi firewall.

Memasang pelayan NFS #

Pakej pelayan NFS menyediakan sokongan ruang pengguna yang diperlukan untuk menjalankan pelayan kernel NFS. Untuk memasang pakej, jalankan:

sudo apt kemas kinisudo apt pasang nfs-kernel-server

Setelah pemasangan selesai, perkhidmatan NFS akan bermula secara automatik.

Di Ubuntu 20.04, NFS versi 2 dilumpuhkan. Versi 3 dan 4 diaktifkan. Anda boleh mengesahkannya dengan menjalankan perkara berikut kucing arahan:

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

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

Konfigurasi pelayan NFS ditakrifkan dalam / etc / default / nfs-kernel-pelayan dan / etc / default / nfs-common fail. Tetapan lalai mencukupi untuk kebanyakan keadaan.

Membuat sistem fail #

Pelayan NFSv4 menggunakan direktori root global, dan direktori yang dieksport adalah relatif dengan direktori ini. Anda boleh mengaitkan titik tambah bahagian ke direktori yang ingin anda eksport menggunakan mount bind.

Dalam contoh ini, kami akan menetapkan / srv / nfs4 direktori sebagai NFS root. Untuk menerangkan dengan lebih baik bagaimana pemasangan NFS dapat dikonfigurasi, kami akan berkongsi dua direktori (/ var / www dan / opt / sandaran) dengan tetapan konfigurasi yang berbeza. The / var / www / dimiliki oleh pengguna www-data, dan / opt / sandaran dimiliki oleh akar.

Mula-mula buat direktori root dan kongsi titik tambah:

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

Ikuti pemasangan direktori ke titik tambah bahagian:

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

Untuk menjadikan pengikat tetap kekal di but semula, buka / etc / fstab fail:

sudo nano / etc / fstab

dan tambahkan baris berikut:

/ etc / fstab
/ opt / sandaran / srv / nfs4 / sandaran tidak mengikat 0 0 / var / www / srv / nfs4 / www tidak mengikat 0 0 

Mengeksport sistem fail #

Langkah seterusnya adalah menambahkan sistem fail yang akan dieksport dan klien dibenarkan mengakses saham tersebut ke / dll / eksport fail.

Setiap baris untuk sistem fail yang dieksport mempunyai bentuk berikut:

hos eksport (pilihan) 

Di mana eksport adalah direktori yang dieksport, tuan rumah adalah nama host atau alamat / julat IP yang dapat mengakses eksport, dan pilihan adalah pilihan hos.

Buka / dll / eksport fail dan tambahkan baris berikut:

sudo nano / etc / eksport
/ dll / eksport
/ srv / nfs4 192.168.33.0/24 (rw, sync, no_subtree_check, crossmnt, fsid = 0) / srv / nfs4 / sandaran 192.168.33.0/24 (ro, segerak, no_subtree_check) 192.168.33.3 (rw, sync, no_subtree_check) / srv / nfs4 / www 192.168.33.20 (rw, segerak, no_subtree_check) 

Baris pertama mengandungi fsid = 0 pilihan, yang menentukan direktori root NFS (/ srv / nfs4). Akses ke volume NFS ini hanya dibenarkan kepada pelanggan dari 192.168.33.0/24 subnet. The hantaran silang pilihan diperlukan untuk berkongsi direktori yang merupakan sub-direktori dari direktori yang dieksport.

Baris kedua menunjukkan bagaimana menentukan beberapa peraturan eksport untuk satu sistem fail. Akses membaca dibenarkan secara keseluruhan 192.168.33.0/24 pelbagai, dan kedua-dua akses membaca dan menulis hanya ke 192.168.33.3 alamat IP. The segerak pilihan memberitahu NFS untuk menulis perubahan pada cakera sebelum membalas.

Baris terakhir adalah jelas. Untuk maklumat lebih lanjut mengenai semua jenis pilihan yang ada lelaki mengeksport di terminal anda.

Simpan fail dan eksport saham:

sudo exportfs -ar

Anda perlu menjalankan perintah di atas setiap kali anda mengubah suai / dll / eksport fail. Sekiranya terdapat kesilapan atau amaran, ia akan ditunjukkan di terminal.

Untuk melihat eksport aktif semasa dan keadaannya, gunakan:

sudo exportfs -v

Hasilnya akan merangkumi semua saham dengan opsyen mereka. Seperti yang anda lihat ada juga pilihan yang belum kami tentukan di / dll / eksport fail. Itu adalah pilihan lalai dan jika anda ingin mengubahnya, anda perlu menetapkan pilihan tersebut secara jelas.

/ srv / nfs4 / sandaran 192.168.33.3 (rw, wdelay, root_squash, no_subtree_check, sec = sys, rw, safe, root_squash, no_all_squash) / srv / nfs4 / www 192.168.33.20 (rw, wdelay, root_squash, no_subtree_check, sec = sys, rw, safe, 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, safe, root_squash, no_all_squash) / srv / nfs4 / sandaran 192.168.33.0/24 (ro, wdelay, root_squash, no_subtree_check, sec = sys, ro, safe, root_squash, no_all_squash) 

Di Ubuntu, root_squash diaktifkan secara lalai. Ini adalah salah satu pilihan yang paling penting mengenai keselamatan NFS. Ini menghalang pengguna root yang terhubung dari klien daripada mempunyai hak root pada saham yang dipasang dengan memetakan root UID dan GID ke tiada siapa/nogroup UID/GID.

Agar pengguna di mesin pelanggan dapat mengakses, NFS mengharapkan ID pengguna dan kumpulan pengguna sesuai dengan yang ada di pelayan. Pilihan lain adalah menggunakan ciri pemetaan id NFSv4 yang menerjemahkan ID pengguna dan kumpulan menjadi nama dan sebaliknya.

Itu sahaja. Pada ketika ini, anda telah menyediakan pelayan NFS pada pelayan Ubuntu anda. Anda kini boleh beralih ke langkah seterusnya dan mengkonfigurasi klien dan menyambung ke pelayan NFS.

Konfigurasi Firewall #

Sekiranya anda memasang Jenkins pada pelayan Ubuntu jauh yang dilindungi oleh firewall, anda perlu mengaktifkan lalu lintas di port NFS:

sudo ufw membenarkan dari 192.168.33.0/24 ke mana-mana port nfs

Sahkan perubahan:

status sudo ufw

Hasilnya harus menunjukkan bahawa lalu lintas di pelabuhan 2049 dibenarkan:

Untuk Bertindak Dari - ------ ---- 2049 ELAUN 192.168.33.0/24 22 / tcp BENARKAN Di mana sahaja 22 / tcp (v6) Bolehkan di mana sahaja (v6) 

Sediakan Pelanggan NFS #

Sekarang setelah pelayan NFS disiapkan dan saham dieksport, langkah seterusnya adalah mengkonfigurasi klien dan memasang sistem fail jauh.

Kami akan memfokuskan pada sistem Linux, tetapi anda juga boleh memasang bahagian NFS pada mesin macOS dan Windows.

Memasang pelanggan NFS #

Pada mesin pelanggan, kita hanya perlu memasang alat yang diperlukan untuk memasang sistem fail NFS jauh.

Pemasangan sistem fail #

Kami akan mengusahakan mesin pelanggan dengan IP 192.168.33.20, yang mempunyai akses membaca dan menulis ke / srv / nfs4 / www sistem fail dan akses baca sahaja ke / srv / nfs4 / sandaran sistem fail.

Buat dua direktori baru untuk titik pemasangan:

sudo mkdir -p / sandaransudo mkdir -p / srv / www

Anda boleh membuat direktori di mana-mana lokasi yang anda mahukan.

Pasang sistem fail yang dieksport dengan melekap arahan:

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

Di mana 192.168.33.10 adalah IP pelayan NFS. Anda juga boleh menggunakan nama host dan bukan alamat IP, tetapi perlu diselesaikan oleh mesin pelanggan. Ini biasanya dilakukan dengan memetakan nama host ke IP di / dll / tuan rumah fail.

Semasa memasang sistem fail NFSv4, hilangkan direktori root NFS. Gunakan / sandaran, bukannya / srv / nfs4 / sandaran.

Sahkan bahawa sistem fail jauh dipasang dengan baik menggunakan mount atau df arahan:

df -h

Perintah akan mencetak semua sistem fail yang dipasang. Dua baris terakhir adalah saham yang dipasang:

Saiz Sistem Filem Digunakan Avail Penggunaan% Dipasang pada 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: / sandaran 124G 2.8G 115G 3% / sandaran 192.168.33.10: / www 124G 2.8G 115G 3% / srv / www

Untuk menjadikan mount tetap pada reboot, buka / etc / fstab fail dan tambahkan baris berikut:

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

Untuk maklumat mengenai pilihan yang ada semasa memasang sistem fail NFS, ketik lelaki nfs di terminal anda.

Pilihan lain untuk memasang sistem fail jauh adalah menggunakan salah satu autofs alat atau untuk membuat unit systemd.

Menguji Akses NFS #

Mari kita uji akses ke saham dengan membuat fail baru pada setiap saham tersebut.

Pertama, cuba buat fail ujian ke / sandaran direktori menggunakan sentuhan arahan:

sudo sentuh / sandaran / ujian.txt

The / sandaran sistem fail dieksport sebagai baca sahaja dan seperti yang dijangkakan anda akan melihat a Kebenaran ditolak mesej ralat:

sentuh: tidak dapat menyentuh '/ sandaran / ujian': Kebenaran ditolak 

Seterusnya, cuba buat fail ujian ke / srv / www direktori sebagai root menggunakan sudo arahan:

sudo touch / srv / www / test.txt

Sekali lagi, anda akan melihat Kebenaran ditolak mesej.

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

Sekiranya anda ingat, yang / var / www direktori dimiliki oleh www-data pengguna, dan bahagian ini mempunyai root_squash set pilihan yang memetakan pengguna root ke tiada siapa pengguna dan nogroup kumpulan yang tidak mempunyai kebenaran menulis ke bahagian jauh.

Dengan andaian bahawa anda mempunyai www-data gunakan pada mesin pelanggan dengan yang sama UID dan GID seperti pada pelayan jauh (yang seharusnya berlaku jika, misalnya, anda memasang nginx pada kedua mesin), anda boleh mencuba membuat fail sebagai pengguna www-data:

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

Perintah tidak akan menunjukkan output yang bermaksud fail berjaya dibuat.

Untuk mengesahkannya menyenaraikan fail di / srv / www direktori:

ls -la / srv / www

Output harus menunjukkan fail 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 indeks.html -rw-r - r-- 1 www-data www-data 0 10 April 22:18 ujian.txt 

Menghilangkan Sistem Fail NFS #

Sekiranya bahagian NFS jauh tidak diperlukan lagi, anda boleh melepaskannya seperti sistem fail lain yang dipasang menggunakan jumlahnya perintah.

Sebagai contoh, untuk melepaskan pemasangan / sandaran berkongsi, anda akan menjalankan:

sudo umount / sandaran

Sekiranya titik lekapan ditentukan dalam / etc / fstab fail, pastikan anda membuang baris atau memberi komen dengan menambahkan # pada awal baris.

Kesimpulan #

Kami telah menunjukkan kepada anda cara menyiapkan pelayan NFS dan cara memasang sistem fail jauh pada mesin pelanggan. Sekiranya anda melaksanakan NFS dalam pengeluaran dan berkongsi data yang masuk akal, ada baiknya anda mengaktifkan pengesahan kerberos.

Sebagai alternatif kepada NFS, anda boleh menggunakan SSHFS untuk memasang direktori jauh melalui sambungan SSH. SSHFS disulitkan secara lalai dan jauh lebih mudah untuk dikonfigurasi dan digunakan.

Jangan ragu untuk memberikan komen sekiranya anda mempunyai sebarang pertanyaan.

Pasang Dolphin Emulator terkini untuk Gamecube & Wii di Linux
Dolphin Emulator membolehkan anda memainkan permainan Gamecube & Wii pilihan anda di Komputer Peribadi Linux (PC). Menjadi emulator permainan sumber ...
Cara Menggunakan Mesin Cheat GameConqueror di Linux
Artikel ini merangkumi panduan mengenai penggunaan mesin cheat GameConqueror di Linux. Ramai pengguna yang bermain permainan di Windows sering menggun...
Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...