Protokol Transfer File
Introduction
- Protokol TCP/IP memiliki beberapa aplikasi, terutama yang berhubungan dengan memodifikasi file.
- Ada 2 mekanisme untuk melakukan transfer file, mekanisme yang pertama melakukan pengiriman file dari komputer lain ke komputer lokal, dan mekanisme yang lain adalah menggunakan mekanisme file sistem, dimana ada suatu mekanisme yang memperbolehkan suatu pengguna untuk melakukan perubahan terhadap file yang berada di komputer yang lain.
- Contoh protokol yang menggunakan mekanisme pertama adalah FTP dan TFTP, sedangkan yang menggunakan mekanisme kedua adalah NFS.
- Membuat sebuah koneksi antara klien dan server,
- Untuk mengizinkan klien untuk mengirimkan sebuah perintah FTP kepada server dan
- Mengembalikan respons server ke perintah tersebut
File Transfer Protocol (FTP)
- FTP merupakan protokol standar dengan STD nomer 9. Dijelaskan pada RFC 959 – File Transfer Protocol (FTP) dan diupdate dengan RFC 2228 – FTP security extention.
- Melakukan duplikat file dari komputer yang satu dengan komputer yang lain dengan dapat dilakukan 2 arah. Client dapat mengirim file menuju ke server atau dapat meminta suatu file dari server.
- Untuk mengakses file di server, pengguna diharuskan untuk mengidentifikasikan dirinya terlebih dahulu. Dan server akan melakukan proses authentikasi untuk pengguna tersebut.
- FTP menggunakan koneksi berbasis connection-oriented, sehingga dari kedua sisi harus memiliki koneksi TCP/IP.
Sekilas tentang FTP
- FTP menggunakan TCP sebagai protokol transport. FTP server menerima koneksi pada port 20 dan 21. Diperlukan 2 koneksi, yaitu untuk login dengan menggunakan protokol TELNET, dan yang satunya digunakan untuk transfer file.
- Pada kedua sisi jaringan, aplikasi FTP dilengkapi dengan protocol interpreter (PI), data transfer process (DTP), dan tampilan antar muka.
- Sehingga prinsip kerja protokol FTP adalah, user interface melakukan perintah melalui PI dan dilanjutkan ke sisi server. Untuk melakukan transfer file PI memberikan perintah kepada DTP untuk mengirimkan file
Operasional FTP
Ketika
melakukan FTP, pengguna akan melakukan beberapa atau semua operasional yang
ada, yaitu :
1. Melakukan
koneksi ke host lain
2. Memilah
direktori
3. Melihat
list dari file
4. Memilih
cara transfer file
5. Mentransfer
file
6. Menggunakan
mode passive
7. Menutup
koneksi
Ketika melakukan FTP, pengguna
akan melakukan beberapa atau semua operasional yang ada, yaitu :
Melakukan koneksi ke host lain
Dengan perintah Open dan
memasukkan user dan password dengan perintah User dan Pass.
Memilah direktori
Dengan perintah cd dan
menunjuk ke direktori yang dituju
Melihat list dari file
Dengan perintah dir atau ls
Memilih cara transfer file
Dengan perintah bin atau ascii
Mentransfer file
Dengan perintah get untuk
mengambil file, mget untuk mengambil file dengan jumlah lebih dari 1, put¸mengirim
file, dan mput mengirim file dengan jumlah lebih dari 1.
Menggunakan mode passive
Dengan perintah passive client
yang berada di balik firewall dapat melakukan FTP seolah-olah berasal dari luar
firewall.
Menutup koneksi
Dengan perintah quit, bye, atau
logout
FTP Client Commands (issued by user interface)
Command
|
Description
|
get
filename
|
Retrieve file from server
|
mget
filename*
|
Retrieve multiple files from server*
|
put
filename
|
Copy local file to server
|
mput
filename*
|
Copy multiple local files to server*
|
open
server
|
Begin login to server
|
bye
/ close / exit
|
Logoff server
|
ls
/ dir
|
List files in current remote dir on server
|
lcd
|
Change local directory
|
cd
|
Change remote directory
|
rhelp
/ remotehelp
|
Lists commands the server accepts
|
* Sent to server as multiple command by User Protocol
Interpreter
•
120 Service will be ready shortly
•
200 Command OK
•
230 User login OK
•
331 User name OK; password is needed
•
421 Service not available
•
530 User not logged in
•
552 Requested action aborted; exceeded
storage allocation
- Anonymous FTP adalah model FTP yang tanpa menggunakan authentikasi pada pengguna. Sehingga pengguna siapa pun bisa melakukan transfer, tapi biasanya hanya diperbolehkan untuk mengambil suatu file.
- TFTP dibuat berdasarkan protokol yang sebelumnya disebut dengan Easy File Transfer Protocol (EFTP), yang merupakan bagian dari kumpulan protokol PARC Universal Packet (PUP). Pada awal-awal pengembangan protokol TCP/IP, TFTP merupakan protokol pertama kali yang diimplementasikan dalam sebuah jenis host jaringan, karena memang sangat sederhana
Trivial File Transfer Protocol
(TFTP)
- TFTP merupakan standar protokol dengan STD nomer 33. Dijelaskan pada RFC 1350 – The TFTP Protocol. Dan diupdate pada RFC 1785, 2347, 2348, dan 2349.
- Transfer TFTP adalah transfer file antar disk (disk-to-disk), dengan menggunakan API SENDFILE.
- TFTP menggunkan protokol UDP. TFTP client melakuka inisialisasi dengan mengirim permintaan untuk read/write melalui port 69, kemudian server dan client melakukan negosiasi tentang port yang akan digunakan untuk melakukan transfer file.
Paket TFTP
Opcode
|
Operation
|
1
|
Read request (RRQ)
|
2
|
Write request (WRQ)
|
3
|
Data (DATA)
|
4
|
Acknowledgment (ACK)
|
5
|
Error (ERROR)
|
TFTP Message Formats
RRQ:
klien untuk membuat sambungan untuk membaca data dari server.
WRQ: menulis data dari klien ke server
DATA: Semua byte data yang persis 512 byte panjang kecuali blok terakhir yaitu antara 0 dan 511 byte ... EOF indikator - jika data dalam kelipatan tepat dari 512, pengirim harus mengirimkan satu blok tambahan nol byte. DATA bisa dalam NVTASCII atau oktet (format biner)
ACK: Nomor Blok adalah bidang 2byte berisi jumlah blok yang diterima
WRQ: menulis data dari klien ke server
DATA: Semua byte data yang persis 512 byte panjang kecuali blok terakhir yaitu antara 0 dan 511 byte ... EOF indikator - jika data dalam kelipatan tepat dari 512, pengirim harus mengirimkan satu blok tambahan nol byte. DATA bisa dalam NVTASCII atau oktet (format biner)
ACK: Nomor Blok adalah bidang 2byte berisi jumlah blok yang diterima
TFTP Connection Establishment
Example TFTP Session
FTP vs. TFTP
FTP
|
TFTP
|
menyediakan (minimal) keamanan
melalui prosedur login
|
NO prosedur
login
|
Menyediakan layanan
handal dengan penggunaan TCP
|
menangani transmisi
ulang sendiri karena menggunakan UDP
|
menggunakan dua koneksi
|
menggunakan satu koneksi (berhenti dan
menunggu)
|
menyediakan banyak
perintah
|
hanya dapat membaca dan menulis
file
|
Network File System (NFS)
- SUN Microsystems Network File System (NFS) adalah protokol yang dapat membagi sumber daya melalui jaringan.
- NFS dibuat untuk dapat independent dari jenis mesin, jenis sistem operasi, dan jenis protokol transport yang digunakan. Hal ini dilakukan dengan menggunakan RPC.
- NFS dijelaskan pada RFC 1813 – NFS: NFS Version 3 Protocol dan RFC 3010 – NFS Version 4 Protocol.
NFS
- Awalnya dikembangkan oleh Sun Microsystems
- Sebagai File Sharing antar komputer di jaringan
- Dari sinilah konsep network is computer lahir
- Banyak digunakan sebagai File Server dan juga Diskless Workstation serta File Sharing Server
- Akses terhadap file di server dilakukan secara transparan (user bisa mengakses file remote seperti mengakses file di local disk)
- Menggunakan arsitektur client-server
- Terdapat dua bagian yaitu bagian server dan bagian client yang biasanya akan dipakai oleh user
Konsep NFS
NFS memperbolehkan user yang telah
diijinkan untuk mengakses file-file yang berada di remote host seperti
mengakses file yang berada di lokal. Protokol yang digunakan :
1. Protokol
mount menentukan host remote dan jenis file sistem yang akan diakses dan
menempatkan di suatu direktori
2. Protokol
NFS melakukan I/O pada remote file sistem
3. Protokol
mount dan protokol NFS bekerja dengan menggunakan RPC dan mengirim dengan
protokol TCP dan UDP.
Protokol Mount
- Protokol ini digunakan untuk membuat link dengan cara me-mount pada suatu direktori
- Perintah yang digunakan adalah mount.
Protokol Mount
- Untuk mengakses pengguna harus menjalankan program mount terlebih dahulu, contoh :
#
mount //remote/share /mnt
2.
Peritah tersebut digunakan untuk mengakses
server dengan nama remote dan memiliki direktori yang dibagikan dengan nama
share, kemudian di mount di direktori /mnt pada komputer lokal.
- Setelah selesai menggunakan atau memodifikasi file, pengguna harus melakukan pelepasan dengan perintah umount, contoh :
#
umount /mnt
Protokol NFS
NFS adalah program RPC yang
memberikan I/O kepada remote host, setelah di lakukan permintaan oleh program
mount.
NFS versi 4
Merupakan perbaikan dari versi 3,
dengan beberapa fitur tambahan antara lain :
1. Mengurangi
transfer informasi yang dibutuhkan oleh protokol mount
2. Keamanan
pada layer RPC
3. Mendukung
RPCSEC_GSS
4. Mendukung
kerberos
5. Bentuk
baru dari file handle
6. Gabungan
perintah lookup dan read
7. Mendukung
format file 32bit
Server
- Terdiri dari disk fisik yang berisikan file-system yang di share (export)
- Daemon-daemon yang bertugas melayani request dari client
Client
- Komputer dengan software yang mendukung NFS client
- Melakukan mount terhadap file-system di server yang telah di export sebelumnya
- User yang melakukan mount akan bisa mengakses file-system yang telah diexport tadi seperti mengakses file/direktori secara biasa
Contoh
Keuntungan NFS
- Centralized
- Memudahkan pengaturan
¨ Alokasi
space per user
¨ Jika
digabungkan dengan NIS, maka NFS akan bisa menjadi storage bagi user di dalam
jaringan
Kerugian /Kelemahan
NFS
1. Desain
awal hanya untuk jaringan yang lokal dan tertutup
2. Security
3. Congestion
(Traffic yang tinggi bisa menyebabkan akses lambat)
Konfigurasi Server
1. Desain
2. Implementasi
3. Testing
4. Monitoring
5. Desain
6. Implementasi
7. Testing
8. Monitoring
Mendesain NFS Server
1. Memilih
file system yang akan di export
2. Menentukan
user yang boleh mengakses
3. Menentukan
aturan penamaan dan aturan mount dari client
4. Mengkonfigurasi
server agar sesuai dengan aturan yang sudah dibuat
Apa sebaiknya yang di export ?
- File system yang di shared dan akan digunakan oleh banyak user (contohnya /home, /var/mail, /usr/share, /bin, /usr/bin )
Batasan
1. Hanya
bisa melakukan export local disk dan subdirektorinya atau kita tidak bisa
mengexport suatu file system yang merupakan hasil NFS mount
2. Sub
direktori dari sebuah exported file system tidak bisa diexport kecuali apabila
subdirektori tersebut terletak di disk yang berbeda
Batasan
Diketahui entri didalam /etc/fstab
/dev/sda1 /usr/local ext3 defaults 1 2
Jika di dalam /usr/local terdapat
direktori bernama devtool, maka devtool tidak bisa diexport, /usr/local/devtool
akan bisa diexport jika susunan /etc/fstabnya seperti berikut ini
/dev/sda1 /usr/local ext3
defaults 1 2
/dev/sda2 /usr/local/devtool ext3
defaults 1 2
File-file yang diperlukan
File Konfigurasi dan Status
1. /etc/exports (File
konfigurasi export)
2. /var/lib/nfs/rmtab (Status NFS export)
3. /var/lib/nfs/xtab (Status NFS export)
4. /etc/hosts.allow (security)
5. /etc/hosts.deny (security)
File-file yang diperlukan
File-file daemon
1. rpc.portmap
2. rpc.mountd
3. rpc.nfsd
4. rpc.statd
5. rpc.lockd
6. rpc.rquotad
File-File yang diperlukan
1. /etc/rc.d/init.d/nfs
2. showmount
3. rpcinfo
4. exportfs
/etc/exports
1. Berisikan
file-system yang akan diexport
2. Format:
dir
host(options) host(options)
Dir => File system yang akan diexport
host(options)=> Host yang
diperbolehkan mengakses dir
host(options)=> Options exporting file system
Contoh /exports
/usr/local *.kurtwerks.com(ro)
/home 192.168.0.0/255.255.255.0(rw)
/projects @dev(rw)
/var/tmp 192.168.0.1(rw)
1. /usr/local
akan bisa diakses dari semua host di domain kurtwerks.com dengan atribut
read-only
2. /home
akan bisa diakses dari IP dengan network ID 192.168.0.0 dengan atribut
read-write
3. /projects
bisa diakses dari user yang merupakan anggota NIS (dev) dengan atribut
read-write
4. /var/tmp
hanya bisa diakses dari 192.168.0.1 dengan atribut read-write
Export options
1. ro : export file system
read-only
2. rw : export file system
read-write (bisa diubah)
3. Async : Menggunakan cache
4. Sync : menjalankan disk write sebelum proses
selanjutnya
(lebih lambat)
File Status
/var/lib/nfs/rmtab
Melihat
mount yang dilakukan oleh user
$
cat /var/lib/nfs/rmtab
192.168.0.2:/home:0x00000002
192.168.0.2:/usr/local:0x00000001
/var/lib/nfs/xtab
Melihat file system yang
terexport saat ini
$ cat /var/lib/nfs/xtab
/usr/local
192.168.0.2(ro)
/tmp/foo
192.168.0.2(rw)
/etc/hosts.allow
1. Digunakan
untuk security
2. Memperbolehkan
grup IP tertentu untuk mengakses suatu daemon
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
Semua host bisa
mengakses daemon portmap, lockd, mountd,dan statd
/etc/hosts.deny
1. Sama
dengan /etc/hosts.allow
2. Akan
tetapi di /etc/hosts.deny akan mencatat IP-IP berapa sajakah yang tidak
diperbolehkan mengakses
Daemon pendukung
NFS
1. portmap
memungkinkan NFS client untuk menemukan NFS server yang ada di server
2. mountd
Memproses request mount dari client
3. nfsd
NFS service server
4. Statd
Mencatat dan melakukan log
5. lockd
memulai NFS lock manager
6. rquotad
menyediakan quota file/subdir untuk
client NFS
Urutan menjalankan
daemon
Supaya service
berjalan dengan baik ada baiknya diperhatikan susunan urutan untuk menjalankan
daemon
Memulai Dan
Menjalankan NFS
Command yang harus
dijalankan
1. #/etc/rc.d/init.d/portmap
start (untuk menjalankan RPC)
2. #/etc/rc.d/init.d/nfs
start (untuk menjalankan nfsd)
3. #/etc/rc.d/init.d/nfslock
start (untuk menjalankan logging dan juga mengatur lock)
Menghentikan NFS
Command yang harus
dijalankan
1. #/etc/rc.d/init.d/nfslock
start (untuk menghentikan logging dan juga mengatur lock)
2. #/etc/rc.d/init.d/nfs
start (untuk menghentikan nfsd)
3. #/etc/rc.d/init.d/portmap
stop(untuk mengentikan RPC)
Exportfs
1. Untuk
mengexport file system tanpa harus mengubah /etc/exports
2. Syntax
: exportfs –o options host:directory
3. Aturan
host dan direktori sama dengan aturan pada /etc/exports
4. Mengexport
/home dengan read-write untuk host 192.168.10.10
¨ exportfs
–o rw 192.168.10.10:/home
¨ /home
192.168.10.10(rw) (di /etc/exports)
Exportfs
1. Gunakan
options –v untuk melihat status file system yang diexport
¨ #exportfs
–v
2. Gunakan
options –u untuk menghapus export entri
# exportfs -v -u
192.168.0.*:/home
unexporting
192.168.0.*:/home
unexporting
192.168.0.2:/home from kernel
Menghapus semua /home yang IPnya 192.168.0.*
dari daftar /etc/exports
Contoh NFS Server
1. Suatu
server mengexport 2 file system , yang pertama adalah /home yang terletak di
/dev/hdc1, yang kedua adalah /opt yang terletak di /dev/hdb1, yang
diperbolehkan mengakses adalah network 192.168.0.0/255.255.0.0
2. /etc/exports
akan berisi
/home 192.168.*(rw)
/opt 192.168.*(ro)
3. Start
NFS dengan menjalankan ketiga daemon
#/etc/rc.d/init.d/portmap
start (jika portmap belum jalan)
#/etc/rc.d/init.d/nfs
start
#/etc/rc.d/init.d/nfslock
start
Contoh NFS Server
1. Gunakan
rpcinfo –p untuk melihat apakah daemon-daemon portmap, mountd, rquotad, dan nfs
sudah berjalan
2. Gunakan
exportfs untuk melihat semua exported file system
NFS Client
1. NFS
client adalah komputer yang melakukan mount terhadap file system yang sudah
diexport oleh NFS server
2. NFS
client membutuhkan program statd dan lockd yang telah berjalan
3. NFS
client yang sudah melakukan mount akan bisa mengakses remote file system
seperti mengakses file di local disk
NFS Client
1. Mount
juga bisa dilakukan pada waktu startup dengan mengedit /etc/fstab
2. Perintah
mount bisa dilakukan dengan cara
#mount –t nfs
host:directory mountpoint
Sebagai contoh:
#mount –t nfs
192.168.1.10:/home /homeku
Melakukan mount
pada remote filesystem /home di server 192.168.1.10 dan diletakkan pada mount
point /homeku
#mount –t nfs 192.168.2.10:/usr/local /opt
Melakukan mount
pada remote filesystem /usr/local di server 192.168.2.10 dan diletakkan pada
mount point /opt
Contoh pada NFS
client
1. Gunakan
NFS server yang ada dalam bahasan Contoh NFS server
2. Gunakan
showmount untuk melihat export list
¨ #showmount
–e host
3. Siapkan
direktori khusus sebagai mount point
¨ mkdir
/mymount
4. Jalankan
mount arahkan ke /mymount
¨ mount
–t nfs host:/home /mymount
5. Jalankan
df untuk melihat apakah mount sudah berhasil
Contoh NFS Client
1. Selain
menggunakan perintah mount secara manual, NFS client bisa dikonfigurasi secara
otomatis ketika PC menyala dengan menambahkan entri mount di /etc/fstab
2. Contoh
kasus pada halaman sebelumnya : entri berikut ini bisa ditambahkan di
/etc/fstab
host:/home mymount nfs 0 0
Komentar
Posting Komentar