Apa itu server FTP. Fitur protokol FTP Cara kerja ftp

Layanan arsip FTP.

Arsip FTP adalah salah satu sumber informasi utama di Internet. Faktanya, ini adalah tempat penyimpanan terdistribusi teks, program, foto dan informasi lainnya yang disimpan sebagai file di berbagai komputer di seluruh dunia.

Informasi dalam arsip FTP dibagi menjadi tiga kategori: Informasi yang dilindungi, mode aksesnya ditentukan oleh pemiliknya dan diizinkan berdasarkan perjanjian khusus dengan konsumen. Jenis sumber daya ini mencakup arsip komersial (misalnya, versi komersial program dalam arsip ftp.microsoft.com), sumber daya non-komersial nasional dan internasional yang tertutup (misalnya, pekerjaan pada proyek internasional CES atau IAEA), informasi non-komersial swasta dengan rezim akses khusus (misalnya, yayasan amal swasta). Sumber informasi dengan penggunaan terbatas, yang mencakup, misalnya, program kelas shareware. Kelas ini mungkin mencakup sumber daya dengan penggunaan terbatas atau durasi terbatas. Sumber informasi yang didistribusikan secara bebas atau freeware, jika kita berbicara tentang perangkat lunak. Sumber daya ini mencakup segala sesuatu yang dapat diperoleh secara bebas secara online tanpa registrasi khusus. Ini bisa berupa dokumentasi, program, atau apa pun. Perlu dicatat bahwa perangkat lunak yang didistribusikan secara bebas tidak memiliki sertifikat kualitas, namun pengembangnya terbuka untuk berbagi pengalaman.

Dari sumber daya yang tercantum di atas, yang paling menarik adalah dua kategori terakhir, yang biasanya diformat sebagai arsip FTP.

Teknologi FTP dikembangkan sebagai bagian dari proyek ARPA dan dimaksudkan untuk pertukaran informasi dalam jumlah besar antar mesin dengan arsitektur berbeda. Fokus desainnya adalah memastikan transmisi yang andal, jadi dari perspektif modern, FTP tampaknya dipenuhi dengan fitur-fitur mubazir yang jarang digunakan. Inti dari teknologi ini adalah protokol FTP.

protokol FTP.

FTP (File Transfer Protocol, atau “Data Transfer Protocol”) adalah salah satu protokol tertua di Internet dan termasuk dalam standarnya. Spesifikasi FTP pertama berasal dari tahun 1971. Sejak itu, FTP telah mengalami banyak modifikasi dan memperluas kemampuannya secara signifikan. FTP dapat digunakan baik dalam program pengguna maupun sebagai utilitas sistem operasi khusus.

FTP dirancang untuk memecahkan masalah berbagi akses ke file di host jarak jauh, penggunaan sumber daya komputer jarak jauh secara langsung atau tidak langsung, memastikan independensi klien dari sistem file host jarak jauh, dan transfer data yang efisien dan andal.

Pertukaran data dalam FTP terjadi melalui saluran TCP. Pertukaran ini didasarkan pada teknologi client-server. FTP tidak dapat digunakan untuk mentransfer data rahasia karena tidak memberikan keamanan untuk informasi yang ditransfer dan mentransfer teks yang jelas antara server dan klien. Server FTP mungkin memerlukan klien FTP untuk mengautentikasi (yaitu, pengguna FTP akan diminta memasukkan ID dan kata sandinya saat bergabung dengan server). Namun, kata sandi dan ID pengguna akan dikirimkan dari klien ke server dalam bentuk teks yang jelas.

Model operasi FTP.

Model paling sederhana tentang cara kerja protokol FTP ditunjukkan pada Gambar 1. Dalam FTP, koneksi dimulai oleh penerjemah protokol pengguna. Pertukaran dikendalikan melalui saluran kontrol dalam standar protokol TELNET. Perintah FTP dihasilkan oleh penerjemah protokol pengguna dan dikirim ke server. Respons server juga dikirim ke pengguna melalui saluran kontrol. Secara umum, pengguna mempunyai kemampuan untuk menjalin kontak dengan juru bahasa protokol server dan dengan cara selain juru bahasa protokol pengguna.

Perintah FTP menentukan parameter saluran transfer data dan proses transfer itu sendiri. Mereka juga menentukan sifat pekerjaan dengan sistem file jarak jauh dan lokal.

Sesi kontrol menginisialisasi data link. Saat mengatur saluran transmisi data, urutan tindakannya berbeda, berbeda dengan mengatur saluran kontrol. Dalam hal ini, server memulai pertukaran data sesuai dengan parameter yang disepakati dalam sesi manajemen.

Saluran data dibuat untuk host yang sama dengan saluran kontrol yang melaluinya saluran data dikonfigurasi. Saluran data dapat digunakan untuk menerima dan mengirimkan data.

Algoritma pengoperasian protokol FTP adalah sebagai berikut:

Server FTP menggunakan TCP port 21 sebagai kontrol koneksi yang selalu dalam keadaan menunggu koneksi dari pengguna FTP. Setelah koneksi kontrol dibuat antara modul "User Protocol Interpreter" dan modul server - "Server Protocol Interpreter", pengguna (klien) dapat mengirim perintah ke server. Perintah FTP menentukan parameter koneksi transfer data: peran peserta koneksi (aktif atau pasif), port koneksi (untuk modul “Program Transfer Data Pengguna” dan untuk modul “Program Transfer Data Server”), ketik transfer, jenis data yang ditransfer, struktur data dan arahan kontrol yang menunjukkan tindakan yang ingin dilakukan pengguna (misalnya, menyimpan, membaca, menambah atau menghapus data atau file, dll.). Setelah semua parameter saluran transmisi data disepakati, salah satu peserta koneksi, yang bersifat pasif (misalnya, “Program Transfer Data Pengguna”), berada dalam mode siaga untuk membuka koneksi ke port yang ditentukan untuk transmisi data . Setelah ini, modul aktif (misalnya, “Program Transfer Data Server”) membuka koneksi dan memulai transfer data. Setelah transfer data selesai, koneksi antara "Program Transfer Data Server" dan "Program Transfer Data Pengguna" ditutup, namun koneksi kontrol "Penerjemah Protokol Server" dan "Penerjemah Protokol Pengguna" tetap terbuka. Pengguna, tanpa menutup sesi FTP, dapat membuka kembali saluran transfer data.

Ada kemungkinan bahwa data dapat ditransfer ke mesin ketiga. Dalam hal ini, pengguna mengatur saluran kontrol dengan dua server dan saluran data langsung di antara keduanya. Perintah kontrol dikirim melalui pengguna, dan data dikirim langsung antar server. Saluran kontrol harus terbuka saat mentransfer data antar mesin. Jika tidak, jika ditutup, transfer data akan terhenti. Koneksi ke dua server ditunjukkan pada Gambar 2.

Algoritme ini berfungsi ketika menghubungkan dua server FTP, yang keduanya tidak terletak di host lokal pengguna:

Modul "User Protocol Interpreter" menginstruksikan modul server "Server Protocol Interpreter 1" untuk bekerja dalam mode pasif, setelah itu modul "Server Protocol Interpreter 1" mengirimkan alamat dan nomor port (N) kepada pengguna yang akan dia dengarkan. Modul “User Protocol Interpreter” menetapkan modul server 2 “Server Protocol Interpreter 2” sebagai peserta aktif dalam koneksi dan menginstruksikannya untuk mengirimkan data ke host “Server Protocol Interpreter 1” pada port (N). "Penerjemah Protokol Pengguna" mengirimkan perintah "Penerjemah Protokol Server 1" untuk "menyimpan data yang diterima dalam file ini dan itu", dan "Penerjemah Protokol Server 2" mengirimkan perintah "untuk mentransfer konten ini dan itu file." Aliran data terbentuk antara modul “Server Protocol Interpreter 1” dan “Server Protocol Interpreter 2”, yang dikendalikan oleh host klien. Di bawah ini adalah diagram pengorganisasian transfer data antara dua server FTP, sesuai dengan Gambar 2. Notasi berikut digunakan di sini: User PI - penerjemah protokol pengguna; Server1(2) juru bahasa protokol untuk server1 (server2).

Pengguna PI (U) dan Server1 (S1) Pengguna PI (U) dan Server2 (S2)
U Yu S1: Hubungkan

U L S1: 227 Memasuki Mode Pasif.

A1, A2, A3, A4, a1, a2

U Yu S2 Hubungkan

U Y S2: PELABUHAN A1, A2, A3, A4, a1, a2

UL S2: 200 Oke
U Yu S1 : MENYIMPAN... U Yu S2: KEMBALI...

S1 Yu S2 : Hubungkan...

Dasar transfer data FTP adalah mekanisme untuk membuat koneksi antara port yang sesuai dan memilih parameter transfer. Setiap peserta dalam koneksi FTP harus mendukung port data default. Secara default, “Program Transfer Data Pengguna” menggunakan port yang sama untuk mengirim perintah (sebut saja “U”), dan “Program Transfer Data Server” menggunakan port L-1, di mana “L” adalah port kontrol. Namun, peserta dalam koneksi menggunakan port data yang dipilih oleh "Penerjemah Protokol Pengguna", karena dari proses kontrol yang berpartisipasi dalam koneksi, hanya "Penerjemah Protokol Pengguna" yang dapat mengubah port data dari kedua "Protokol Pengguna Interpreter” dan “User Protocol Interpreter”.Program Transfer Data Server.”

Sisi pasif dari koneksi harus, sebelum perintah “mulai transmisi” diberikan, “mendengarkan” port datanya. Sisi aktif yang mengeluarkan perintah untuk memulai transmisi data menentukan arah pergerakan data.

Setelah koneksi dibuat, transmisi dimulai antara “Program Transfer Data Server” dan “Program Transfer Data Pengguna.” Pada saat yang sama, pemberitahuan tentang penerimaan data dikirimkan melalui saluran "Server Protocol Interpreter" - "User Protocol Interpreter". Protokol FTP mengharuskan koneksi kontrol terbuka saat link data sedang ditransfer. Sesi FTP dianggap ditutup hanya setelah koneksi kontrol ditutup.

Biasanya, server FTP bertanggung jawab untuk membuka dan menutup saluran transfer data. Server FTP harus menutup saluran transfer data secara mandiri dalam kasus berikut:

Server telah selesai mengirimkan data dalam format yang mengharuskan koneksi ditutup. Server menerima perintah dari pengguna untuk “mengakhiri koneksi”. Pengguna telah mengubah pengaturan port data. Koneksi kontrol ditutup. Telah terjadi kesalahan yang membuat transfer data tidak dapat dilanjutkan.

Perintah protokol.

Perintah kontrol kontrol transmisi data yang dipertukarkan antara "Interpreter Protokol Server" dan "Interpreter Protokol Pengguna" dapat dibagi menjadi tiga kelompok besar:

Perintah kontrol akses sistem. Perintah kontrol aliran. Perintah layanan FTP.

Mari kita lihat beberapa tim paling khas dari setiap grup. Di antara perintah kontrol akses sistem, hal berikut harus diperhatikan:

PENGGUNA. Biasanya, perintah ini membuka sesi FTP antara klien dan server. Argumen perintah adalah nama (pengidentifikasi) pengguna untuk bekerja dengan sistem file. Perintah ini dapat dikeluarkan tidak hanya di awal, tetapi juga di tengah sesi jika, misalnya, pengguna ingin mengubah pengidentifikasi atas nama tindakan yang akan dilakukan. Dalam hal ini, semua variabel yang terkait dengan pengidentifikasi lama akan dilepaskan. Jika komunikasi terjadi pada saat pergantian ID, pertukaran diakhiri dengan ID pengguna yang lama.

LULUS. Perintah ini dikeluarkan setelah memasukkan ID pengguna dan berisi kata sandi pengguna sebagai argumen. Izinkan kami mengingatkan Anda bahwa data otentikasi FTP dikirimkan melalui jaringan dalam bentuk teks yang jelas, sehingga pengguna harus mengambil tindakan tambahan untuk memastikan keamanan saluran.

CWD. Perintah ini memungkinkan pengguna untuk bekerja dengan berbagai direktori sistem file jarak jauh. Argumen perintah adalah string yang menunjukkan jalur direktori sistem file jarak jauh tempat pengguna ingin bekerja.

KENDALI. Perintah inisialisasi ulang. Perintah ini menghapus semua variabel pengguna saat ini dan mengatur ulang parameter koneksi. Jika data sedang ditransfer pada saat perintah dikeluarkan, transfer dilanjutkan dan diakhiri dengan parameter yang sama.

BERHENTI. Perintah menutup saluran kontrol. Jika data sedang dikirim ketika perintah dikeluarkan, saluran ditutup setelah transmisi data berakhir.

Perintah kontrol aliran mengatur parameter untuk transfer data. Semua parameter yang dijelaskan oleh perintah ini memiliki nilai default, sehingga perintah kontrol aliran hanya digunakan bila diperlukan untuk mengubah nilai parameter transfer default. Perintah kontrol aliran dapat dikeluarkan dalam urutan apa pun, namun semuanya harus mendahului perintah layanan FTP. Perintah kontrol aliran data berikut harus disorot:

PELABUHAN. Perintah tersebut menetapkan alamat dan port host yang akan digunakan sebagai peserta aktif dalam koneksi melalui data link. Argumen perintahnya adalah alamat IP 32-bit dan nomor port koneksi 16-bit. Nilai-nilai ini dibagi menjadi enam bidang 8-bit dan direpresentasikan dalam bentuk desimal: h1, h2, h3, h4, p1, p2, di mana hN adalah byte alamat (tinggi ke rendah) dan pN adalah byte port (tinggi ke rendah).

PASV. Perintah ini dikirim ke modul, yang akan memainkan peran pasif dalam transfer data (“mendengarkan” koneksi). Respons terhadap perintah ini harus berupa baris yang berisi alamat dan port host yang berada dalam mode siaga koneksi dalam format perintah PORT - “h1, h2, h3, h4, p1, p2”.

Perintah TYPE, STRU, MODE masing-masing menentukan jenis data yang dikirimkan (ASCII, Image, dan lainnya), struktur atau format transmisi data (File, Record, Page), dan metode transmisi (Stream, Block, dan lain-lain) . Penggunaan perintah-perintah ini sangat penting ketika membangun komunikasi di lingkungan yang heterogen dan sistem operasi dan file yang sangat berbeda dari host yang berkomunikasi.

Perintah layanan FTP menentukan tindakan yang perlu dilakukan dengan file tertentu. Biasanya, argumen untuk perintah dalam grup ini adalah jalur file. Sintaks jalur yang ditentukan harus memenuhi persyaratan format sistem file dari pengendali perintah. Perintah layanan FTP meliputi yang berikut:

RETR. Perintah ini memberitahu modul Transfer Data Server untuk meneruskan salinan file yang ditentukan oleh parameter perintah ini ke modul Transfer Data di ujung koneksi yang lain.

PENYIMPANAN. Perintah tersebut menginstruksikan modul “Program Transfer Data Server” untuk menerima data melalui tautan data dan menyimpannya sebagai file yang namanya ditentukan oleh parameter perintah ini. Jika file tersebut sudah ada, maka akan diganti dengan yang baru; jika tidak, akan dibuat yang baru.

Perintah RNFR dan RNTO harus mengikuti satu sama lain. Perintah pertama berisi nama file lama sebagai argumen, yang kedua - yang baru. Penerapan perintah ini secara berurutan akan mengganti nama file.

ABOR. Perintah tersebut menginstruksikan server untuk menghentikan pelaksanaan perintah layanan sebelumnya (misalnya, transfer file) dan menutup saluran data.

Perintah DELE menghapus file yang ditentukan.

Perintah MKD dan RMD masing-masing membuat dan menghapus direktori yang ditentukan dalam argumen.

Anda dapat menggunakan perintah LIST dan NLST untuk membuat daftar file dalam direktori tertentu.

Semua perintah protokol FTP dikirim oleh "Penerjemah Protokol Pengguna" dalam bentuk teks - satu perintah per baris. Setiap baris perintah - pengidentifikasi dan argumen - diakhiri dengan karakter . Nama perintah dipisahkan dari argumen dengan karakter spasi - .

Pengendali perintah mengembalikan kode tiga digit untuk memproses setiap perintah. Kode pemrosesan membentuk struktur hierarki tertentu dan, sebagai aturan, perintah tertentu hanya dapat mengembalikan sekumpulan kode tertentu. Kode pemrosesan perintah diikuti oleh karakter spasi - , diikuti dengan teks eksplanasi. Misalnya, baris penyelesaian operasi yang berhasil terlihat seperti ini: "200 Command oke".

Di bawah ini adalah contoh bekerja dengan protokol FTP. Sebutan: S - server, U - pengguna.

S: 220 Layanan siap untuk pengguna baru
U: PENGGUNA Gluk
> S: 331 Nama pengguna oke, perlu kata sandi
U: LULUS gumaman
S: 230 Pengguna login, lanjutkan
U: RETR tes.txt
S: 150 Status file oke; hendak membuka koneksi data

<Идет передача файла...>

S: 226 Menutup koneksi data, transfer file berhasil
U: TIPE I
S: 200 Perintah oke
U: STOR /home/images/first.my
S: 550 Akses ditolak
U: BERHENTI

Protokol TFTP dan SFTP.

Protokol FTP memiliki dua “adik laki-laki”: SFTP - Simple FTP dan TFTP - Trivial FTP.

Protokol TFTP adalah protokol transfer file paling sederhana. Ini berjalan di atas protokol transport UDP dan hanya menyediakan operasi transfer file paling dasar, yaitu menulis dan membaca file. TFTP dirancang untuk menjadi protokol yang sederhana dan mudah digunakan. Itu tidak memungkinkan pemanggilan daftar direktori dan tidak memiliki sarana otentikasi apa pun, tetapi dapat mengirimkan informasi 8-bit sesuai dengan semua standar Internet.

Karena transfer data terjadi melalui UDP, protokol TFTP mengimplementasikan metodenya sendiri untuk pengiriman data yang andal - paket pengakuan, penomoran blok data dan paket pengakuan, dll. Semuanya sangat mirip dengan versi emulasi protokol TCP yang disederhanakan.

TFTP hanya bekerja dengan lima perintah:

Permintaan baca (RRQ) - permintaan untuk membaca. Permintaan tulis (WRQ) - permintaan untuk menulis. Data (DATA) - paket data. Pengakuan (ACK) - konfirmasi. Kesalahan (ERROR) - kesalahan.

Proses transfer data diawali dengan permintaan dari klien TFTP ke server untuk membaca atau menulis file. Koneksi terjalin setelah menerima konfirmasi kesiapan untuk salah satu permintaan, baik menulis atau membaca.

Saat membuka koneksi, masing-masing pihak memilih (secara acak) pengidentifikasi unik - TID, yang juga digunakan oleh UDP sebagai port koneksi. Setiap paket yang diteruskan dikaitkan dengan dua TID yang sesuai dengan masing-masing sisi koneksi. Permintaan awal dikirim oleh pemrakarsa koneksi TF TP ke port UDP 69 (port inisialisasi), yang menentukan port koneksi. Pertukaran lebih lanjut sudah terjadi melalui port yang dipilih oleh peserta transfer data.

Jika server mengizinkan permintaan tersebut, pertukaran dibuka dan file tertentu ditransfer (dalam blok 512-byte). Setiap paket data yang dikirimkan berisi satu blok (512 byte) dan nomor blok dalam aliran yang dikirimkan. Kedatangan setiap blok ke host tujuan harus dikonfirmasi dengan paket ACK (acknowledgment), dengan nomor blok yang diterima. Baru setelah menerima paket konfirmasi barulah paket data berikutnya terkirim.

Jika panjang paket kurang dari 512 byte, ini berfungsi sebagai sinyal untuk menutup saluran komunikasi. Jika suatu paket hilang selama transmisi, setelah jangka waktu tertentu server akan mengirim ulang paket data tersebut.

Tiga jenis situasi yang menyebabkan pengiriman paket yang salah:

Permintaan tidak dikonfirmasi, misalnya file tidak ditemukan, tidak ada hak akses, dll. Format paket salah, misalnya terjadi kesalahan peralihan. Hilangnya akses ke sumber daya yang diperlukan.

Jika terdapat banyak pesan kesalahan, koneksi dapat ditutup atas inisiatif salah satu pihak.

Skema transaksi TFTP adalah sebagai berikut:

Host A mengirimkan permintaan WRQ ke Host B. Port sumber adalah TIDA, port tujuan adalah 69. Paket berisi nama file, jenis transfer. Host B mengirimkan ACK (nomor blok - 0) ke host A. Port sumber adalah TIDB, port tujuan adalah TIDA. Host A mengirimkan (melalui koneksi TIDA ke TIDB) perintah DATA dan blok data. Paket tersebut juga berisi nomor blok.

Protokol transfer file SFTP populer ketika pengguna membutuhkan protokol yang sedikit lebih fleksibel dan dapat diandalkan dibandingkan TFTP dan tidak serumit dan rumit seperti FTP.

SFTP mendukung mekanisme otentikasi pengguna, transfer file, penelusuran direktori, mengubah direktori saat ini, mengganti nama dan menghapus file. Untuk sebagian besar operasi yang dilakukan pengguna dengan server FTP jarak jauh, layanan ini cukup memadai. SFTP dapat membawa aliran data 8-bit dan, seperti TFTP, hanya menggunakan satu saluran koneksi - untuk perintah dan data. Tidak seperti TFTP, SFTP berjalan melalui TCP, port 115.

Perintah SFTP dikirim satu per satu, setelah menerima respon pemrosesan dari perintah sebelumnya. Semua perintah terdiri dari empat karakter ASCII dan karakter spasi yang memisahkan perintah dari argumennya. Respons server terdiri dari kode respons dan pesan teks. Setiap perintah dan tanggapan harus diakhiri dengan simbol (‘

Berbagi data sudah ada sebelum Internet. Namun kemunculan World Wide Web telah memperluas cakupan tugas pertukaran informasi. Protokol FTP adalah yang utama, bersama dengan mail dan www.

Ini menyediakan transfer informasi daripada akses file. Transmisi FTP pada dasarnya tidak aman, namun protokol FTPS, yang beroperasi melalui saluran protokol SSL terenkripsi, memastikan transmisi data aman. Ini memungkinkan Anda untuk melindungi perintah dan data yang dikirimkan.

Deskripsi protokol FTPS

Server FTPS menyediakan sertifikat kunci publik. Mereka biasanya dibuat menggunakan alat Unix atau alat Windows yang diadaptasi seperti OpenSSL.

Setiap sertifikat harus ditandatangani oleh otoritas sertifikat. Jika tidak, klien FTPS akan menghasilkan peringatan.

Data dapat dikodekan pada tingkat tautan (perintah dan/atau data). Protokol FTPS menggunakan dua koneksi:

  • satu mengirimkan data;
  • lainnya adalah perintah ke server dan respons server terhadapnya.

Jika enkripsi berbasis SSL diterapkan, informasi nomor port untuk komunikasi tidak akan tersedia.

Akses FTP adalah penerapan seperangkat aturan yang menjelaskan koneksi komputer dan pengelolaan koneksi, file, dan transfer file.

Protokol mendefinisikan bagaimana komputer yang berbeda dapat secara bersamaan (jarak jauh) menggunakan file di jaringan bersama. Protokol Internet FTP dirancang untuk memungkinkan platform komputasi berbeda yang menjalankan sistem operasi berbeda untuk bertukar jenis file apa pun secara efisien.

Protokol FTPS memungkinkan Anda untuk bertukar file biner dan teks, dan format pengkodean tidak terlalu menjadi masalah. Hal ini penting agar dapat dimengerti oleh pihak pengirim dan penerima.

Pengoperasian server FTPS

Biasanya koneksi melalui FTPS dilakukan dengan menggunakan program khusus, khususnya WinSCP, Far, Total Comander, FileZilla, dll. Jalur koneksinya terlihat seperti ini:

  • Protokol:// Nama@Host: kata sandi@host. ru: 21.

Setiap program yang menyediakan koneksi menawarkan Anda untuk mengisi kolom yang relevan dengan caranya sendiri. Namun untuk koneksi apa pun, Anda perlu mengetahui:

  • nama koneksi (login, nama panggilan);
  • kata sandi untuk koneksi;
  • nama host FTP/FTPS;
  • nomor pelabuhan.

Koneksi anonim melalui FTP/FTPS juga dimungkinkan, tetapi tidak mempunyai arti praktis.

Klien FTPS dapat membuat sambungan ke server dalam mode eksplisit atau implisit.

Dalam kasus pertama, koneksi FTP normal dibuat terlebih dahulu. Untuk mengirim informasi sensitif seperti kata sandi, klien mengirimkan permintaan untuk beralih ke koneksi FTP yang aman. Setelah negosiasi berhasil (SSL), saluran perintah aman dibuat antara pihak-pihak yang terhubung (server, klien).

Dan dalam kasus kedua, klien dan server mulai bertukar data dalam mode aman. Informasi teks ditransmisikan dalam format terenkripsi.

FTP aktif dan pasif

Bekerja dengan server FTP dapat terdiri dari dua jenis:

  1. Aktif. Kemudian transfer informasi dimulai, klien mendengarkan port TCP dan mengirimkan data ke server: di port mana ia mendengarkan. Server membuka koneksi TCP ke port yang ditentukan oleh klien. Data kemudian dikirim melalui koneksi ini.
  2. Pasif. Klien memberi tahu server bahwa ia siap mengirimkan data, dan server mulai memantau port TCP non-khusus, memberi tahu klien yang mana port tersebut. Klien kemudian membuka koneksi TCP ke port yang ditentukan oleh server, dan pertukaran data terjadi melalui koneksi ini.

koneksi FTP

Merupakan kebiasaan untuk menggunakan program khusus yang menyediakan protokol transfer FTP untuk mengakses sumber daya FTP. Namun terkadang Anda perlu mendapatkan kendali penuh atas server dan menggunakan perintah protokol ini sesuai dengan rencana Anda sendiri.

Secara khusus, hal ini dapat dilakukan di lingkungan Windows dengan memasukkan perintah:

  • ftp "Nama Server".

Hasilnya, Anda akan diminta memasukkan nama dan kata sandi yang diketahui server Nama Server. Tentu saja, tidak ada tanda petik atau huruf Rusia pada nama ini. Artinya, ini adalah nama umum untuk sumber daya web yang berfungsi sebagai server FTP.

Perlu diperhatikan bahwa server FTP dapat menyediakan lebih dari satu akses dan memiliki lebih dari satu sumber daya. Biasanya, pasangan nama/kata sandi menyediakan akses ke sistem file tertentu dari arsip file atau situs tertentu.

Secara umum, FTP telah lama digunakan untuk mengakses sistem file situs, dan bukan untuk mengunduh/mengunggah data yang disimpan. Mentransfernya masih relevan, tetapi baru-baru ini alat untuk bekerja dengan situs web semakin dikembangkan yang memungkinkan pengembangan sumber daya web di server lokal dan memastikan sinkronisasi sistem file lokal dengan sistem dengan nama yang sama yang terletak di hosting.

Dalam konteks ini, akses FTP menyediakan akses ke root situs, memungkinkan Anda memanipulasi halamannya: mengedit, menambah, menghapus.

Contoh: Menghubungkan ke server FTP

Dalam contoh ini (latar belakang kuning), perintah ftp dimasukkan pada komputer klien di sistem operasi Windows. Server melaporkan datanya dan meminta Anda memberikan nama pengguna. Dalam hal ini (latar belakang hijau), namanya adalah “SCi_WMiX_22G(a)wmix.isv.by”.

Akses tidak anonim dan server meminta kata sandi. Untuk memeriksanya, setelah koneksi berhasil, masukkan perintah "ls" - lihat direktori saat ini.

Biasanya, protokol jaringan FTP tidak digunakan pada tingkat rendah. Jauh lebih nyaman menggunakan program khusus yang dirancang untuk ini. Hampir semuanya menyediakan koneksi yang nyaman dan aman serta memungkinkan untuk mentransfer/menerima file, membuat folder, menavigasinya, menghapusnya, dan melakukan operasi biasa dengan cara biasa, seperti pada sistem file lokal.

Perintah FTP/FTPS

Protokol FTPS sedang ditingkatkan, sehingga daftar perintah yang tepat dan namanya (diperoleh dari pencarian sumber daya Internet) tidak selalu sesuai dengan alat yang harus Anda gunakan untuk mengakses sumber daya FTP.

Cara terbaik untuk menentukan daftar opsi yang tersedia adalah dengan mengeluarkan perintah bantuan.

Omong-omong, penggunaan protokol FTP tidak aman dari sudut pandang serangan Internet: perintah dan data dikirimkan secara terbuka. Semuanya aman dalam protokol FTPS. Namun, Anda harus ingat bahwa tindakan pengguna tidak memberikan kemampuan untuk melakukan rollback.

Dengan menghapus atau memindahkan file, membuat folder di lokasi yang salah atau dengan nama yang salah, Anda dapat merusak sistem file server FTP. Sebenarnya server tidak bisa rusak. Namun akses yang diberikannya ke sistem file tertentu harus digunakan dengan benar.

    Singkatan FTP berasal dari bahasa Inggris F ile T transfer P rotocol (protokol transfer file) adalah protokol lapisan aplikasi untuk bertukar file melalui protokol transport TCP/IP antara dua komputer, klien FTP dan server FTP. Ini adalah salah satu protokol tertua, namun masih aktif digunakan.

Protokol FTP dirancang untuk memecahkan masalah berikut:

  • mengakses file dan direktori pada host jarak jauh
  • memastikan independensi klien dari jenis sistem file komputer jarak jauh
  • transmisi data yang andal
  • penggunaan sumber daya sistem jarak jauh.
  • Protokol FTP mendukung dua saluran koneksi sekaligus - satu untuk transfer tim dan hasil pelaksanaannya, satu lagi untuk dibagikan data. Dengan pengaturan standar, server FTP menggunakan TCP port 21 untuk mengatur saluran pengiriman dan penerimaan perintah dan TCP port 20 untuk mengatur saluran penerimaan/pengiriman data.

    Server FTP menunggu koneksi dari klien FTP pada port TCP 21 dan, setelah membuat koneksi, menerima dan memproses Perintah FTP, yang merupakan string teks biasa. Perintah tersebut menentukan parameter koneksi, jenis data yang ditransfer, dan tindakan terkait file dan direktori. Setelah menyetujui parameter transmisi, salah satu peserta pertukaran memasuki mode pasif, menunggu koneksi masuk untuk saluran pertukaran data, dan peserta kedua membuat koneksi ke port ini dan memulai transmisi. Setelah transfer selesai, sambungan data ditutup, namun sambungan kontrol tetap terbuka, sehingga Anda dapat melanjutkan sesi FTP dan membuat sesi transfer data baru.

    Protokol FTP dapat digunakan tidak hanya untuk mentransfer data antara klien dan server, tetapi juga antara dua server. Dalam hal ini, klien FTP membuat koneksi kontrol dengan kedua server FTP, mengalihkan salah satunya ke mode pasif, dan yang kedua ke mode aktif, membuat saluran transfer data di antara keduanya.

    Klien FTP adalah program yang terhubung ke server FTP dan melakukan operasi yang diperlukan untuk melihat konten direktori server dan menerima, mentransfer, dan menghapus file atau folder. Program tersebut dapat berupa browser biasa, komponen sistem operasi, atau produk perangkat lunak yang dikembangkan secara khusus, seperti pengelola unduhan yang populer. Unduh Guru atau multifungsi gratis Klien FTP FileZilla.

    Protokol FTP dikembangkan pada masa ketika klien dan server berinteraksi secara langsung, tanpa transformasi perantara paket TCP, dan dalam mode standar, protokol ini mengasumsikan kemampuan untuk membuat koneksi TCP tidak hanya atas inisiatif klien, tetapi juga atas inisiatif klien. inisiatif server dari TCP port 20 ke TCP - port klien, yang nomornya ditransmisikan selama pembuatan sesi data.

    Kenyataan saat ini adalah bahwa koneksi TCP dari server ke klien dalam sebagian besar kasus tidak mungkin, atau sangat sulit untuk diterapkan karena fakta bahwa dalam banyak kasus, teknologi terjemahan alamat jaringan digunakan untuk terhubung ke Internet NAT(Terjemahan Alamat Jaringan) ketika klien tidak memiliki antarmuka jaringan yang tersedia untuk membuat koneksi TCP langsung dari Internet. Diagram khas koneksi Internet standar terlihat seperti ini:

    Koneksi internet dilakukan melalui perangkat khusus - Perute(router dengan fungsi NAT) yang memiliki setidaknya dua port jaringan - satu terhubung ke jaringan penyedia, memiliki antarmuka jaringan dengan alamat IP yang dirutekan (yang disebut "IP putih"), misalnya 212.248.22.144, dan sebuah port dengan antarmuka jaringan untuk menghubungkan perangkat jaringan lokal dengan alamat IP pribadi yang tidak dapat dirutekan, misalnya 192.168.1.1 (“IP abu-abu”). Saat membuat koneksi dari perangkat jaringan jaringan lokal ke node jaringan eksternal, paket IP dikirim ke router, yang melakukan terjemahan alamat dan port sehingga alamat pengirim menjadi alamatnya. alamat IP putih. Hasil terjemahan disimpan dan ketika paket respons diterima, terjemahan alamat terbalik dilakukan. Dengan demikian, router memastikan penerusan paket TCP/IP dari perangkat jaringan lokal mana pun ke jaringan eksternal dan penerusan kembali paket respons yang diterima. Namun dalam kasus di mana paket yang tidak terkait dengan paket respons TCP diterima pada input antarmuka jaringan yang terhubung ke jaringan penyedia, opsi reaksi berikut dimungkinkan untuk perangkat lunak router:

    Paket diabaikan karena tidak ada layanan jaringan yang memprosesnya.

    Paket diterima dan diproses oleh layanan jaringan router itu sendiri, jika layanan tersebut ada dan menunggu koneksi masuk (“mendengarkan”) pada port yang nomornya ditunjukkan dalam paket yang diterima.

    Paket diteruskan ke server di jaringan lokal yang mengharapkan jenis koneksi masuk ini sesuai dengan aturan pemetaan port yang ditentukan dalam pengaturan router.

    Oleh karena itu, saat ini, mode operasi utama yang menggunakan protokol FTP telah menjadi apa yang disebut “mode pasif”, di mana koneksi TCP dibuat hanya dari klien ke port TCP di server. Mode aktif digunakan jika memungkinkan untuk menghubungkan TCP dari server ke port klien, misalnya, ketika keduanya berada di jaringan lokal yang sama. Mode koneksi FTP dipilih menggunakan perintah khusus:

    PASV- klien mengirimkan perintah untuk melakukan pertukaran data dalam mode pasif. Server akan mengembalikan alamat dan port yang perlu Anda sambungkan untuk menerima atau mengirimkan data. Contoh fragmen sesi FTP dengan set mode pasif:

    LULUSV- perintah untuk beralih ke mode pasif yang dikirimkan oleh klien FTP ke server FTP

    227 Memasuki Mode Pasif (212,248,22,144,195,89)- Respon server FTP, dimana 227 adalah kode respon, pesan teks tentang peralihan ke mode pasif dan dalam tanda kurung alamat IP dan nomor port yang akan digunakan untuk membuat saluran transmisi data. Alamat dan nomor port ditampilkan sebagai angka desimal yang dipisahkan dengan koma. 4 angka pertama adalah alamat IP (212.248.22.144), 2 angka sisanya menunjukkan nomor port, yang dihitung dengan rumus - angka pertama dikalikan 256 dan angka kedua ditambahkan ke hasilnya, dalam contoh ini nomor portnya adalah 195*256+89=50017

    PORT Nomor port alamat IP klien- klien mengirimkan perintah untuk membuat sesi dalam mode aktif. Alamat IP dan nomor port ditentukan dalam format yang sama seperti pada contoh sebelumnya, misalnya PORT 212.248.22.144,195,89 Untuk mengatur transfer data, server itu sendiri terhubung ke klien pada port yang ditentukan.

    Menginstal dan mengkonfigurasi FileZilla FTP Server.

    Anda dapat mengunduh paket instalasi FileZilla Server untuk versi sistem operasi Anda di

    Instalasi server dilakukan dengan cara standar, dengan pengecualian item dengan pilihan pengaturan panel kontrol server:

    Ini adalah alat manajemen server utama yang melaluinya semua pengaturan yang diperlukan dibuat. Secara default, panel kontrol beroperasi pada antarmuka loopback tanpa akses kata sandi. Jika perlu, misalnya jika kendali jarak jauh server FTP diperlukan, pengaturan ini dapat diubah.

    Setelah instalasi selesai, jendela undangan akan terbuka untuk terhubung ke server:

    Setelah memasukkan alamat IP, nomor port, dan kata sandi (jika Anda menentukannya selama proses instalasi), panel kontrol Server FileZilla akan terbuka:

    Di bagian atas jendela terdapat tombol menu utama dan panel kontrol. Di bawah ini ada dua area - pesan informasi server dan informasi statistik. Secara keseluruhan, panel kontrol FTP FileZilla Server cukup sederhana dan mudah digunakan. Item menu utama:

    Mengajukan- mode pengoperasian panel kontrol server FTP. Berisi sub-item

    - Sambungkan ke server- terhubung ke server
    - Putuskan sambungan- putuskan sambungan dari server
    - Berhenti- mematikan panel kontrol.

    pelayan- Manajemen server FTP. Berisi subparagraf:

    - Aktif- memulai/menghentikan server FTP. Jika kotak centang dicentang, server FTP akan dimulai, jika tidak dicentang, server akan dihentikan.
    - Kunci- melarang/mengizinkan koneksi ke server. Jika kotak centang dicentang, koneksi baru ke server dilarang.

    Sunting- pengaturan pengeditan. Sub-item:

    - Pengaturan- pengaturan server dasar.
    - Pengguna- Pengaturan pengguna server FTP
    - Grup- pengaturan grup pengguna.

    Sebagai contoh, mari konfigurasikan server untuk kondisi berikut:

  • server berada di belakang NAT, memiliki alamat IP pribadi, tetapi harus dapat diakses dari Internet, mendukung mode pasif dan menggunakan port TCP non-standar. Penggunaan port non-standar mengurangi kemungkinan serangan peretas, dan sebagai tambahan, beberapa penyedia menggunakan pemfilteran lalu lintas dan memblokir port standar 20 dan 21.
  • pengguna memiliki kemampuan untuk mengunduh dari server, mengunggah ke server, menghapus dan mengganti nama file dan folder.
  • Jika Anda menggunakan alamat IP dinamis, Anda harus memastikan bahwa server dapat diakses dengan nama DNS.
  • server akan beroperasi pada workstation di lingkungan OS Windows 7 / Windows 8.
  • Dengan kata lain, Anda perlu membuat server FTP yang dapat diakses dari Internet untuk bertukar file antar pengguna, tentunya gratis. Cukup jelas bahwa selain membuat konfigurasi yang diperlukan dari server FTP itu sendiri, Anda perlu mengubah beberapa pengaturan router, pengaturan firewall Windows, dan menyelesaikan masalah alamat IP dinamis sehingga server dapat diakses berdasarkan nama, apa pun namanya. dari perubahan alamat IP.

    Memecahkan masalah alamat IP dinamis.

        Masalah ini tidak memerlukan solusi jika, saat menyambung ke Internet, alamat IP statis atau dinamis digunakan, tetapi sesuai dengan pengaturan penyedia, hampir selalu sama. Jika tidak, Anda bisa menggunakan teknologi yang disebut DNS Dinamis (DDNS) . Teknologi ini memungkinkan Anda memperbarui informasi alamat IP di server DNS hampir secara real time, dan mengakses router (dan layanan di belakangnya) dengan nama yang terdaftar, tanpa memperhatikan perubahan pada IP dinamis.

    Untuk menerapkan teknologi ini secara gratis, Anda perlu mendaftar ke beberapa layanan DNS dinamis dan menginstal perangkat lunak klien untuk memperbarui data DNS jika alamat IP terkait berubah. Dukungan DNS dinamis biasanya disediakan oleh produsen peralatan jaringan (D-Link, Zyxel, dll.), beberapa hosting dan perusahaan khusus, seperti DynDNS yang terkenal. Namun, setelah pada paruh kedua tahun 2014, semua layanan yang diberikan kepada pengguna terdaftar secara gratis untuk penggunaan non-komersial menjadi berbayar, solusi paling populer mungkin adalah penggunaan DNS dinamis berdasarkan layanan tersebut. Tanpa-IP.org, yang menyediakan layanan dukungan gratis untuk 2 node dengan IP dinamis. Untuk menggunakan layanan ini secara gratis, Anda perlu mendaftar dan mengunjungi situs secara berkala (kira-kira sebulan sekali) untuk memperbarui informasi tentang node IP dinamis yang digunakan. Jika Anda melewatkan pembaruan data node, layanan akan ditangguhkan, dan karenanya, koneksi ke node berdasarkan nama menjadi tidak mungkin. Saat menggunakan layanan dengan biaya tertentu, pembaruan tidak diperlukan.

        Hampir semua router (modem) modern memiliki dukungan bawaan untuk klien DNS dinamis. Pengaturannya biasanya sangat sederhana - Anda mengisi kolom dengan nama pengguna dan kata sandi, serta nama host yang diterima saat mendaftar dengan layanan DDNS. Contoh untuk Zyxel P660RU2

        Menggunakan klien DDNS yang terpasang di router/modem lebih disukai daripada utilitas pembaruan data DNS yang berjalan di lingkungan OS, karena memungkinkan Anda untuk menerapkan kemampuan tambahan, seperti mengelola router melalui Internet saat komputer dimatikan dan menyalakan catu daya ke komputer di belakang NAT dari jarak jauh menggunakan teknologi Bangun Di Lan.

    Jika tidak memungkinkan untuk menggunakan klien DDNS bawaan, Anda harus puas dengan perangkat lunak aplikasi - program klien untuk mendukung DNS dinamis. Program semacam itu secara berkala terhubung ke server yang memelihara nama domain terdaftar yang terkait dengan router tempat koneksi Internet dibuat, dan memanggil prosedur pembaruan IP jika ada perubahan. Pengaturan server dibuat sedemikian rupa sehingga perbandingan nama DNS dan alamat IP koneksi Internet selesai dalam waktu yang sangat singkat, dan sifat dinamis dari alamat tersebut hampir tidak berpengaruh pada kinerja layanan yang terkait dengan nama DNSnya.

    Prosedurnya adalah sebagai berikut:

  • Kami pergi ke situs web No-IP.org. Untuk bekerja dengan akun yang sudah ada atau baru, gunakan tombol "Masuk"(sisi kanan atas halaman).

  • Buat, jika belum dibuat, akun Anda - klik "Buat Akun". Formulir pendaftaran berubah secara berkala, namun wajib memasukkan nama pengguna, kata sandi, dan E-mail yang diinginkan. Email dengan tautan untuk mengonfirmasi pendaftaran dikirim ke email yang ditentukan saat pendaftaran. Saat mendaftar, pilih akses gratis - klik tombol Pendaftaran gratis setelah mengisi semua kolom formulir yang diperlukan.
  • Setelah pendaftaran berhasil, masuk ke situs dan tambahkan entri untuk node Anda - klik tombol "Tambahkan Host"

    Faktanya, Anda hanya perlu memasukkan nama host yang dipilih, dalam hal ini - myhost8.ddns.net. Tidak perlu mengubah parameter lainnya. Maka Anda perlu mengunduh dan menginstal perangkat lunak khusus - Klien Pembaruan Dinamis(DUC), tautannya terletak di halaman utama situs. Setelah instalasi DUC selesai, DUC akan diluncurkan dan jendela otorisasi akan terbuka, di mana Anda harus memasukkan nama pengguna atau E-mail dan kata sandi yang diterima saat mendaftar di situs no-ip.org. Lalu tekan tombolnya Sunting Hosta dan centang kotak di sebelah nama host yang dibuat sebelumnya (myhost8.ddns.net). Sekarang, nama host yang dipilih akan selalu sesuai dengan “alamat IP putih” koneksi Internet Anda. Jika Anda mengalami masalah dalam memperbarui alamat IP Anda, periksa apakah aktivitas jaringan klien DUC Anda diblokir oleh firewall.

    Menyiapkan server FTP

        Menggunakan nomor port non-standar untuk server FTP sama sekali tidak diperlukan jika penyedia tidak menggunakan pemfilteran lalu lintas, atau Anda tidak peduli untuk memindai port untuk mencari kerentanan dan mencoba menebak kata sandi. Pada artikel ini, penggunaan server FTP dengan port TCP non-standar disajikan sebagai salah satu opsi yang memungkinkan.

    Pengaturan FileZilla Server dilakukan melalui menu "Edit" - "Pengaturan".

    Jendela Pengaturan Umum ditujukan untuk pengaturan server FTP umum.

    Di bidang "Dengarkan port ini" Anda dapat menentukan nomor port untuk koneksi TCP yang masuk. Secara default, bidang ini disetel ke 21 , dan untuk menggunakan nomor non-standar Anda perlu menentukan nilai yang dipilih, misalnya - 12321 . Menggunakan port TCP non-standar memiliki beberapa ketidaknyamanan, karena memerlukan penentuan nilainya saat membuat sesi:

    Jika server direncanakan untuk digunakan baik dengan akses dari Internet dan di jaringan lokal, masuk akal untuk membiarkan nilai standar 21, dan menggunakan nomor port non-standar untuk koneksi dari Internet, mengatur pengalihan paket yang datang pada port 12321 router ke port 21 server FTP di jaringan lokal. Dengan pengaturan ini, tidak perlu menentukan nomor port untuk sesi FTP dalam jaringan lokal.

    Parameter lainnya adalah untuk menyetel kinerja dan batas waktu sesi. Mereka bisa dibiarkan tidak berubah. Bagian pengaturan umum lainnya juga dapat dibiarkan sebagai default:

    Pesan Selamat Datang- teks yang dikirim ke klien saat koneksi.

    Pengikatan IP- di antarmuka jaringan mana koneksi klien diharapkan. Secara default - pada apa saja, tetapi Anda dapat menentukan yang spesifik, misalnya - 192.168.1.3.

    penyaring IP- menyiapkan aturan pemfilteran untuk alamat IP klien. Secara default, koneksi diperbolehkan untuk IP apa pun.

    Bab Pengaturan mode pasif berfungsi untuk mengkonfigurasi mode FTP pasif dan memerlukan perubahan hampir semua parameter default.

    Nomor port yang akan digunakan untuk mengirimkan data dalam mode pasif harus diatur secara manual, karena router perlu dikonfigurasi untuk mengarahkannya ke antarmuka jaringan yang didengarkan server. Oleh karena itu, Anda perlu mencentang kotak untuk mengaktifkan mode "Gunakan rentang port khusus" dan mengatur rentang - misalnya, dari 50000 sebelum 50020 . Jumlah port yang didengarkan server menentukan batas jumlah sesi transfer data secara simultan.

    Ayat spesifik IPv4 mendefinisikan alamat IP yang akan dikirim oleh server sebagai respons terhadap perintah PASV. Dalam hal ini, itu bukan IP server itu sendiri 192.168.1.3, tetapi “IP putih” dari koneksi Internet kita. Oleh karena itu, Anda perlu mengatur mode "Gunakan IP berikut" dan alih-alih alamat IP, masukkan nama yang diterima saat mendaftar dengan layanan DNS dinamis - myhost8.ddns.net. Sebagai alternatif, Anda dapat menggunakan mode untuk menentukan alamat IP eksternal menggunakan proyek FileZilla dengan menyalakannya. "Ambil Alamat IP eksternal dari:". Opsi ini dapat dipilih jika tidak memungkinkan untuk menggunakan alat DNS dinamis. Jika Anda ingin menggunakan server FTP di jaringan lokal Anda, Anda perlu mengatur mode ke "Jangan gunakan IP eksternal untuk koneksi lokal" (jangan gunakan alamat IP eksternal untuk koneksi dalam jaringan lokal)

    Pengaturan server lainnya dapat dibiarkan tidak berubah atau, jika perlu, dilakukan nanti: Pengaturan keamanan- Pengaturan keamanan. Secara default, koneksi yang dapat digunakan untuk menerapkan serangan DDoS dilarang

    Aneka ragam- pengaturan untuk ukuran buffer dan parameter log lainnya serta beberapa perintah FTP.

    Pengaturan Antarmuka Admin- pengaturan panel kontrol server. Anda dapat menentukan antarmuka jaringan, nomor port pendengaran, alamat IP yang memungkinkan koneksi ke panel kontrol, dan kata sandi.

    Pencatatan- pengaturan log peristiwa server. Secara default, penulisan ke file tidak dilakukan.

    Batas Kecepatan- pengaturan batas kecepatan transfer data. Secara default - tidak ada batasan.

    Kompresi transfer file- pengaturan untuk kompresi file selama transfer. Standarnya adalah tanpa kompresi.

    Pengaturan SSL/TLS mengaktifkan mode enkripsi untuk data yang dikirimkan. Defaultnya adalah tidak ada enkripsi.

    larangan otomatis- aktifkan pemblokiran otomatis bagi pengguna yang menebak kata sandi untuk terhubung. Secara default, pemblokiran otomatis dinonaktifkan.

    Menyiapkan penerusan port dan firewall

    Agar server FTP dapat diakses dari Internet, router perlu dikonfigurasi sehingga koneksi masuk yang datang ke port TCP tertentu pada antarmuka eksternal dialihkan ke port TCP yang didengarkan oleh server FTP di jaringan internal. Untuk model router yang berbeda, pengaturannya mungkin berbeda dalam terminologi, tetapi artinya sama - paket TCP dengan nomor port tertentu yang diterima pada antarmuka eksternal (WAN) dikirim ke jaringan lokal ke alamat IP dan port yang diinginkan. Contoh pengaturan router D-Link DIR-320NRU untuk penerusan port yang digunakan untuk mode FTP pasif:

    Paket yang diterima pada antarmuka dengan "IP putih" dan memiliki nomor port dalam kisaran 50000-50020 akan dialihkan ke alamat IP yang ditentukan di bidang "IP Internal" (dalam kasus kami - 192.168.1.3). Demikian pula, pengalihan dibuat untuk port 50021 jika Anda mengubah nomor port standar, atau ke port 21 server FTP jika Anda membiarkannya tidak berubah.

    Setelah menerapkan pengaturan ini, server FTP akan dapat diakses melalui URL ftp://myhost8.ddns.net:50021 atau, untuk koneksi dalam jaringan lokal:

    ftp://192.168.1.3- jika Anda tidak mengubah nomor port default (21) di pengaturan server FTP.

    ftp://192.168.1.3:50021- jika nomor port non-standar digunakan.

    Anda dapat menggunakan nama komputer sebagai pengganti alamat IP jika nama tersebut dapat diselesaikan menjadi alamat IP

    ftp://komp1

    ftp://comp1.mydomain.ru

    Diagnosis masalah

    Jika koneksi ke server FTP tidak terjadi, mungkin ada masalah dengan firewall yang memblokir koneksi yang diperlukan agar server FTP yang dibuat berfungsi. Jika Anda menggunakan firewall Windows bawaan, Anda harus menambahkan aturan yang mengizinkan aktivitas jaringan untuk layanan "server FileZilla FTP". Jika Anda menggunakan firewall atau antivirus pihak ketiga dengan pemfilteran lalu lintas, Anda harus membuat aturan yang sesuai menggunakan alat pengaturan yang tersedia untuk mengizinkan koneksi jaringan. Pilihan dimungkinkan ketika pengaturan dibuat untuk mengizinkan aktivitas jaringan apa pun dari program tertentu, atau untuk mengizinkan alamat dan port yang dipilih yang berlaku untuk semua program.

    Tempat terbaik untuk memulai diagnostik adalah di server FTP itu sendiri. Sebagai alat diagnostik, Anda dapat menggunakan standar klien telnet(kegunaan telnet.exe) . Semua firewall tidak memblokir koneksi pada antarmuka loopback, dan untuk memeriksa apakah pengaturan server sudah benar, Anda dapat menyambungkannya dengan memasukkan perintah:

    telnet localhost 21- jika nomor port standar digunakan.

    telnet localhost 50021- jika nomor port standar telah diubah.

    Ketika perintah ini dijalankan, koneksi ke server FTP dibuat melalui antarmuka loopback dan undangan server (Pesan Selamat Datang) akan ditampilkan di jendela telnet. Jika hal ini tidak terjadi, server mungkin terhenti, ada konflik port, atau port 21 (50021) tidak mendengarkan. Untuk diagnostik Anda dapat menggunakan perintah status bersih:

    status bersih –nab

    Opsi baris perintah berarti:

    N- gunakan nomor port numerik dan alamat IP

    A- menampilkan semua koneksi dan port mendengarkan

    B- menampilkan nama program yang terlibat dalam pembuatan koneksi.

    Contoh hasil perintah yang ditampilkan:

    Koneksi aktif

    Nama     Alamat lokal     Alamat eksternal     Status
    TCP         0.0.0.0:21                   0.0.0.0:0                   MENDENGARKAN
    TCP         0.0.0.0:135               0.0.0.0:0                   MENDENGARKAN
    RpcS

    Dalam sebuah kolom Alamat lokal ada maksudnya 0.0.0.0:21 , yang menunjukkan bahwa program tersebut bernama FileZilla Server.exe mendengarkan (sebutkan MENDENGARKAN) Port TCP nomor 21 di semua antarmuka jaringan. Jika antarmuka tertentu dan nomor port yang berbeda ditentukan dalam pengaturan server FTP, maka nilai ini akan berisi IP:pelabuhan, Misalnya - 192.168.1.3:50021

    Untuk menampilkan hasil dalam mode halaman, Anda dapat menggunakan perintah:

    netstat -nab | lagi

    Atau gunakan hasil pencarian berdasarkan nomor port: netstat -nab | temukan ":21"

    Jika server tidak tersedia pada antarmuka non-loopback, tetapi dapat diakses pada antarmuka loopback, Anda perlu memahami pengaturan firewall.

    Menyiapkan pengguna dan grup.

    Pengaturan pengguna dan grup dilakukan melalui menu "Edit" - "Pengguna" ("Grup"). Tidak perlu membuat grup, tetapi terkadang hal ini berguna jika terdapat banyak pengguna dan hak mereka terkait dengan server FTP berbeda. Pengaturan untuk grup dan pengguna hampir sama:

    Contoh ini menunjukkan hasil penambahan nama pengguna server FTP pengguna1 mempunyai hak penuh untuk menulis, membaca, menghapus dan menggabungkan file, serta melihat isinya, menghapus dan membuat subdirektori dalam direktori C:\ftp\publik

    Di halaman Umum properti pengguna ditambahkan, dihapus, dan diubah.
    Di halaman Folder bersama pengaturan dibuat untuk menentukan daftar direktori sistem file yang akan digunakan oleh server FTP untuk menyediakan akses ke direktori tersebut melalui protokol FTP. Setiap pengguna atau kelompok pengguna dapat diberikan direktorinya sendiri dengan hak tertentu sehubungan dengan isinya.
    Di halaman Batas kecepatan Anda dapat mengatur batasan kecepatan pertukaran data.
    Di halaman penyaring IP Anda dapat menetapkan aturan pemfilteran untuk alamat IP pengguna, yang menunjukkan alamat mana yang dilarang atau diizinkan untuk terhubung ke server.

    Daftar perintah dasar FTP

    ABOR - Batalkan transfer file
    CDUP - Ubah direktori ke direktori yang lebih tinggi.
    CWD - Mengubah direktori saat ini.
    DELE - Hapus file (nama file DELE).
    BANTUAN - Menampilkan daftar perintah yang diterima oleh server.
    LIST - Mengembalikan daftar file dalam direktori. Daftar tersebut ditransmisikan melalui koneksi data (port 20).
    MDTM - Mengembalikan waktu modifikasi file.
    MKD - Buat direktori.
    NLST - Mengembalikan daftar file dalam direktori dalam format yang lebih pendek dari LIST. Daftar tersebut ditransmisikan melalui koneksi data (port 20).
    NOOP - Operasi kosong
    PASV - Masuk ke mode pasif. Server akan mengembalikan alamat dan port yang perlu Anda sambungkan untuk mengumpulkan data. Transfer akan dimulai ketika perintah RETR, LIST, dll dimasukkan.
    PORT - Masuk ke mode aktif. Misalnya PORT 12,34,45,56,78,89. Berbeda dengan mode pasif, server sendiri terhubung ke klien untuk mentransfer data.
    PWD - Mengembalikan direktori server saat ini.
    BERHENTI - Putuskan sambungan
    REIN - Inisialisasi ulang koneksi
    RETR - Unduh file. RETR harus diawali dengan perintah PASV atau PORT.
    RMD - Hapus direktori
    RNFR dan RNTO - Ganti nama file. RNFR - apa yang harus diganti namanya, RNTO - apa yang harus diganti namanya.
    UKURAN - Mengembalikan ukuran file
    STOR - Unggah file ke server. STOR harus didahului dengan perintah PASV atau PORT.
    SYST - Mengembalikan tipe sistem (UNIX, WIN,)
    TYPE - Atur jenis transfer file (A - teks ASCII, I - biner)
    PENGGUNA - Nama pengguna untuk masuk ke server

    Contoh sesi FTP

    Klien FTP terhubung ke server dengan nama pengguna pengguna1, kata sandi kosong dan mengunduh file bernama cpu-v. Pesan dari server FTP disorot dengan warna merah, pesan dari klien FTP disorot dengan warna biru. Pertukaran arahan dan parameter mungkin sedikit berbeda antara versi perangkat lunak klien FTP dan server FTP yang berbeda.

    Setelah terhubung, server mengirimkan informasi tentang dirinya ke klien:
    220-FileZilla Server versi 0.9.45 beta
    220 ditulis oleh Tim Kosse ( [dilindungi email])
    220 Silakan kunjungi http://sourceforge.net/projects/filezilla/
    Klien memberikan nama pengguna:
    PENGGUNA pengguna1
    Server meminta kata sandi:
    331 Kata sandi diperlukan untuk pengguna1
    Klien memberikan kata sandi kosong:
    LULUS
    Server memverifikasi akun pengguna dan melaporkan dimulainya sesi:
    230 Masuk
    Klien meminta jenis sistem operasi di server:
    SISTEM
    Server melaporkan bahwa tipenya Unix, ditiru oleh server Filezilla:
    215 UNIX ditiru oleh FileZilla
    Klien meminta daftar parameter yang didukung oleh server:
    PRESTASI
    Server merespons dengan daftar parameter yang didukung:
    211-Fitur:
    MDTM
    ALIRAN SISA
    UKURAN
    Tipe MLST*;ukuran*;modifikasi*;
    MLSD
    UTF8
    CLNT
    MFMT
    211 Berakhir

    Klien meminta direktori server saat ini:
    penyandang disabilitas
    Server melaporkan bahwa direktori saat ini adalah direktori root ("/"):
    257 "/" adalah direktori saat ini.
    Klien melaporkan bahwa ia akan mentransfer data biner:
    TIPE I

    Server mengonfirmasi jenis data yang ditransfer:
    200 Tipe diatur ke I
    Klien melaporkan bahwa ia akan menggunakan mode FTP pasif:
    PASV
    Server melaporkan transisi ke mode pasif dan mengirimkan IP dan port untuk mode FTP pasif.
    227 Memasuki Mode Pasif (212,248,22,114,195,97)
    Klien meminta untuk menerima file bernama cpu-v dari direktori server saat ini
    RETR cpu-v
    Server melaporkan dimulainya transfer data:
    150 Membuka saluran data untuk pengunduhan file dari server "/cpu-v"
    Setelah selesai, server melaporkan transfer berhasil:
    226 Berhasil mentransfer "/cpu-v"

    Sebagai kesimpulan, saya ingin menambahkan bahwa proyek Filezilla tidak hanya mencakup pengembangan dan dukungan server FTP gratis berkualitas tinggi, tetapi juga klien FTP gratis yang populer.

    Artikel dengan penjelasan singkat tentang klien FTP gratis untuk Linux, Mac OS dan Windows. Klien FTP ini mendukung banyak protokol transfer data aplikasi - FTP, FTP melalui SSL/TLS (FTPS), SSH File Transfer Protocol (SFTP), HTTP, SOCKS dan FTP-Proxy. Dengan kata lain, Filezilla FTP Client adalah perangkat lunak universal untuk menerima dan mentransfer file melalui semua protokol aplikasi modern antar node di berbagai platform.

    FTP (File Transfer Protocol) adalah protokol standar yang dirancang untuk mentransfer file melalui jaringan TCP (misalnya, Internet). FTP sering digunakan untuk mengunduh halaman web dan dokumen lain dari perangkat pengembangan pribadi ke server hosting publik.

    Protokol ini dibangun pada arsitektur klien-server dan menggunakan koneksi jaringan yang berbeda untuk mentransfer perintah dan data antara klien dan server. Pengguna FTP dapat mengautentikasi dengan memasukkan nama pengguna dan kata sandi dalam teks biasa, atau, jika server mengizinkannya, mereka dapat terhubung secara anonim. Anda dapat menggunakan protokol SSH untuk transfer aman yang menyembunyikan (mengenkripsi) login dan kata sandi serta mengenkripsi konten.

    Fitur yang cukup mencolok dari protokol FTP adalah ia menggunakan banyak koneksi (setidaknya ganda). Dalam hal ini, satu saluran adalah saluran kontrol, melalui mana perintah dikirim ke server dan tanggapannya dikembalikan (biasanya melalui TCP port 21), dan melalui saluran lainnya transmisi data aktual terjadi, satu saluran untuk setiap transmisi. Oleh karena itu, dalam satu sesi melalui protokol FTP, Anda dapat mentransfer beberapa file secara bersamaan, dan dua arah. Untuk setiap saluran data, port TCPnya sendiri dibuka, yang nomornya dipilih oleh server atau klien, tergantung pada mode transmisi.

    Protokol FTP memiliki mode transfer biner, yang mengurangi overhead lalu lintas dan mengurangi waktu komunikasi saat mentransfer file besar. Protokol HTTP tentu memerlukan pengkodean informasi biner ke dalam bentuk teks, misalnya menggunakan algoritma Base64.

    Saat mulai bekerja melalui protokol FTP, klien memasuki suatu sesi, dan semua operasi dilakukan dalam kerangka sesi ini (dengan kata lain, server mengingat keadaan saat ini). Protokol HTTP tidak "mengingat" apa pun - tugasnya adalah memberikan data dan melupakannya, jadi mengingat keadaan saat menggunakan HTTP dilakukan dengan metode di luar protokol.

    FTP beroperasi pada lapisan aplikasi model OSI dan digunakan untuk mentransfer file menggunakan TCP/IP. Untuk melakukan ini, server FTP harus berjalan dan menunggu permintaan masuk. Komputer klien dapat menghubungi server pada port 21. Koneksi ini (aliran kontrol) tetap terbuka selama sesi berlangsung. Koneksi kedua (aliran data) dapat dibuka baik oleh server dari port 20 ke port klien terkait (mode aktif), atau oleh klien dari port mana pun ke port server terkait (mode pasif), yaitu diperlukan untuk mentransfer file data. Aliran kontrol digunakan untuk mengoperasikan sesi - misalnya, pertukaran perintah dan kata sandi antara klien dan server menggunakan protokol mirip telnet. Misalnya, "nama file RETR" akan mentransfer file tertentu dari server ke klien. Karena struktur dua port ini, FTP dianggap sebagai protokol out-of-band, dibandingkan dengan HTTP in-band.

    Koneksi dan transfer data

    Protokol ditentukan dalam RFC 959. Server merespons aliran kontrol dengan kode status ASCII tiga karakter dengan pesan teks opsional. Misalnya, "200" (atau "200 OK") berarti perintah terakhir berhasil dijalankan. Angka-angka tersebut mewakili kode respons, dan teks mewakili klarifikasi atau permintaan. Transmisi saat ini pada aliran data dapat diinterupsi oleh pesan interupsi yang dikirim pada aliran kontrol.

    FTP dapat beroperasi dalam mode aktif atau pasif, pilihannya menentukan bagaimana koneksi dibuat. Dalam mode aktif, klien membuat koneksi kontrol TCP dengan server dan mengirimkan alamat IP dan nomor port klien arbitrer ke server, dan kemudian menunggu hingga server memulai koneksi TCP dengan alamat dan nomor port ini. Jika klien berada di belakang firewall dan tidak dapat menerima koneksi TCP masuk, mode pasif dapat digunakan. Dalam mode ini, klien menggunakan aliran kontrol untuk mengirim perintah PASV ke server, dan kemudian menerima alamat IP dan nomor port dari server, yang kemudian digunakan oleh klien untuk membuka aliran data dari port klien sembarang ke port klien. alamat dan port yang diterima. Kedua mode tersebut diperbarui pada bulan September 1998 untuk mendukung IPv6. Pada saat ini, perubahan lebih lanjut dilakukan pada Mode Pasif, ditingkatkan menjadi Mode Pasif yang Ditingkatkan.

    Saat mentransmisikan data melalui jaringan, empat representasi data dapat digunakan:

      ASCII - digunakan untuk teks. Data tersebut, jika perlu, diubah dari representasi karakter pada host pengirim menjadi "ASCII delapan bit" sebelum transmisi, dan (sekali lagi, jika perlu) menjadi representasi karakter pada host penerima. Akibatnya, mode ini tidak cocok untuk file yang berisi lebih dari sekadar teks biasa.

      Mode gambar (biasa disebut biner) - perangkat pengirim mengirimkan setiap file byte demi byte, dan penerima menyimpan aliran byte setelah diterima. Dukungan untuk mode ini telah direkomendasikan untuk semua implementasi FTP.

      EBCDIC - digunakan untuk mentransfer teks biasa antar host dalam pengkodean EBCDIC. Jika tidak, mode ini mirip dengan mode ASCII.

      Mode lokal - memungkinkan dua komputer dengan pengaturan identik untuk mengirim data dalam formatnya sendiri tanpa mengonversi ke ASCII.

    Untuk file teks, berbagai format manajemen dan pengaturan struktur rekaman disediakan. Fitur-fitur ini dirancang untuk bekerja dengan file yang berisi format Telnet atau ASA.

    Transfer data dapat dilakukan dalam tiga mode berikut:

      Mode aliran - data dikirim sebagai aliran berkelanjutan, membebaskan FTP dari melakukan pemrosesan apa pun. Sebaliknya, semua pemrosesan dilakukan oleh TCP. Indikator akhir file tidak diperlukan kecuali untuk memisahkan data menjadi catatan.

      Mode blok - FTP memecah data menjadi beberapa blok (blok header, jumlah byte, bidang data) dan kemudian mengirimkannya ke TCP.

      Mode kompresi - data dikompresi menggunakan algoritma tunggal (biasanya dengan pengkodean panjang seri).

    Autentikasi

    Otentikasi FTP menggunakan skema nama pengguna/kata sandi biasa untuk memberikan akses. Nama pengguna dikirim ke server dengan perintah USER, dan kata sandi dikirim dengan perintah PASS. Jika informasi yang diberikan oleh klien diterima oleh server, maka server akan mengirimkan undangan kepada klien dan sesi dimulai. Pengguna dapat, jika server mendukung fitur ini, masuk tanpa memberikan kredensial, namun server hanya dapat memberikan akses terbatas untuk sesi tersebut.

    AnonimFTP

    Host yang menyediakan layanan FTP dapat memberikan akses FTP anonim. Pengguna biasanya masuk dengan "anonim" sebagai nama pengguna mereka. Meskipun pengguna biasanya diminta untuk memberikan alamat email mereka dan bukan kata sandi, sebenarnya tidak ada verifikasi yang dilakukan. Banyak host FTP yang menyediakan pembaruan perangkat lunak mendukung akses anonim.

    NAT- PT

    Khusus agar protokol FTP dapat bekerja melalui firewall, dibuatlah ekstensi NAT yang disebut NAT-PT (rfc2766), yang memungkinkan koneksi masuk diterjemahkan dari server ke klien melalui NAT. Selama koneksi seperti itu, NAT menggantikan data yang dikirimkan dari klien, menunjukkan ke server alamat dan port sebenarnya yang dapat digunakan server untuk terhubung, dan kemudian menyiarkan koneksi dari server dari alamat ini ke klien ke alamatnya. Terlepas dari semua langkah dan inovasi yang diambil untuk mendukung protokol FTP, dalam praktiknya, fungsi NAT-PT biasanya dinonaktifkan di semua router dan router untuk memberikan keamanan tambahan terhadap ancaman virus.

    NATdan melewati firewall

    FTP biasanya mentransfer data ketika ada koneksi antara server dan klien, setelah klien mengirimkan perintah PORT. Hal ini menimbulkan masalah bagi NAT dan firewall, yang tidak mengizinkan koneksi dari Internet ke host internal. Untuk NAT, masalah tambahannya adalah representasi alamat IP dan nomor port dalam perintah PORT mengacu pada alamat IP dan port host internal, bukan alamat IP publik dan port NAT. Ada dua pendekatan untuk masalah ini. Yang pertama adalah klien FTP dan server FTP menggunakan perintah PASV, yang memanggil koneksi data yang dibuat dari klien ke server. Pendekatan kedua adalah mengubah nilai perintah PORT untuk NAT menggunakan gateway pada lapisan aplikasi.

    Dukungan peramban web

    Kebanyakan browser web biasa dapat mengambil file yang terletak di server FTP, meskipun mereka mungkin tidak mendukung ekstensi protokol seperti FTPS. Ketika alamat FTP ditentukan dan bukan alamat HTTP, konten yang tersedia di server jarak jauh disajikan serupa dengan konten web lainnya. Klien FTP yang berfungsi penuh dapat dijalankan di Firefox sebagai ekstensi FireFTP.

    Keamanan

    FTP tidak dirancang untuk menjadi protokol yang aman (terutama menurut standar saat ini) dan memiliki banyak kerentanan keamanan. Pada bulan Mei 1999, penulis RFC 2577 merangkum kerentanan tersebut ke dalam daftar masalah berikut:

      Serangan tersembunyi (serangan pantulan)

      Serangan palsu

      Serangan kekerasan

      Pengambilan paket, mengendus

      Perlindungan nama pengguna

      Pencurian pelabuhan

    FTP tidak dapat mengenkripsi lalu lintasnya, semua transmisi berupa teks jelas, sehingga nama pengguna, kata sandi, perintah, dan data dapat dibaca oleh siapa saja yang dapat mencegat paket melalui jaringan. Masalah ini umum terjadi pada banyak spesifikasi Protokol Internet (termasuk SMTP, Telnet, POP, IMAP) yang dikembangkan sebelum pembuatan mekanisme enkripsi seperti TLS dan SSL. Solusi umum untuk masalah ini adalah dengan menggunakan versi protokol rentan yang "aman" dan dilindungi TLS (FTPS untuk FTP, TelnetS untuk Telnet, dll.) atau protokol lain yang lebih aman, seperti SFTP/SCP, yang disediakan dengan sebagian besar Aman Implementasi protokol Shell.

    AmanFTP

    Ada beberapa metode untuk transfer file yang aman, pada satu waktu atau lainnya disebut "Secure FTP": FTPS, SFPS, FTP melalui SSH.

    FTPS Eksplisit adalah ekstensi standar FTP yang memungkinkan klien mengharuskan sesi FTP dienkripsi. Ini diimplementasikan dengan mengirimkan perintah "AUTH TLS". Server memiliki kemampuan untuk mengizinkan atau menolak koneksi yang tidak meminta TLS. Ekstensi protokol ini ditentukan dalam RFC 4217. FTPS implisit adalah standar lama untuk FTP yang memerlukan penggunaan koneksi SSL atau TLS. Standar ini seharusnya menggunakan port yang berbeda dari FTP normal.

    SFTP, atau "SSH File Transfer Protocol", tidak terkait dengan FTP, kecuali ia juga mentransfer file dan memiliki serangkaian perintah serupa untuk pengguna. SFTP, atau FTP aman, adalah program yang menggunakan SSH (Secure Shell) untuk mentransfer file. Tidak seperti FTP standar, FTP ini mengenkripsi perintah dan data, mencegah kata sandi dan informasi sensitif dikirimkan secara terbuka melalui jaringan. SFTP memiliki fungsi yang mirip dengan FTP, tetapi karena menggunakan protokol yang berbeda, klien FTP standar tidak dapat berkomunikasi dengan server SFTP dan sebaliknya.

    FTPmelaluiSSH(BukanSFTP)

    FTP melalui SSH (bukan SFTP) mengacu pada praktik penerowongan sesi FTP reguler melalui koneksi SSH. Karena FTP menggunakan beberapa koneksi TCP, penerowongan melalui SSH menjadi sangat sulit. Ketika banyak klien SSH mencoba membuat terowongan untuk saluran kontrol (koneksi klien-server asli pada port 21), hanya saluran ini yang akan dilindungi; saat mentransfer data, perangkat lunak FTP di kedua ujungnya akan membuat koneksi TCP baru (saluran data) yang akan melewati koneksi SSH dan dengan demikian kehilangan integritas.

    Jika tidak, perangkat lunak klien SSH perlu memiliki pengetahuan tentang FTP untuk memantau dan menulis ulang pesan aliran kontrol FTP dan secara mandiri membuka pengalihan baru untuk aliran data FTP.

    FTP melalui SSH terkadang disebut sebagai FTP aman; namun berbeda dengan metode lain seperti SSL/TLS (FTPS). Metode transfer file lain yang menggunakan SSH dan tidak terkait dengan FTP adalah SFTP dan SCP; di masing-masingnya, baik kredensial maupun data file selalu dilindungi oleh protokol SSH.

    FXP (File eXchange Protocol) adalah cara untuk mentransfer file antara dua server FTP secara langsung tanpa mengunduhnya ke komputer Anda. Dalam sesi FXP, klien membuka dua koneksi FTP ke dua server berbeda, meminta file dari server pertama, menentukan alamat IP server kedua dalam perintah PORT.

    Keuntungan yang tidak diragukan lagi dari mendukung standar FXP adalah bahwa pengguna akhir yang ingin menyalin file dari satu server FTP ke server FTP lainnya tidak lagi tunduk pada batasan bandwidth koneksi Internet mereka sendiri. Tidak perlu mengunduh file sendiri lalu mengunggahnya ke server FTP lain. Dengan demikian, waktu transfer file hanya akan bergantung pada kecepatan koneksi antara dua server FTP jarak jauh, yang dalam banyak kasus jelas lebih tinggi daripada server “pengguna”.

    FXP mulai digunakan oleh penyerang untuk menyerang server lain: perintah PORT menentukan alamat IP dan port layanan yang diserang di komputer korban, dan perintah RETR/STOR mengakses port ini atas nama server FTP, dan bukan penyerang. mesin, yang memungkinkan untuk melakukan serangan DDoS skala besar menggunakan banyak server FTP sekaligus, atau melewati sistem keamanan komputer korban jika hanya mengandalkan verifikasi IP klien dan server FTP yang digunakan untuk serangan terletak di a jaringan atau gateway tepercaya. Akibatnya, hampir semua server sekarang memeriksa apakah alamat IP yang ditentukan dalam perintah PORT cocok dengan alamat IP klien FTP dan, secara default, melarang penggunaan alamat IP pihak ketiga di sana. Oleh karena itu, penggunaan FXP tidak dimungkinkan saat bekerja dengan server FTP publik.

    Perintah dasar

      ABOR - Batalkan transfer file

      CDUP - Ubah direktori ke direktori yang lebih tinggi.

      CWD - Ubah direktori.

      DELE - Hapus file (nama file DELE).

      EPSV - Masuk ke mode pasif yang diperluas. Digunakan sebagai pengganti PASV.

      BANTUAN - Menampilkan daftar perintah yang diterima oleh server.

      LIST - Mengembalikan daftar file dalam direktori. Daftar ini dikirim melalui koneksi data.

      MDTM - Mengembalikan waktu modifikasi file.

      MKD - Buat direktori.

      NLST - Mengembalikan daftar file dalam direktori dalam format yang lebih pendek dari LIST. Daftar ini dikirim melalui koneksi data.

      NOOP - Operasi kosong

      PASV - Masuk ke mode pasif. Server akan mengembalikan alamat dan port yang perlu Anda sambungkan untuk mengumpulkan data. Transfer akan dimulai ketika perintah berikut dimasukkan: RETR, LIST, dll.

      PORT - Masuk ke mode aktif. Misalnya PORT 12,34,45,56,78,89. Berbeda dengan mode pasif, server sendiri terhubung ke klien untuk mentransfer data.

      PWD - Mengembalikan direktori saat ini.

      BERHENTI - Putuskan sambungan

      REIN - Inisialisasi ulang koneksi

      RETR - Unduh file. RETR harus diawali dengan perintah PASV atau PORT.

      RMD - Hapus direktori

      RNFR dan RNTO - Ganti nama file. RNFR - apa yang harus diganti namanya, RNTO - apa yang harus diganti namanya.

      UKURAN - Mengembalikan ukuran file

      STOR - Unggah berkas. STOR harus didahului dengan perintah PASV atau PORT.

      SYST - Mengembalikan tipe sistem (UNIX, WIN, ...)

      TYPE - Mengatur jenis transfer file (biner, teks)

      PENGGUNA - Nama pengguna untuk masuk ke server

    Deskripsi Protokol

    Perbedaan dari HTTP

    Koneksi dan transfer data

    Dukungan peramban web

    Sintaksis

    Sintaks URL FTP dijelaskan di RFC1738, dalam bentuk: ftp://[<пользователь>[:<пароль>]@]<хост>[:<порт>]/<путь>(parameter dalam tanda kurung siku adalah opsional). Misalnya:

    Rincian lebih lanjut tentang menentukan nama pengguna dan kata sandi ditulis dalam dokumentasi browser. Secara default, sebagian besar browser web menggunakan mode pasif (PASV), yang dapat melewati firewall pengguna akhir dengan lebih baik.

    Keamanan

    FTP tidak dirancang untuk menjadi protokol yang aman (terutama menurut standar saat ini) dan memiliki banyak kerentanan keamanan. Pada bulan Mei 1999, penulis RFC 2577 merangkum kerentanan tersebut ke dalam daftar masalah berikut:

    • Serangan tersembunyi (serangan pantulan)
    • Serangan palsu
    • Serangan kekerasan
    • Pengambilan paket, mengendus
    • Perlindungan nama pengguna
    • Pencurian pelabuhan

    FTP tidak dapat mengenkripsi lalu lintasnya, semua transmisi berupa teks jelas, sehingga nama pengguna, kata sandi, perintah, dan data dapat dibaca oleh siapa saja yang dapat mencegat paket melalui jaringan. Masalah ini umum terjadi pada banyak spesifikasi Protokol Internet (termasuk SMTP, Telnet, POP, IMAP) yang dikembangkan sebelum pembuatan mekanisme enkripsi seperti TLS dan SSL. Solusi umum untuk masalah ini adalah dengan menggunakan versi protokol rentan yang "aman" dan dilindungi TLS (FTPS untuk FTP, TelnetS untuk Telnet, dll.) atau protokol lain yang lebih aman seperti SFTP/SCP yang disertakan dengan sebagian besar protokol Secure Shell. implementasi.

    Amankan FTP

    Ada beberapa metode untuk mentransfer file dengan aman, pada satu waktu atau lainnya yang disebut "Secure FTP".

    FTPS

    FTPS Eksplisit adalah ekstensi standar FTP yang memungkinkan klien mengharuskan sesi FTP dienkripsi. Ini diimplementasikan dengan mengirimkan perintah "AUTH TLS". Server memiliki kemampuan untuk mengizinkan atau menolak koneksi yang tidak meminta TLS. Ekstensi protokol ini ditentukan dalam spesifikasi RFC 4217. FTPS implisit adalah standar lama untuk FTP yang memerlukan koneksi SSL atau TLS. Standar ini seharusnya menggunakan port yang berbeda dari FTP normal.

    SFTP

    SFTP, atau "SSH File Transfer Protocol", tidak terkait dengan FTP, kecuali ia juga mentransfer file dan memiliki serangkaian perintah serupa untuk pengguna. SFTP, atau FTP aman, adalah program yang menggunakan SSH (Secure Shell) untuk mentransfer file. Tidak seperti FTP standar, FTP ini mengenkripsi perintah dan data, mencegah kata sandi dan informasi sensitif dikirimkan secara terbuka melalui jaringan. SFTP memiliki fungsi yang mirip dengan FTP, tetapi karena menggunakan protokol yang berbeda, klien FTP standar tidak dapat berkomunikasi dengan server SFTP dan sebaliknya.

    FTP melalui SSH (bukan SFTP)

    FTP melalui SSH (bukan SFTP) mengacu pada praktik penerowongan sesi FTP reguler melalui koneksi SSH. Karena FTP menggunakan beberapa koneksi TCP, penerowongan melalui SSH menjadi sangat sulit. Ketika banyak klien SSH mencoba membuat terowongan untuk saluran kontrol (koneksi klien-server asli pada port 21), hanya saluran ini yang akan dilindungi; saat mentransfer data, perangkat lunak FTP di kedua ujungnya akan membuat koneksi TCP baru (saluran data) yang akan melewati koneksi SSH dan dengan demikian kehilangan integritas.

    Jika tidak, perangkat lunak klien SSH perlu memiliki pengetahuan tentang FTP untuk memantau dan menulis ulang pesan aliran kontrol FTP dan secara mandiri membuka pengalihan baru untuk aliran data FTP. Paket perangkat lunak yang mendukung mode ini:

    • Tectia ConnectSecure (Menang/Linux/Unix)
    • Server Tectia untuk IBM z/OS dari paket SSH Communications Security
    • (di bawah lisensi GPL)

    FTP melalui SSH terkadang disebut sebagai FTP aman; namun berbeda dengan metode lain seperti SSL/TLS (FTPS). Metode transfer file lain yang menggunakan SSH dan tidak terkait dengan FTP adalah SFTP dan SCP; di masing-masingnya, baik kredensial maupun data file selalu dilindungi oleh protokol SSH.

    Cerita

    Implementasi pertama dari protokol (1971) menyediakan pertukaran pesan antara klien dan server yang terdiri dari header (72 bit) dan data dengan panjang variabel. Header pesan menyertakan permintaan atau respons dari server FTP, jenis dan panjang data yang ditransfer. Parameter permintaan (misalnya, jalur dan nama file), informasi dari server (misalnya, daftar file dalam direktori) dan file itu sendiri dikirimkan sebagai data. Dengan demikian, perintah dan data dikirimkan melalui saluran yang sama.

    Pada tahun 1972, protokol tersebut diubah total dan mengambil bentuk yang mendekati bentuk modern. Perintah dengan parameter dari respons klien dan server dikirimkan melalui koneksi TELNET (saluran kontrol); koneksi terpisah (saluran data) dibuat untuk transfer data.

    Dalam edisi berikutnya, kemampuan untuk bekerja dalam mode pasif, mentransfer file antar server FTP ditambahkan, perintah diperkenalkan untuk memperoleh informasi, mengubah direktori saat ini, membuat dan menghapus direktori, dan menyimpan file dengan nama unik. Untuk beberapa waktu ada perintah untuk mengirim email melalui FTP, namun kemudian dihapus dari protokol.

    Pada tahun 1980, protokol FTP mulai menggunakan TCP. Versi terbaru dari protokol ini dirilis pada tahun 1985. Pada tahun 1997, muncul tambahan protokol yang memungkinkan informasi dienkripsi dan ditandatangani di saluran kontrol dan saluran data. Pada tahun 1999, sebuah adendum yang didedikasikan untuk internasionalisasi protokol dirilis, yang merekomendasikan penggunaan pengkodean UTF-8 untuk perintah dan respons server dan mendefinisikan perintah LANG baru yang mengatur bahasa respons.

    Perintah dasar

    • ABOR - Batalkan transfer file
    • CDUP - Ubah direktori ke direktori yang lebih tinggi.
    • CWD - Ubah direktori.
    • DELE - Hapus file (nama file DELE).
    • EPSV - Masuk ke mode pasif yang diperluas. Digunakan sebagai pengganti PASV.
    • BANTUAN - Menampilkan daftar perintah yang diterima oleh server.
    • LIST - Mengembalikan daftar file dalam direktori. Daftar ini dikirim melalui koneksi data.
    • MDTM - Mengembalikan waktu modifikasi file.
    • MKD - Buat direktori.
    • NLST - Mengembalikan daftar file dalam direktori dalam format yang lebih pendek dari LIST. Daftar ini dikirim melalui koneksi data.
    • NOOP - Operasi kosong
    • PASV - Masuk ke mode pasif. Server akan mengembalikan alamat dan port yang perlu Anda sambungkan untuk mengumpulkan data. Transfer akan dimulai ketika perintah berikut dimasukkan: RETR, LIST, dll.
    • PORT - Masuk ke mode aktif. Misalnya PORT 12,34,45,56,78,89. Berbeda dengan mode pasif, server sendiri terhubung ke klien untuk mentransfer data.
    • PWD - Mengembalikan direktori saat ini.
    • BERHENTI - Putuskan sambungan
    • REIN - Inisialisasi ulang koneksi
    • RETR - Unduh file. RETR harus diawali dengan perintah PASV atau PORT.
    • RMD - Hapus direktori
    • RNFR dan RNTO - Ganti nama file. RNFR - apa yang harus diganti namanya, RNTO - apa yang harus diganti namanya.
    • UKURAN - Mengembalikan ukuran file
    • STOR - Unggah berkas. STOR harus didahului dengan perintah PASV atau PORT.
    • SYST - Mengembalikan tipe sistem (UNIX, WIN, ...)
    • TYPE - Mengatur jenis transfer file (biner, teks)
    • PENGGUNA - Nama pengguna untuk masuk ke server

    Kode respons FTP

    Di bawah ini adalah penjelasan singkat tentang kode respons yang mungkin dikembalikan oleh server FTP. Kode-kode ini telah distandarisasi oleh IETF di RFC 959. Seperti disebutkan sebelumnya, kode respons berupa angka tiga digit. Digit pertama bertanggung jawab atas salah satu dari tiga hasil: keberhasilan, penolakan, atau indikasi kesalahan atau jawaban tidak lengkap.

    • 2xx – Respons berhasil
    • 4xx/5xx – Perintah tidak dapat dijalankan
    • 1xx/3xx – Kesalahan atau respons tidak lengkap

    Digit kedua menentukan jenis kesalahan:

    • x0z – Sintaksis.
    • x1z – Informasi. Sesuai dengan pesan informasi.
    • x2z – Koneksi. Pesan tersebut mengacu pada koneksi kontrol atau koneksi data.
    • x3z – Sesuai dengan otentikasi pengguna dan pesan hak.
    • x4z – Tidak ditentukan.
    • x5z – Sistem file. Sesuai dengan pesan status sistem file.

    Digit ketiga secara pasti menunjukkan kesalahannya.

    Contoh

    220 server FTP siap. USER ftp //Anonim 230 Login berhasil. PASV 227 Memasuki Mode Pasif (192,168,254,253,233,92)//Klien harus membuka koneksi ke IP yang dikirimkan LIST 150 Inilah daftar direktori. //Server mengirimkan daftar file di direktori 226 Direktori kirim OK. CWD masuk 250 Direktori berhasil diubah. PASV 227 Memasuki Mode Pasif (192,168,254,253,207,56) STOR gyuyfotry.avi 150 Ok untuk mengirim data. //Klien mengirimkan isi file 226 File diterima OK. BERHENTI 221 Selamat tinggal.

    Argumen 192,168,254,253,207,56 berarti koneksi ke server diharapkan pada node dengan alamat IP 192.168.254.253 pada port 207<< 8 + 56 = 53048 (где << - операция побитового сдвига, 207 записывается в младший разряд, а потом сдвигается в старший, чтобы в младший записать 56 или 207*256+56=53048).

    Banyak server FTP memiliki direktori (disebut masuk, unggah, dll.) yang dapat ditulis dan dimaksudkan untuk mengunggah file ke server. Hal ini memungkinkan pengguna untuk memberi makan server dengan data baru.

    FXP

    FXP(Bahasa inggris) Protokol Pertukaran File- protokol pertukaran file) - cara untuk mentransfer file antara dua server FTP secara langsung, tanpa mengunduhnya ke komputer Anda. Dalam sesi FXP, klien membuka dua koneksi FTP ke dua server berbeda, meminta file dari server pertama, menentukan alamat IP server kedua dalam perintah PORT.

    Keuntungan yang tidak diragukan lagi dari mendukung standar FXP adalah bahwa pengguna akhir yang ingin menyalin file dari satu server FTP ke server FTP lainnya tidak lagi tunduk pada batasan bandwidth koneksi Internet mereka sendiri. Tidak perlu mengunduh file sendiri lalu mengunggahnya ke server FTP lain. Dengan demikian, waktu transfer file hanya akan bergantung pada kecepatan koneksi antara dua server FTP jarak jauh, yang dalam banyak kasus jelas lebih tinggi daripada server “pengguna”.

    FXP mulai digunakan oleh penyerang untuk menyerang server lain: perintah PORT menentukan alamat IP dan port layanan yang diserang di komputer korban, dan perintah RETR/STOR memanggil port ini atas nama server FTP, dan bukan penyerang. mesin, yang memungkinkan untuk mengatur serangan DDoS skala besar menggunakan banyak server FTP sekaligus, atau melewati sistem keamanan komputer korban jika hanya mengandalkan pemeriksaan IP klien dan server FTP yang digunakan untuk serangan tersebut terletak di a jaringan atau gateway tepercaya. Akibatnya, hampir semua server sekarang memeriksa apakah alamat IP yang ditentukan dalam perintah PORT cocok dengan alamat IP klien FTP dan, secara default, melarang penggunaan alamat IP pihak ketiga di sana. Oleh karena itu, penggunaan FXP tidak dimungkinkan saat bekerja dengan server FTP publik.

    Lihat juga

    • Daftar server FTP (Bahasa Inggris)
    • Perintah server FTP dan kode kesalahan

    Tautan

    • Spesifikasi FTP asli RFC 959
    • Ekstensi Keamanan RFC 2228
    • Internasionalisasi FTP RFC 2640
    • Ekstensi NAT-PT untuk mendukung FTP RFC 2766
    • Enkripsi KEA dan SKIPJACK RFC 2773
    • Ekstensi Perintah FTP RFC 3659