GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal dan Mengonfigurasi Server NFS di CentOS 8

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 ini tidak menyediakan otentikasi pengguna. Akses ke server dibatasi oleh alamat IP atau nama host klien.

Dalam tutorial ini, Anda akan melalui langkah-langkah yang diperlukan untuk menyiapkan Server NFSv4 di CentOS 8. Kami juga akan menunjukkan cara memasang sistem file NFS di klien.

Prasyarat #

Kami berasumsi bahwa Anda memiliki server yang menjalankan CentOS 8 tempat kami akan menyiapkan server NFS dan mesin lain yang akan bertindak sebagai klien NFS. 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 mengonfigurasi 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.148
NFS Clients IPs: From the 192.168.33.0/24 range

Siapkan Server NFS #

Bagian ini menjelaskan cara menginstal paket yang diperlukan, membuat dan mengekspor direktori NFS, dan mengkonfigurasi firewall.

Memasang server NFS #

Paket “nfs-utils” menyediakan utilitas dan daemon NFS untuk server NFS. Untuk menginstalnya jalankan perintah berikut:

sudo dnf install nfs-utils

Setelah instalasi selesai, aktifkan dan mulai layanan NFS dengan mengetik:

sudo systemctl enable --now nfs-server

Secara default, pada CentOS 8 NFS versi 3 dan 4.x diaktifkan, versi 2 dinonaktifkan. NFSv2 sudah cukup tua sekarang, dan tidak ada alasan untuk mengaktifkannya. Untuk memverifikasinya jalankan cat berikut ini perintah:

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

Opsi konfigurasi server NFS diatur di /etc/nfsmount.conf dan /etc/nfs.conf file. Pengaturan default sudah cukup untuk tutorial kita.

Membuat sistem file #

Saat mengonfigurasi server NFSv4, praktik yang baik adalah menggunakan direktori root NFS global dan mengikat mount direktori aktual ke titik mount berbagi. Dalam contoh ini, kita akan menggunakan /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 dan grup apache dan /opt/backups dimiliki oleh root .

Buat sistem file ekspor menggunakan mkdir perintah:

sudo mkdir -p /srv/nfs4/{backups,www}

Pasang direktori yang sebenarnya:

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

Untuk membuat pengikatan menjadi permanen, tambahkan entri berikut ke /etc/fstab berkas:

sudo nano /etc/fstab
/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 berbagi, dan klien yang diizinkan untuk mengakses sistem file tersebut. Untuk melakukannya buka /etc/exports berkas:

sudo nano /etc/exports

Ekspor www dan backups direktori dan izinkan akses hanya dari klien di 192.168.33.0/24 jaringan:

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

Baris pertama berisi fsid=0 yang mendefinisikan 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. Itu mengekspor /srv/nfs4/backups direktori dan hanya mengizinkan akses baca ke seluruh 192.168.33.0/24 jangkauan, dan keduanya membaca dan menulis akses ke 192.168.33.3 . sync option memberitahu NFS untuk menulis perubahan ke disk sebelum membalas.

Baris terakhir harus cukup 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 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 definisikan 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(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/www 	192.168.33.110(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4     	192.168.33.0/24(sync,wdelay,hide,crossmnt,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/backups
		192.168.33.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

root_squash adalah salah satu opsi terpenting terkait keamanan NFS. Ini mencegah pengguna root yang terhubung dari klien untuk memiliki hak akses root pada share yang dipasang. Ini akan memetakan UID root root dan GID untuk nobody /nogroup UID /GID .

Agar pengguna di mesin klien memiliki akses, NFS mengharapkan ID pengguna dan grup klien cocok 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 CentOS Anda. Anda sekarang dapat pindah ke langkah berikutnya dan mengonfigurasi klien dan terhubung ke server NFS.

Konfigurasi firewall #

FirewallD adalah solusi firewall default pada Centos 8.

Layanan NFS mencakup aturan yang telah ditentukan sebelumnya untuk mengizinkan akses ke server NFS.

Perintah berikut akan secara permanen mengizinkan akses dari 192.168.33.0/24 subnet:

sudo firewall-cmd --new-zone=nfs --permanentsudo firewall-cmd --zone=nfs --add-service=nfs --permanentsudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanentsudo firewall-cmd --reload

Mengatur Klien NFS #

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

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

Menginstal klien NFS #

Pada mesin klien, instal 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

    Di 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.110 , 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 mount point. Anda dapat membuat direktori ini di lokasi mana pun yang Anda inginkan.

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

Pasang sistem file yang diekspor dengan mount perintah:

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

Dimana 192.168.33.148 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, Anda harus menghilangkan direktori root NFS, jadi alih-alih /srv/nfs4/backups anda perlu menggunakan /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:

...
192.168.33.148:/backups           9.7G  1.2G  8.5G  13% /backups
192.168.33.148:/www               9.7G  1.2G  8.5G  13% /srv/www

Untuk membuat mount permanen saat reboot, buka /etc/fstab berkas:

sudo nano /etc/fstab

dan tambahkan baris berikut:

/etc/fstab
192.168.33.148:/backups /backups   nfs   defaults,timeo=900,retrans=5,_netdev	0 0
192.168.33.148:/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, 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

/backup 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

/var/www direktori dimiliki oleh apache 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 bahwa pengguna apache ada di mesin klien dengan UID yang sama dan GID seperti pada server jarak jauh (yang seharusnya terjadi jika, misalnya, Anda menginstal apacheon kedua mesin), Anda dapat menguji untuk membuat file sebagai pengguna apache dengan:

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

Perintah tidak akan menampilkan output, yang berarti file telah 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 apache apache 4096 Jun 23 22:18 .
drwxr-xr-x 3 root     root     4096 Jun 23 22:29 ..
-rw-r--r-- 1 apache apache    0 Jun 23 21:58 index.html
-rw-r--r-- 1 apache apache    0 Jun 23 22:18 test.txt

Melepas Sistem File NFS #

Jika Anda tidak lagi membutuhkan share NFS jarak jauh, Anda dapat meng-unmount-nya seperti sistem file lain yang terpasang menggunakan perintah umount. Misalnya, untuk melepas /backup bagikan yang akan Anda jalankan:

sudo umount /backups

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


Cent OS
  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi Gitlab di CentOS 8

  3. Cara Menginstal dan Mengonfigurasi Postgres 13 di Centos 8

  1. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

  2. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 18.04

  3. Cara Menginstal dan Mengkonfigurasi VNC di CentOS 7

  1. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  2. Cara Menginstal dan Mengkonfigurasi VNC di CentOS 8

  3. Cara Instal dan Konfigurasi FreeIPA di Server CentOS 7