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.
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.
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.
/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.*
dan192.168.7.202
merupakan host yang diperbolehkan untuk mengakses direktorirw,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 :
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 mountnfs
merupakan tipe yang akan digunakan192.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
.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:~#