Protokol Transfer Berkas (bahasa Inggris: File Transfer Protocol) adalah protokol komunikasi standar yang digunakan untuk mentransfer berkas komputer dari sebuah peladen ke sebuah klien pada jaringan komputer. FTP dibangun pada arsitektur model klien-server menggunakan kontrol terpisah dan koneksi data antara klien dan peladen.[1] FTP pengguna dapat mengotentikasi diri mereka sendiri dengan protokol masuk teks yang jelas, normalnya dalam sebuah bentuk nama panggilan dan kata sandi, tetapi dapat terhubung secara anonim jika peladen dikonfigurasi untuk mengizinkannya. Untuk transmisi aman yang melindungi nama panggilan dan kata sandi, dan mengenkripsi konten, FTP sering kali diamankan dengan SSL/TLS (FTPS) atau diganti dengan SSH File Transfer Protocol (SFTP).
Aplikasi klien FTP pertama adalah program baris perintah yang dikembangkan sebelum sistem operasi memiliki antarmuka pengguna grafis, dan masih dikirim dengan sebagian besar sistem operasi Windows, Unix, dan Linux.[2][3] Banyak klien FTP khusus dan utilitas otomasi telah dikembangkan untuk desktop, peladen, perangkat seluler, dan perangkat keras, dan FTP telah dimasukkan ke dalam aplikasi produktivitas seperti editor HTML dan pengelola berkas.
Sebuah klien FTP biasanya terintegrasi di peramban web, di mana berkas peladen dijelajahi dengan prefix URI "ftp://
". Sepanjang tahun 2021, dua vendor browser web utama menghapus kemampuan ini. Dukungan untuk protokol FTP pertama kali dinonaktifkan di Google Chrome 88 pada Januari 2021,[4] diikuti oleh Firefox 88.0 pada April 2021.[5] Pada Juli 2021, Firefox 90 menonaktifkan FTP sepenuhnya,[6] dan Google mengikutinya di bulan Oktober 2021, menghapus FTP sepenuhnya di Google Chrome 95.[7]
Spesifikasi asli dari Protokol Transfer Berkas ditulis oleh Abhay Bhushan di publikasikan sebagai RFC 114 pada 16 April 1971. Sampai 1980, FTP berjalan pada NCP, pendahulu dari TCP/IP.[8] Protokolnya digantikan oleh sebuah versi TCP/IP, RFC 765 (Juni1980) dan RFC 959 (Oktober 1985), spesifikasi saat ini. Beberapa standar yang diusulkan diubah RFC 959, sebagai contoh RFC 1579 (Februari 1994) mengaktifkan FTP Ramah-Dinding api (mode pasif), RFC 2228 (Juni 1997) mengusulkan ekstensi keamanan, RFC 2428 (September 1998) menambahkan dukungan untuk IPv6 dan mendefinisikan jenis mode pasif baru.[9]
FTP merupakan salah satu protokol Internet yang paling awal dikembangkan, dan masih digunakan hingga saat ini untuk melakukan pengunduhan (download) dan penggugahan (upload) berkas-berkas komputer antara klien FTP dan server FTP. Sebuah Klien FTP merupakan aplikasi yang dapat mengeluarkan perintah-perintah FTP ke sebuah server FTP, sementara server FTP adalah sebuah Windows Service atau daemon yang berjalan di atas sebuah komputer yang merespons perintah-perintah dari sebuah klien FTP. Perintah-perintah FTP dapat digunakan untuk mengubah direktori, mengubah modus pengiriman antara biner dan ASCII, menggugah berkas komputer ke server FTP, serta mengunduh berkas dari server FTP.
Sebuah server FTP diakses dengan menggunakan Universal Resource Identifier (URI) dengan menggunakan format ftp://namaserver
. Klien FTP dapat menghubungi server FTP dengan membuka URI tersebut.
FTP menggunakan protokol Transmission Control Protocol (TCP) untuk komunikasi data antara klien dan server, sehingga di antara kedua komponen tersebut akan dibuatlah sebuah sesi komunikasi sebelum pengiriman data dimulai. Sebelum membuat koneksi, port TCP nomor 21 di sisi server akan "mendengarkan" percobaan koneksi dari sebuah klien FTP dan kemudian akan digunakan sebagai port pengatur (control port) untuk (1) membuat sebuah koneksi antara klien dan server, (2) untuk mengizinkan klien untuk mengirimkan sebuah perintah FTP kepada server dan juga (3) mengembalikan respons server ke perintah tersebut. Sekali koneksi kontrol telah dibuat, maka server akan mulai membuka port TCP nomor 20 untuk membentuk sebuah koneksi baru dengan klien untuk mengirim data aktual yang sedang dipertukarkan saat melakukan pengunduhan dan penggugahan.
FTP hanya menggunakan metode autentikasi standar, yakni menggunakan username dan password yang dikirim dalam bentuk tidak terenkripsi. Pengguna terdaftar dapat menggunakan username dan password-nya untuk mengakses, men-download, dan meng-upload berkas-berkas yang ia kehendaki. Umumnya, para pengguna terdaftar memiliki akses penuh terhadap beberapa direktori, sehingga mereka dapat membuat berkas, membuat direktori, dan bahkan menghapus berkas. Pengguna yang belum terdaftar dapat juga menggunakan metode anonymous login, yakni dengan menggunakan nama pengguna anonymous
dan password yang diisi dengan menggunakan alamat e-mail.
Transfer data dapat dilakukan dalam salah satu dari tiga mode:[10][11]
Sebagian besar klien dan peladen FTP kontemporer tidak mengimplementasikan MODE B atau MODE C; Klien dan peladen FTP untuk sistem operasi mainframe dan komputer mini adalah pengecualian untuk itu.
1. FTP dapat Mempermudah dalam mengunggah data.
2. FTP dapat mentransfer data.
3. Pada FTP online terdapat fasilitas untuk mengupload data ke server dalam jumlah banyak sekaligus jadi tidak satu persatu.
4. Pada FTP dapat melayani tukar-menukar file.
5. FTP merupakan versi paling gres juga dilengkapi dengan seperangkat program audit dan penanganan account.
1. FTP merupakan cara yang tidak aman dalam mentransfer suatu file karena file dikirimkan tanpa di enskripsi terlebih dahulu tetapi melalui clear teks. Mode text yang dipakai untuk transfer data adalah format ASCII atau format binary.
2. Keamanan dan kemudahan penggunaan sering kali berbentrokan dan menjadi dilema para administrator sistem.
3. Desain FTP masih lemah sehingga mengakibatkan tidak terinformasinya para administrator sistem mengenai risiko yang mereka hadapi.
Peramban web paling umum dapat mengambil berkas yang dihosting di server FTP, walaupun mereka tidak dapat mendukung ekstensi protokol seperti FTPS.[13][14] Saat FTP—bukan HTTP—URL disediakan, konten yang dapat diakses di peladen jarak jauh disajikan dengan cara yang mirip dengan yang digunakan untuk konten web lainnya. FireFTP adalah sebuah ekstensi peramban yang dirancang sebagai klien FTP berfitur lengkap, itu dapat dijalankan dengan Firefox pada masa lalu, tapi sekarang direkomendasikan bekerja dengan Waterfox.
Google Chrome menghapus dukungan FTP seluruhnya di Chrome 88.[15] Pada 2019, Mozilla sedang mendiskusikan proposal, termasuk hanya menghapus dukungan untuk implementasi FTP lama yang tidak lagi digunakan untuk menyederhanakan kodenya.[16][17] Pada April 2021, Mozilla merilis Firefox 88.0 yang menonaktifkan dukungan FTP secara default.[18] Pada Juli 2021, Firefox 90 menghentikan dukungan FTP sepenuhnya.[19]
Sintaks URL FTP dijelaskan di RFC 1738, mengambil formulir: ftp://[user[:password]@]host[:port]/[url-path]
(bagian yang diberi tanda kurung adalah opsional).
Sebagai contoh, URL ftp://public.ftp-servers.example.com/mydirectory/myfile.txt mewakili berkas myfile.txt dari direktori mydirectory pada peladen public.ftp-servers.example.com sebagai sumber daya FTP. URL ftp://user001:secretpassword@private.ftp-servers.example.com/mydirectory/myfile.txt menambahkan spesifikasi nama pengguna dan kata sandi yang harus digunakan untuk mengakses sumber daya ini.
Rincian lebih lanjut tentang menentukan nama pengguna dan kata sandi dapat ditemukan di dokumentasi peramban (mis., Firefox[20] dan Internet Explorer[21]). Secara default, sebagian besar browser web menggunakan mode pasif (PASV), yang lebih mudah melintasi tembok api pengguna akhir.
Beberapa variasi telah ada dalam cara peramban yang berbeda menangani resolusi jalur jika terdapat direktori home non-root untuk pengguna.[22]
Pengelola unduhan yang paling umum dapat menerima berkas yang dihosting di peladen FTP, sementara beberapa dari mereka juga memberikan antarmuka untuk mengambil berkas yang dihosting di peladen FTP. DownloadStudio memungkinkan tidak hanya mengunduh berkas dari peladen FTP tetapi juga melihat daftar berkas di peladen FTP.[23]
LibreOffice mendukung pembukaan file dari server FTP, tapi dari perilisan 7.4, fitur ini dilabeli usang, dan pengembang bermaksud untuk menghapusnya di versi mendatang.[24]
Mengakses FTP menggunakan skema nama pengguna dan kata sandi normal untuk memberikan akses.[25] Nama pengguna dikirim ke peladen menggunakan perintah USER, dan kata sandi dikirim menggunakan perintah PASS.[25] Urutan ini tidak terenkripsi "on the wire", jadi mungkin rentan terhadap serangan Sniffing jaringan.[26] Jika informasi yang diberikan oleh klien diterima oleh peladen, peladen akan mengirim sambutan ke klien dan sesi akan dimulai.[25] Jika peladen mendukungnya, pengguna dapat masuk tanpa memberikan kredensial masuk, tetapi peladen yang sama hanya dapat mengotorisasi akses terbatas untuk sesi tersebut.[25]
Hos yang menyediakan layanan FTP dapat menyediakan akses FTP anonim.[27] Pengguna biasanya masuk ke layanan dengan akun 'anonim' (huruf kecil dan huruf besar-kecil sensitif di beberapa peladen FTP) saat diminta nama pengguna. Meskipun pengguna umumnya diminta untuk mengirimkan alamat email mereka alih-alih kata sandi,[28] tidak ada verifikasi yang benar-benar dilakukan pada data yang diberikan.[29] Banyak hos FTP yang tujuannya menyediakan pembaruan perangkat lunak akan mengizinkan akses anonim.[28]
FTPS eksplisit adalah sebuah ekstensi untuk standar FTP yang memungkinkan klien untuk meminta sesi FTP dienkripsi. Ini dilakukan dengan mengirimkan perintah "AUTH TLS". Peladen mempunyai pilihan membolehkan atau menolak koneksi yang tidak meminta TLS. Ekstensi protokol ini didefinisikan dalam RFC 4217. FTPS implisit adalah standar usang untuk FTP yang memerlukan penggunaan koneksi SSL atau TLS. Itu ditentukan untuk menggunakan port yang berbeda dari FTP biasa.
Protokol transfer berkas SSH (secara kronologis yang kedua dari dua protokol disingkat SFTP) mentransfer berkas dan mempunyai set perintah serupa untuk pengguna, tetapi menggunakan protokol Secure Shell (SSH) untuk mentransfer berkas. Tidak seperti FTP, ini mengenkripsi perintah dan data, mencegah kata sandi dan informasi sensitif dikirimkan secara terbuka melalui jaringan. Itu tidak dapat beroperasi dengan perangkat lunak FTP, walaupun beberapa perangkat lunak klien FTP menawarkan dukungan untuk protokol transfer berkas SSH juga.
Protokol transfer berkas Trivial (TFTP) adalah FTP langkah kunci sederhana yang memungkinkan klien untuk mendapatkan berkas dari atau menempatkan berkas ke hos jarak jauh. Satu dari kegunaan utamanya adalah adalah pada tahap awal booting dari jaringan area lokal, karena TFTP sangat mudah untuk diimplementasikan. TFTP tidak memiliki keamanan dan sebagian besar fitur lanjutan ditawarkan oleh protokol transfer berkas yang lebih kuat seperti Protokol Transfer Berkas. TFTP pertama kali distandarisasi pada tahun 1981 dan spesifikasi protokol saat ini dapat ditemukan di RFC 1350.
Protokol transfer berkas Simple (protokol pertama disingkat SFTP), seperti yang didefinisikan oleh RFC 913, diusulkan sebagai protokol transfer berkas (tidak aman) dengan tingkat kerumitan menengah antara TFTP dan FTP. Ini tidak pernah diterima dengan luas di Internet, dan sekarang diberi status Bersejarah oleh IETF. Ini berjalan melalui port 115, dan sering menerima inisialisasi dari SFTP. Ini mempunyai set perintah dari 11 perintah dan mendukung tiga jenis transmisi data: ASCII, binari dan kontinu. Untuk sistem dengan ukuran kata yang merupakan kelipatan 8 bit, implementasi dari binari dan berkelanjutan dan kontinu adalah sama. Protokol ini juga mendukung masuk dengan ID pengguna dan kata sandi, folder hierarkis dan manajemen berkas (termasuk rename, delete, upload, download, download with overwrite, dan download with append).
Berdasarkan Hak Akses:
ftp://user@host.domain
ftp://ftp5.freebsd.org
Secara Global:
1. FTP Server
FTP server adalah komputer server yang memberikan akses FTP ke jaringan local maupun Internet (global). Macam – macam software pembangun FTP server antara lain adalah FTPd, Pro-FTPd, Wu-FTPd, FTPX, Troll-FTPd .
2. FTP Client
FTP client adalah komputer yang meminta koneksi ke FTP server untuk tujuan tukar menukar file. Ada beberapa macam jenis FTP client,
HTTP pada dasarnya memperbaiki bug di FTP yang membuatnya tidak nyaman digunakan untuk banyak transfer singkat seperti biasanya di halaman peramban.
FTP memiliki koneksi kontrol tetap yang memelihara direktori kerja saat ini dan flag lainnya, dan setiap transfer membutuhkan koneksi sekunder melalui data yang ditransfer. Dalam mode "pasif", koneksi sekunder ini dari klien ke server, dimana mode sedangkan pada mode "aktif" default koneksi ini adalah dari peladen ke klien. Pembalikan peran yang nyata ini saat dalam mode aktif, dan nomor port acak untuk semua transfer, itulah mengapa tembok api dan gateway NAT mengalami kesulitan dengan FTP. HTTP adalah kontrol tidak tetap dan multipleks data melalui koneksi tunggal dari klien ke peladen pada nomor port yang dikenal, yang dengan mudah melewati gateway NAT dan mudah dikelola oleh tembok api.
Mengatur sebuah koneksi kontrol FTP cukup lambat karena keterlambatan bolak-balik pengiriman semua perintah yang diperlukan dan menunggu tanggapan, jadi sudah biasa untuk memunculkan koneksi kontrol dan menahannya terbuka untuk beberapa transfer berkas daripada mematikan dan membuat kembali sesi lagi setiap kali. Sebaliknya, HTTP awalnya memutuskan sambungan setelah setiap transfer karena melakukan hal itu sangat murah. Sementara HTTP kemudian memperoleh kemampuan untuk menggunakan kembali koneksi TCP untuk banyak transfer, model konseptual masih permintaan independen daripada sebuah sesi.
Saat FTP mentransfer melalui koneksi data, koneksi kontrol diam. Jika transfer terlalu lama, tembok api atau NAT dapat memutuskan bahwa koneksi kontrol mati dan berhenti melacaknya, memutuskan koneksi secara efektif dan membingungkan unduhan. Koneksi HTTP tunggal hanya diam di antara permintaan dan merupakan hal yang normal dan koneksi semacam itu diperkirakan akan terputus setelah waktu habis.
FTP tidak dirancang untuk menjadi protokol yang aman, dan memiliki banyak kelemahan keamanan.[30] Pada Mei 1999, penulis dari RFC 2577 menjabarkan kerentanan terhadap masalah berikut:
Di bawah ini adalah ringkasan dari balasan kode FTP yang dapat dikembalikan oleh peladen FTP. Kode-kode ini telah di standarisasi dalam RFC 959 oleh IETF. Kode balasannya berupa nilai tiga -digit. Digit pertama digunakan untuk menunjukkan salah satu dari tiga hasil yang mungkin — berhasil, kesalahan, atau untuk menunjukkan kesalahan atau balasan yang tidak lengkap:
Digit kedua menentukan jenis kesalahan:
Digit ketiga dari kode balasan digunakan untuk menyediakan detail tambahan untuk setiap dari katerogi ditentukan oleh digit kedua.
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama net+3
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama tcpip
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama for2
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama tcpip5
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama clark2
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama net+
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama chromestatus2
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama :02
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama tcpip2
<ref>
tidak sah;
tidak ditemukan teks untuk ref bernama tcpip3
Umum | |
---|---|
Perpustakaan nasional | |
Lain-lain |