A. Pengertian NFS
NFS (Network File System) adalah sebuah protokol berbagi pakai berkas melalui jaringan. NFS ini meng-share file ataupun resource melalui network atau jaringan tanpa peduli sistem operasi yang digunakan apa. NFS merupakan sebuah sistem berkas terdistribusi yang dikembangkan oleh Sun Microsystems Inc. pada awal dekade 1980-an yang menjadi standar de facto dalam urusan sistem berkas terdistribusi. NFS didesain sedemikian rupa untuk mengizinkan pengeksporan sistem berkas terhadap jaringan yang heterogen (yang terdiri dari sistem-sistem operasi yang berbeda dan platform yang juga berbeda). Teknologi NFS ini dilisensikan kepada lebih dari 200 vendor komputer dan jaringan, dan telah dibuat implementasinya pada banyak platform dan sistem operasi, termasuk di antaranya adalah UNIX, GNU/Linux, Microsoft Windows, dan lingkungan mainframe.
NFS dapat mengizinkan klien-klien untuk menemukan dan mengakses berkas yang disimpan di dalam server jaringan jarak jauh. Memang, desain awal spesifikasi NFS dikhususkan untuk penggunaan dalam jaringan lokal (LAN) dan tidak dioptimalkan untuk penggunaan dalam WAN. Tapi, versi NFS 3 yang digunakan saat ini dapat digunakan dalam jaringan WAN, sebaik ketika ia bekerja di dalam LAN. Fitur-fitur yang dimiliki oleh NFS versi 3 adalah sebagai berikut:
- Mendukung ukuran berkas hingga satuan Terabyte, dengan menggunakan indikator ukuran berkas hingga 64-bit (pada versi sebelumnya, hanya mengimplementasikan indikator ukuran berkas hingga 32-bit saja, sehingga total ukuran berkas maksimum adalah 4 gigabyte).
- Ukuran maksimum paket data yang didukung adalah 64 Kilobyte (pada versi sebelumnya, hanya mencapai 8 KB untuk tiap paketnya, sehingga lebih lama dalam melakukan transfer data dari satu host ke host lainnya yang menjalankan NFS).
- Dapat memilih apakah hendak menggunakan protokol lapisan transport UDP atau TCP (pada versi sebelumnya, NFS hanya menggunakan protokol lapisan transport UDP sehingga kurang bagus diimplementasikan dalam jaringan WAN).
- Server dapat melakukan penge-cache-an terhadap request yang dilakukan oleh klien.
B. Implementasi Standar NFS
NFS diimplementasikan sebagai sebuah sistem client/server yang menggunakan perangkat lunak NFS server dan NFS client yang berjalan di atas workstation. NFS Server akan menggunakan protokol NFS untuk mengekspor sistem berkas yang dimilikinya kepada klien NFS agar dapat dibaca ole klien, seolah-olah sistem berkas remote tersebut merupakan sistem berkas yang dimiliki oleh klien secara lokal. Sedangkan NFS Client Menyiapkan direktori yang dipakai untuk menampung sharing direktori dari server, kemudian melakukan konfigurasi pengambilan file lewat sharing dengan tempat penampungan telah disiapkanImplementasi standar NFS biasanya seperti item-item berikut ini:
1. Server akan mengimplementasikan daemon NFS (dijalankan sebagai nfsd secara default).NFS ini akan berjalan dan memungkinkan data yang di-share tersedia dan bisa diakses oleh client
2. Administrator server berhak menentukan bagian-bagianyang di-share. Semuanya akan diletakkan di file/etc/export command exportfs.
3. Administrator security di server memungkinkan hanya client yang valid yang dapat mengakses file NFS yang di-share.
4. Konfigurasi jaringan memastikan bahwa client bisa mengakses melalui sistem firewall.. Request dari client harus ada untuk mengekspor data, biasanya menggunakan command mount.
6. Jika semua berjalan lancar, user dari client bisa melihat dan berinteraksi dengan file di jaringan seolah-olah berinteraksi di komputer sendiri.
C. Keuntungan dari NFS
Penggunaan NFS tentunya membawa keuntungan bagi organisasi yang mengimplementasikannya , diantaranya :
- Workstation lokal dapat menggunakan space storage yang lebih sedikit karena data yang sering diakses oleh banyak orang atau yang memakan banyak space dapat disimpan dalam NFS Server dan tetap dapat diakses oleh banyak orang.
- Tidak perlu dibuat direktori Home yang terpisah ditiap workstation. Direktori Home untuk setiap user dapat dibuat di NFS Server dan tiap user dapat mengaksesnya melalui jaringan.
- Penggunaan NFS memungkinkan manajemen yang tersentralisasi. Manajemen yang tersentralisasi ini dapat mengurangi pekerjaan administrator dalam melakukan back-up dan menambahkan software yang digunakan banyak orang .
D. Kelemahan NFS
NFS juga memiliki beberapa kelemahan , khususnya dalam hal performa dan keamanan. Sebagai File System yang berbasiskan Network , NFS sangat sensitif terhadap kepadatan jaringan. Trafik tinggi pada jaringan dapat menurunkan performa NFS , begitu juga aktifitas yang tinggi pada storage akan mempengaruhi performa NFS. Pada NFS client terlihat lambat karena proses membaca dan menulis pada storage membutuhkan waktu yang lebih lama. Jika File System yang di ekspor sedang tidak tersedia ketika sebuah client mencoba melakukan mount , sistem dari client akan crash, meskipun permasalahan ini dapat dikurangi dengan menggunakan mount yang spesifik. Dan karena NFS itu tersentralisasi jika storage yang di-mount oleh berbagai client tiba-tiba crash karena suatu sebab , maka tidak akan ada yang dapat mengakses storage tersebut.
NFS juga memiliki permasalahan dalam keamanannya, karena NFS didesain dengan asumsi jaringannya itu aman. Kelemahan utama dari keamanan dari NFS ialah NFS itu berdasarkan RPC , yang tidak lain merupakan target utama dari serangan. Hal ini dapat menyebabkan informasi yang seharusnya tidak di-mount menjadi terekspos di internet yang berada di dalam Firewall maupun diluar. Meskipun berada di dalam Firewall , menyediakan akses ke seluruh user untuk semua file memberikan resiko yang lebih tinggi dibandingkan dengan keuntungan yang didapat. Oleh karena itu seorang Administrator Sistem harus jeli dalam membatasi akses user dan permission untuk file-file tertentu pada direktori atau file system yang di-mount. NFS juga memiliki fitur yang berpotensial meningkatkan resiko keamanan. Contohnya jika root user di suatu client melakukan mount pada NFS export, maka diharapkan root pada client tidak memiliki hak sebagai root pada file system yang di mount. Secara default, NFS telah mencegahnya dengan prosedur yang dinamakan root squashing , namun apabila tidak hati-hati bisa saja seorang Administrator menghapus prosedur tersebut.
E. Cara Kerja NFS
Ketika client ingin mengakses suatu file melalui NFS , kernel melakukan RPC(Remote Procedure Call) melalui TCP/UDP ke nfsd (NFS daemon) pada server. RPC ini menggunakan file handle , nama file atau direktori yang ingin diakses, dan user id dan grup id dari client sebagai parameter. Parameter ini digunakan untuk menentukkan apakah client berhak mengakses file tersebut. Untuk mencegah user yang tidak berhak membaca dan memodifikasi file , user dan group id harus sama untuk kedua hosts. Setelah akses diberikan , client dapat mengaksesnya seolah – olah file atau direktori berada pada local disk.