Pengertian FTP
File
Transfer Protocol (FTP) adalah protokol yang berfungsi untuk tukar-menukar
file dalam suatu network yang menggunakan TCP koneksi bukan UDP.
Dalam FTP harus ada FTP Server dan FTP Client.
FTP
Server adalah suatu server yang menjalankan software yang
memberikan layanan tukar menukar file dengan selalu siap memberikan layanan FTP
apabila mendapat request dari FTP client.
FTP
Client adalah computer yang merequest koneksi ke FTP server
untuk tukar menukar file. Jika terhubung dengan FTP server, maka client dapat
men-download, meng-upload, merename, men-delete, dll sesuai dengan izin yang
diberikan oleh FTP server.
Keamanan
FTP
FTP
sebenarnya tidak aman dalam mentransfer suatu file karena file dikirimkan tanpa
di-enkripsi terlebih dahulu tetapi bila menggunakan SFTP (SSH
FTP) yaitu FTP yang berbasis pada SSH atau menggunakan FTPS (FTP
over SSL) sehingga data yang akan dikirim dienkripsi terlebih
dahulu.
Mode Dalam FTP
FTP
biasanya menggunakan dua buah port untuk koneksi yaitu port 20
dan port
21 dan berjalan exclusively melalui TCP bukan UDP. FTP server
mendengar pada port 21 untuk incoming connection dari FTP client. Biasanya port
21 adalah command port dan port 20 adalah data port. Pada FTP server, terdapat
2 mode koneksi yaitu aktif mode (active mode) dan pasif mode
(passive mode).
§
Active Mode
Pada aktif mode ini, server secara aktif terhubung
dengan client. Untuk melakukan pengaturan aktif mode, client mengirimkan sebuah
port command ke server, menentukan alamat dan nomor port dari client yang
sedang mendengar. Bila suatu koneksi diperlukan, server memulai suatu koneksi
ke client di alamat ini. Secara umum, server bertanggung jawab untuk menutup
koneksi-koneksi ini.
§
2. Passive Mode
Pada pasif mode, client memulai koneksi dengan server
dengan memecahkan permasalahan dalam firewall penyaring koneksi port data ke
client menuju server. Pertama, client menghubungi server pada command port dan
mengeluarkan perintah PASV. Server kemudian memberikan jawaban dengan
port 2024, memberitahu client bahwa port tersebut sedang mendengarkan untuk
koneksi data. Kemudian, client memulai koneksi data dari data port-nya ke data
port yang telah ditentukan oleh server.
Contoh aplikasi FTP server :
§
Proftpd
§
Vsftpd
§
Wuftpd
§
IIS (didalamnya terdapat FTP Server)
Contoh aplikasi FTP client
§
CuteFTP, Wget
§
WsFTP
§
GetRight
§
AbsoluteFTP
Perintah
FTP
Perintah-perintah
FTP yang dikirimkan terdiri atas string teks sederhana. Sebagai contoh, untuk
mendapatkan kembali file, client mengirimkan “RETR filename” di
koneksi kendali ke FTP server. Untuk mentransfer file, client mengirimkan “STOR filename”.
FTP server mengetahui setiap perintah pada setiap balasan FTP, dimana terdiri
atas tiga digit. Digit pertama menandai adanya tanggapan yang baik, tidak baik,
atau yang tidak sempurna. Jika satu kesalahan terjadi, maka digit kedua
digunakan untuk mendeteksi kesalahan yang terjadi. Dengan cara yang sama, digit
ketiga digunakan untuk lebih menspesifikasikan kesalahan yang terjadi. Digit
pertama merupakan digit yang paling utama, dan kemungkinan nilai yang muncul
adalah sebagai berikut :
·
1yz Positive Preliminary reply.
Permintaan diketahui, namun balasan lain dari client tetap diharapkan
·
2yz Positive Completion reply.
Permintaan sukses dilakukan, sehingga client dapat mengirim permintaan lain
·
3yz Positive Intermediate reply.
Perintah telah diterima, namun masih membutuhkan informasi yang lain. Client
diharuskan untuk mengirimkan balasan perintah lainnya
·
4yz Transient Negative reply.
Perintah gagal, namun masih ada kesempatan untuk mencobanya lagi
·
5yz Permanent Negative Completion reply.
Perintah gagal, namun tidak harus diulangi lagi
Contoh perintah FTP :
·
Untuk mengubah direktori yang dikirimkan oleh client :
CWD namadirektori
Server
akan merespon dengan :
250 CDW command
successful
Sebagai
balasan, dimulai dengan a ’2’, dimana urutan perintah diselesaikan.
·
Bila ingin merubah salah satu direktori dan itu tidak
ada, maka perintahnya :
CWD
namadirektoriyanghilang
Server
akan merespon dengan :
550
namadirektoriyanghilang : The system cannot find the file spesified
Balasannya ialah a ‘5’, berarti gagal dan tetap gagal
jika diulangi (kecuali direktori hilang diciptakan di server).
·
Sesi Perintah (Session Commands)
Untuk memulai sesi perintah FTP, maka perintah dari
USER yang dikirimkan ke server adalah :
USER chafid
Server akan memberikan balasan :
331 Password required
for javaftp
Client harus memberikan balasan dengan mengisi
password :
PASS 123456
Server akan memberikan balasan :
230 User chafid logged
in
Setelah login user dapat menggunakan perintah yang
berhubungan dengan direktori dan file. Untuk mengakhiri, client mengirimkan
perintah sebagai berikut :
QUIT
Server akan memberikan balasan :
221
Sesi akhirnya ditutup, sehingga perintah apapun yang
dikirimkan sudah tidak diterima lagi.