RSS

Berbagi Data di Jaringan dengan Samba dan NFS

22 Jun


Komputer yang terhubung di jaringan dapat dengan mudah saling bertukar data dengan komputer lainnya di jaringan melalui fasilitas file sharing. Perbedaan sistem operasi dan besar data juga bukan halangan. Bagaimana caranya? Simak artikel berikut ini.

Sistem operasi Linux cukup kaya akan fasilitas berbagi data (file sha­ring). Hal ini memudahkan pengguna Linux memilih metode yang sesuai dengan kebutuhannya. Sebagai contoh, agar data di sistem Linux bisa diakses oleh Windows atau sebalik­nya, pengguna dapat menggunakan fasilitas Samba. Apabila tujuannya adalah berbagi data antarsesama sis­tem Linux (UNIX), tersedia opsi lainnya, yaitu menggunakan fasilitas NFS (Network File Sys­tem).

Pada pembahasan mengenai kedua me­­­tode berbagi data (file sharing) tersebut, seperti biasa, digunakan beberapa aturan standar. Misalnya, penulisan prompt $ yang menunjukkan pe­rintah dikerjakan sebagai user biasa. Sementara itu, penulisan prompt # menunjukkan perintah dilakukan sebagai root. Sebagai ilustrasi sis­tem Windows, digunakan Windows 2003 Server. Adapun untuk keluarga Linux, digunakan distribusi sistem Fedora 9 dan Cent­OS 5.3.

Berbagi file antara Windows dan Linux dengan Samba

Nama Samba mungkin terdengar unik. Nama ini diambil dari protokol milik Windows, yaitu SMB (Server Message Block). Program Samba sendiri terdiri atas server dan client. Logika metode berbagi data ini sederhana. Apabila Windows yang hendak mengakses data di Linux, kita perlu menyiapkan iapkan server Samba di Linux. Sebaliknya, jika data yang diakses ada di Windows, maka digunakan program client Samba di Linux.

Sebelum melangkah lebih jauh, perlu diingat bahwa hak akses, baik share di Sam­ba maupun di Windows native, tergantung pada kombinasi hak akses share dan setting keamanan direktori. Misalnya, kita set suatu share Samba agar bisa ditulisi. Namun, jika user yang login ke Samba tidak memiliki hak tulis pada direktori tersebut di level sistem operasi, user tersebut tidak akan bisa membuat file baru atau menghapus file yang sudah ada.

Kita coba dahulu meng-install dan mengonfigurasi server Samba. Di distro ke­luarga Fedora/Redhat, gunakan perintah seperti pada Tabel 1.

Contoh di atas kebetulan tidak menunjukkan perlunya meng-install paket lain. Selain paket Samba, minimal diperlukan paket samba-common. Paket ini menyediakan file-file (termasuk library) yang dibutuhkan baik bagi program client maupun server Samba.

Sebelum menjalankan server Samba, buka dulu file “/etc/samba/smb.conf” de­ngan text editor. Apabila kita hendak mem­buka akses terhadap direktori /tmp/data, ketik parameter-parameter berikut di file “smb.conf”:
[mydata]
comment = My Data
path = /tmp/data
browseable = yes
public = yes
writable = yes

Selanjutnya, edit juga beberapa baris atas dari “smb.conf” sehingga menjadi:
workgroup = MYGROUP
server string = Samba Server
netbios name = MYSERVER
interfaces = lo eth0
Pastikan dua baris ini tertulis seperti berikut:
security = user
passdb backend = tdbsam
Simpan perubahan yang dilakukan. Untuk memastikan tidak ada kesalahan pemakaian sintaks, periksa dengan perintah testparm:
# testparm /etc/samba/smb.conf

Apabila tidak ada pesan kesalahan dan hanya tampil parameter-parameter yang Anda setting, artinya file konfigurasi sudah benar.

Siapkan juga minimal satu account user yang nantinya dipakai untuk mengakses share Samba. Syaratnya, user account ini harus sudah ada di sistem Linux. Misalkan, kita gunakan user samba-usr:

# smbpasswd -a samba-usr
New SMB password: <masukkan password>
Retype new SMB password: <masukkan password yang
sama sekali lagi>
Added user samba-usr.
Kini aktifkan daemon Samba:
# /etc/init.d/smb start

linux2
Konfigurasi samba Samba dapat dikonfigurasi agar melakukan authentication berdasarkan database lokal, baik menurut domain atau active directory.

Di sini diasumsikan komputer berbasis Linux memakai alamat IP 11.1.1.1, sementara Windows menggunakan alamat  IP 11.1.1.2. Untuk pengujian awal, jalankan Windows Explorer di sistem Windows. Lalu ketik “\\11.1.1.1″ di address bar. Akan muncul kotak dialog yang menanyakan nama user dan password. Nama user yang dimaksud adalah nama user yang diatur dengan perintah smbpasswd sebelumnya (termasuk password-nya).

Apabila semuanya benar, Anda akan melihat nama-nama share di Windows Explorer. Nama share “mydata” akan terlihat di sana. Untuk memastikan bahwa kita benar-benar sukses melihat isi direktori di sistem Linux, cobalah buat sebuah file teks pendek:
$ echo “test samba” >> /tmp/data/test.txt
$ unix2dos /tmp/data/test.txt

Perintah kedua digunakan agar file teks ini bisa terbaca dengan sempurna di Windows.
Kini cobalah beralih ke windows explorer dan klik ganda “mydata”. Akan terlihat file “test.txt”. Klik ganda sekali lagi pada file “test.txt” dan akan nampak tulisan “test samba”. Apabila semuanya berjalan lancar, Anda telah sukses memulai langkah pertama penggunaan Samba!

Beberapa pengguna mungkin merasa lebih nyaman jika bisa mengakses share Samba lewat drive (misal D:, E: dan seterusnya). Untungnya, Windows menyediakan fasilitas ini. Gunakan perintah berikut di window command prompt:
net use g: \\11.1.1.1\mydata /USER:mulyadi

Anda akan diminta memasukkan password. Jika benar, “mydata” untuk selanjutnya bisa diakses sebagai drive g:. Anda bisa mengubah huruf drive ini dengan lainnya, asal belum terpakai. Jika ingin memutus koneksi, gunakan perintah:
net use g: /delete

Agar lebih jelas mengenai opsi-opsi yang kita pakai saat menyunting file smb.conf, berikut ini penjelasannya.

linux3

Mengakses server samba melalui WindowsSetelah memasukkan nama user dan password yang benar, pengguna Windows dapat langsung menelusuri sharing file dari SambaMengakses server samba melalui WindowsSetelah memasukkan nama user dan password yang benar, pengguna Windows dapat langsung menelusuri sharing file dari Samba

[mydata]: ini adalah nama share yang kita pilih. Berdasarkan dokumentasi yang penulis baca, nama share ini terbatas sepanjang 12 karakter jika diakses dari Windows 95/98. Catatan: tidak boleh ada dua atau lebih direktori yang di-share dengan nama yang sama di dalam satu Samba server.
Nama share boleh mengandung spasi. Perhatikan bahwa nama share wajib ditulis di dalam tanda kurung siku “[ ]“.

comment = My Data: komentar dari share yang Anda buat. Anda boleh menuliskan keterangan apapun di sini.
path = /tmp/data: tentukan nama direktori yang hendak Anda buka aksesnya di sini.

browseable = yes: opsi ini menentukan apakah nama share yang Anda buat terlihat saat windows explorer menampilkan daftar nama share di komputer yang dituju. Sebuah cara sederhana untuk me­nyem­bunyikan data.
public = yes: artinya mengizinkan user mengakses share tanpa perlu login. Hak akses nantinya akan menggunakan nama account yang diasumsikan sebagai “guest”.

Pada mode “security = user”, dari pemeriksaan yang telah dilakukan, hal ini tidak berefek. Dengan kata lain, user yang digunakan tetap sama dengan user yang digunakan untuk login ke Samba

writeable = yes: mengizinkan user untuk menulis ke dalam direktori yang di share. Tentu saja, mengaktifkan mode ini saja tidak cukup. Di sistem Linux itu sendiri, user juga harus memiliki hak “write” pada direktori yang dimaksud.

Berikutnya, lanjutkan pada penjelasan opsi yang terkait identitas dan mekanisme Samba:
workgroup = MYGROUP: Ini adalah identitas group server Samba yang ingin digabungkan. Dalam terminologi sistem Windows, beberapa komputer bersatu dan bisa mengakses satu sama lain secara lang­sung jika tergabung dalam satu group.

server string = Samba Server: sekadar informasi yang menerangkan soal server Samba kita. Tulislah informasi secukupnya di sini

netbios name = MYSERVER: nama yang kita berikan untuk server Samba. Menurut acuan Wikipedia (http://en.wikipedia.org/wiki/NetBIOS), Anda terbatas hanya bisa mem­berikan nama sampai dengan 16 karakter.
Catatan: tidak boleh ada dua atau lebih server Samba yang memiliki nama NetBIOS yang sama atau menyamai nama server Windows dalam satu domain atau workgroup.

interfaces = lo eth0: di sini Anda tentukan Samba bisa diakses lewat interface network mana saja. Secara default, Samba akan aktif pada semua interface jaringan aktif yang Anda miliki. Dengan opsi ini, Anda bisa membatasi lewat interface mana saja Samba bisa diakses.

Untuk setting keamanan, ada dua opsi yang kita pakai:
security = user: user akan divalidasi berdasar database user yang direferensi oleh Samba. Kemungkinan nilainya adalah share, user, server, domain, dan ads.

Domain digunakan jika Samba ingin merujuk pada sebuah domain controller yang dikendalikan sistem Windows. Sementara itu, ads digunakan untuk merujuk pada sistem Active Directory yang bia­sanya juga bisa dihosting di Windows.

passdb backend = tdbsam: opsi ini menentukan metode penyimpanan database user yang dikenali oleh Samba. Pilihannya adalah smbpasswd, tdbsam, dan ldapsam. smbpasswd saat ini disarankan tidak dipakai karena hanya untuk kompatibilitas dengan versi-versi Samba terdahulu.

Pilihan terbaik dan paling sederhana adalah dengan menggunakan tdbsam, seperti yang kita gunakan pada contoh ini. Sementara itu, ldapsam memungkinkan Anda dapat terhubung pada database LDAP (Lightweight Directory Access Protocol)

Sekarang kita coba untuk mengakses share Windows dari Linux. Ada dua cara yang dapat dilakukan:

1.Menggunakan program smbclient. Program ini bersifat command line, artinya kita mengakses file dan melakukan aktivitas lainnya dengan mengetik pe­rintah-perintah.

2.Melakukan mount dengan mode filesystem cifs. Share Windows agar bisa diakses layaknya direktori lokal.

Catatan: Sistem Windows 2003 yang dipakai diasumsikan bekerja sebagai stand alone server, bukan Active Directory pada Domain Controller. Hal ini untuk memudahkan ilus­trasi dalam artikel ini.

Buatlah terlebih dahulu sebuah direktori dan lakukan share. Penulis terlebih dahulu login sebagai Administrator, lalu membuat direktori baru bernama “wintest”. Direktori ini lalu di-share dengan nama “wintest”. Untuk percobaan ini, tentukan permission-nya menjadi hanya read untuk Everyone. Di bagian Security, kita terima nilai default-nya.

Pastikan share telah aktif dengan melihat adanya simbol bertanda tangan menengadah di bawah lambang folder. Untuk pengujian, Anda pun dapat membuat sebuah file teks. Di sini penulis membuat file bernama “test-win.txt” dengan isi “Test Windows”. Selanjutnya pada prompt, ketik:

Mount NFS Lewat perintah showmount, Anda dapat mengetahui direktori apa saja yang di-share di suatu komputer. Ingat, aktifkan sebelumnya service-service RPC yang ada.Mount NFS Lewat perintah showmount, Anda dapat mengetahui direktori apa saja yang di-share di suatu komputer. Ingat, aktifkan sebelumnya service-service RPC yang ada.

$ smbclient  -U Administrator  \\\\11.1.1.2\\wintest
Perhatikan jumlah tanda backslash  di atas. Ada empat (4) backslash di depan alamat IP dan dua di depan nama share. Ini dilakukan untuk escape tanda backslash, sehingga terbaca apa adanya, bukan diterjemahkan secara lain oleh shell.

Cara lain yang dapat dilakukan tanpa kesan rumit adalah dengan menggunakan tanda petik tunggal:

$ smbclient  -U Administrator  ‘\\11.1.1.2\wintest2’
Berikutnya, masukkan password Admi­nistrator dan Anda siap menjelajah:
Enter Administrator’s password:  <masukkan password>
Domain=[MYSERVER] OS=[Windows Server 2003 3790
Service Pack 1] Server=[Windows Server 2003 5.2]
smb: \>
Ketik perintah ls untuk menampilkan output seperti berikut ini.
smb: \> ls
.                                   D        0  Wed Apr 14 00:24:34
2010
..                                  D        0  Wed Apr 14 00:24:34
2010
test-win.txt                        A       12  Wed Apr 14
00:24:54 2010
65393 blocks of size 32768. 11182 blocks
available
Ingin membaca isi file teksnya secara lang­sung? Tidak perlu men-download-nya, cukup gunakan perintah:
smb: \> more test-win.txt
getting file \test-win.txt of size 12 as /tmp/smbmore
.HLgskj (0.2 kb/s) (average 0.2 kb/s)

Test Windows

Anda tidak harus “berhadapan” dengan file teks. Untuk itu, Anda perlu men-download file target ke sistem Linux lokal. Ada dua perintah yang bisa dipakai disini. Perintah Get untuk men-download satu file tunggal, dan perintah mget yang berguna untuk men-download beberapa file sekaligus.

Contohnya:
smb: \> prompt OFF
smb: \> mget *
getting file \test-win.txt of size 12 as test-win.txt
(0.4 kb/s) (average 0.4 kb/s)

Perintah “prompt” digunakan agar saat kita men-download file menggunakan mget, tidak muncul konfirmasi yang menanyakan apakah benar kita ingin men-download suatu file atau tidak. Namun jika Anda ingin konfirmasi, Anda bisa bisa aktifkannya kembali dengan menggunakan perintah “prompt ON”.
Bagaimana dengan perintah mount? Contoh perintahnya sebagai berikut:
# mount -t cifs -o user=Administrator ‘//11.1.1.2/wintest’
/media/windows/

Direktori /media/windows harus sudah dibuat terlebih dahulu. Sementar itu, nama user di Windows disebutkan sebagai argumen dari parameter -o. Yang harus diingat adalah tipe mount (-t) sebagai cifs. Kini Anda bisa mengakses share “wintest” lewat direktori /media/windows.

Bertukar data antara sistem Linux (UNIX) dengan NFS
Sekarang kita beranjak pada sistem pertukaran data berbasis NFS (Network File System). Secara sederhana, pada NFS, Anda mengekspor suatu direktori di suatu PC dan PC lainnya melakukan mount. Hasilnya, direktori di mesin remote bisa diakses layaknya kita membaca direktori lokal. Agak berbeda dengan Samba, NFS memiliki konfigurasi yang lebih sederhana. Pertukaran data antar-sistem UNIX umumnya menggunakan metode NFS. Untuk sistem di luar UNIX, misalnya Windows, diperlukan software tambahan yang biasanya tidak dikemas menjadi satu dalam paket setup sistem operasinya.

Kita mulai dengan setting di server. Di sini digunakan distro CentOS dengan IP 192.168.1.2. Sementara client-nya adalah distro Fedora dengan IP 192.168.1.1. Pastikan dua paket ini telah di-install dengan benar di server dan client:
# rpm -qa | grep nfs
nfs-utils-lib-1.0.8-7.2.z2
nfs-utils-1.0.9-40.el5
Jika belum ada, instalasi bisa dilakukan misalnya lewat yum:
# yum install nfs-utils

Kita misalkan direktori yang akan dibuka aksesnya adalah /opt/data. Buka file “/etc/exports” dengan text editor, lalu ketik baris berikut ini.

/opt/data    *(rw)
Maksud dari opsi di atas adalah kita membuka akses /opt/data untuk komputer tanpa batasan alamat IP. Opsi rw berarti mengizinkan baca tulis. Lalu jalankan daemon NFS:

# /etc/init.d/nfs start
# /etc/init.d/nfslock start
Di sisi client, aktifkan dulu service-service berikut ini.
# /etc/init.d/rpcbind start
#/etc/init.d/rpcgssd start
# /etc/init.d/rpcidmapd start
# /etc/init.d/rpcsvcgssd start
Akhirnya, kita lakukan mount:
# mount -t nfs 192.168.1.2:/opt/data /media/nfs/

Ganti direktori /media/nfs dengan direktori lain tempat Anda hendak mengakses data. Perhatikan format sumber, yaitu <alamat IP atau nama host>:<nama direktori yang di export>. Pastikan juga tipe filesystemnya adalah NFS.

 
3 Komentar

Ditulis oleh pada 22 Juni 2011 in System, Tips and Trick

 

3 responses to “Berbagi Data di Jaringan dengan Samba dan NFS

  1. Zoel

    13 Oktober 2011 at 6:26 AM

    makasih banget, bro
    berguna banget untuk gue yang sangat pemula mengenal Linux
    thx 😀

     
    • icalredhat

      13 Oktober 2011 at 11:38 AM

      sama-sama mas
      makasih dah ngunjungin blog ane mas, . .

       
  2. Hafidz Zeind

    20 September 2012 at 11:42 AM

    misi gann..
    bisa bantu gak, salah satu contoh perusahaan yang menggunakan jaringan yang agann buat di blog itu apa yah kira-kira perusahaannya .
    terimakasih.

     

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: