Tutorial Instal dan Konfigurasi NFS di Debian 9


NFS atau Network File System merupakan protokol yang digunakan untuk sharing file di dalam suatu jaringan komputer. Protokol ini memungkinan host-host untuk mengakses file yang melalui jaringan.


Tutorial instal dan konfigurasi NFS di Debian

Konsep dari NFS sama seperti samba, dimana terdapat sebuah server yang akan menyimpan file, kemudian client akan mengakses file yang berada di dalam server tersebut. Akan tetapi pada NFS, untuk bisa mengakses suatu direktori atau file di dalamnya, client perlu melakukan mounting terhadap direktori yang akan diakses.

Pada tutoral kali ini akan dibahas mengenai cara mengkonfigurasi NFS Server dan NFS Client dengan menggunakan sistem operasi Debian.

Topologi :

Gambar topologi NFS server dan client

Instalasi dan Konfigurasi NFS Server

Untuk Server NFS, saya menggunakan Debian 9. Pertama kita instal dahulu paket aplikasi untuk server NFS, yakni nfs-kernel-server.
apt install nfs-kernel-server -y

Kemudian cek status server NFS.
systemctl status nfs-kernel-server

Selanjutnya buat direktori yang akan dijadikan tempat untuk menyimpan file (yang akan di-share). Di sini saya membuat dua direktori yakni public dan private. Untuk lokasinya bisa kalian tentukan sendiri.
mkdir -p /home/nfs/public
mkdir -p /home/nfs/private

Perintah mkdir -p akan membuat direktori nfs beserta direktori public dan private yang berada di dalamnya.

Lalu buat beberapa file di dalam kedua direktori tersebut.
cd /home/nfs/public
touch file1.txt file2.txt file3.txt

cd /home/nfs/private
touch private1.txt private2.txt private3.txt

Langkah berikutnya adalah mengkonfigurasi Server NFS. Kita akan mendefinisikan direktori-direktori yang akan di-share dan siapa saja yang bisa mengaksesnya.

Edit file /etc/exports
nano /etc/exports

Kemudian tambahkan konfigurasi seperti ini :
/home/nfs/public *(rw,sync,no_subtree_check,no_root_squash)
/home/nfs/private 192.168.7.202(rw,sync,no_subtree_check,no_root_squash)

  • /home/nfs/public dan /home/nfs/private merupakan letak direktori yang akan di-share ke dalam jaringan.
  • * dan 192.168.7.202 merupakan host yang diperbolehkan untuk mengakses direktori
  • rw,sync,no_subtree_check,no_root_squash merupakan hak akses/aturan untuk direktori yang akan dibagikan

Untuk beberapa opsi aturan yang bisa digunakan dapat kalian lihat pada gambar di bawah ini :

Beberapa opsi konfigurasi untuk direktorti NFS
sumber : www.server-world.info

Pada konfigurasi di atas, terdapat 2 baris konfigurasi. Konfigurasi baris pertama yakni mengijinkan semua host untuk mengakses direktori public.

Sedangkan baris kedua yakni mengijinkan host tertentu yang bisa mengakses direktori private.

Jika ingin mengijinkan sebuah network maka konfigurasi pada bagian ip address di atas diubah menjadi ip network misal 192.168.7.0/24.

Kemudian apabila ingin mengijinkan beberapa host atau network maka format konfigurasinya adalah :
direktori    ip_pertama(privileges) ip_kedua(privileges) ip_ketiga(privileges) dst..

Selain menggunakan ip address, kita juga bisa menggunakan hostname.

Sehingga konfigurasi keseluruhan pada file export adalah :
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/home/nfs/public *(rw,sync,no_subtree_check,no_root_squash)
/home/nfs/private 192.168.7.201(rw,sync,no_subtree_check,no_root_squash) 192.168.7.202(rw,sync,no_subtree_check,no_root_squash)

Load konfigurasi pada file exports dengan perintah :
exportfs -a

Apabila tidak ada tampilan error maka konfigurasi NFS Server sudah benar.

Selanjutnya restart service nfs server.
systemctl restart nfs-kernel-server

Instalasi dan Konfigurasi NFS Client

Pada tutorial ini, saya menggunakan client berupa Debian 8. Pertama-tama instal dahulu service NFS Client.
apt install nfs-common

Selanjutnya buat direktori untuk tempat mounting direktori dari Server NFS. Di sini saya akan membuat dua buah direktori yakni public dan privat yang letaknya di dalam direktori /mnt/nfs.
mkdir -p /mnt/nfs/public
mkdir -p /mnt/nfs/private

Pengujian

Lakukan mount terhadap direktori public dan private yang berada pada Server NFS.
root@nfs-client:~# mount -t nfs 192.168.7.200:/home/nfs/public /mnt/nfs/public/
root@nfs-client:~# mount -t nfs 192.168.7.200:/home/nfs/private /mnt/nfs/private/


  • -t merupakan opsi untuk menentukan tipe mount
  • nfs merupakan tipe yang akan digunakan
  • 192.168.7.200:/home/nfs/private merupakan path dari direktori yang akan diakses
  • /mnt/nfs/ merupakan lokasi untuk menyimpan hasil mounting


Untuk mengecek apakah berhasil atau tidak, kita cek isi direktori /mnt/nfs/public dan /mnt/nfs/private.
root@nfs-client:~# ls /mnt/nfs/public
file1.txt  file3.txt  file4.txt
root@nfs-client:~# ls /mnt/nfs/private
private1.txt  private2.txt  private3.txt
root@nfs-client:~#

Kita juga bisa cek dengan melihat daftar partisi yang ada pada komputer client.
root@nfs-client:~# df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/sda1                        9.3G  1.7G  7.2G  19% /
udev                              10M     0   10M   0% /dev
tmpfs                             50M  4.6M   45M  10% /run
tmpfs                            124M     0  124M   0% /dev/shm
tmpfs                            5.0M     0  5.0M   0% /run/lock
tmpfs                            124M     0  124M   0% /sys/fs/cgroup
192.168.7.200:/home/nfs/public   9.4G  822M  8.1G  10% /mnt/nfs/public
192.168.7.200:/home/nfs/private  9.4G  822M  8.1G  10% /mnt/nfs/private

Terlihat bahwa ada dua partisi baru milik server NFS. 

Dengan begitu client telah berhasil mengakses direktori pada NFS Server dan kita telah berhasil membuat file sharing menggunakan NFS.

Selanjutnya kita akan menguji hak akses dari direktori private, karena sebelumnya kita mengkonfigurasi direktori private agar hanya bisa diakses oleh client tertentu.

Kita akan coba untu melakukan mount ulang ke NFS Server namun dengan ip address yang berbeda.

Lakukan umount terlebih dahulu untuk mengosongkan isi direktori /mnt/nfs/private.
umount /mnt/nfs/private

Kemudian ubah ip address pada client, misalnya menjadi 192.168.7.199.
root@nfs-client:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:08:fb:02
          inet addr:192.168.7.199  Bcast:192.168.7.255  Mask:255.255.255.0
...


Lalu lakukan mount ulang terhadap direktorti private.
mount -t nfs 192.168.7.200:/home/nfs/private /mnt/nfs/private

Maka akan muncul pemberitahuan bahwa kita tidak memiliki hak akses.
root@nfs-client:~# mount -t nfs 192.168.7.200:/home/nfs/private /mnt/nfs/private
mount.nfs: access denied by server while mounting 192.168.7.200:/home/nfs/private

Dengan begitu kita telah berhasil melakukan NFS sharing kepada host tertentu. Oiya, meskipun client tidak bisa mengakses direktori private, namun client tetap bisa mengakses direktori public. Hal ini dikarenakan kita mengijinkan semua host untuk dapat mengakses direktori public.

Menjalankan Automount

Meskipun kita telah berhasil mengakses file pada Server NFS. Akan tetapi akses tersebut tidak bersifat permanen. 

Ketika client melakukan restart, maka file yang telah diakses akan hilang, dan client tersebut harus melakukan mount ulang.

Jadi, jika kita mematikan komputer, kemudian menghidupkannya (misal esok hari) maka kita harus mount ulang direktori yang ingin kita akses.

Untuk mengatasi hal tersebut kita bisa mengkonfigurasi agar komputer melakukan mount secara otomatis setelah komputer selesai melakukan booting/restart.

Yakni dengan menambahkan konfigurasi pada file /etc/fstab.

Kita edit file fstab.
nano /etc/fstab

Kemudian pada baris paling bawah tambahkan konfigurasi untuk mount ke direktori Server NFS.
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# [file system] [mount point]   [type]  [options]       [dump]  [pass] 
# / was on /dev/sda1 during installation
UUID=67aa165a-cb10-4806-99a0-bbcdbbbc82fd /               ext4    errors=remoun$
# swap was on /dev/sda5 during installation
UUID=843325a0-5b5b-48c8-9fe1-aa5c9361df7f none            swap    sw           $
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
192.168.7.200:/home/nfs/public /mnt/nfs/public nfs default 0 0
192.168.7.200:/home/nfs/private /mnt/nfs/private nfs default 0 0

Simpan file.

Untuk mengetesnya, lakukan perintah mount -a. Apabila tidak terdapat pesan error, berarti kita telah berhasil menjalankan auto mount. Jika masih ragu, silahkan restart komputer kemudian cek lagi menggunakan perintah ls atau df -h.
root@nfs-client:~# mount -a
root@nfs-client:~#


Load Comments