Bosh sahifa Wiki FTP

FTP

FTP — kompyuterlar o‘rtasida fayl uzatish, kataloglarni ko‘rish va masofadagi fayllarni boshqarish uchun yaratilgan tarmoq protokoli. Uning to‘liq nomi File Transfer Protocol hisoblanadi.

FTP mijoz–server modelida ishlaydi. Foydalanuvchi FTP client orqali serverga ulanadi, autentifikatsiyadan o‘tadi va ruxsat berilgan kataloglarda fayl yuklaydi yoki yuklab oladi.

FTP tarixan internetdagi eng muhim fayl almashish protokollaridan biri bo‘lgan. Biroq oddiy FTP trafikni shifrlamagani sababli zamonaviy xavfsiz tarmoqlarda ko‘pincha SFTP, FTPS yoki HTTPS bilan almashtiriladi.

Boshqaruv va ma’lumot kanallari

FTPning asosiy xususiyati — boshqaruv va fayl uzatish uchun alohida TCP ulanishlaridan foydalanishi.

Boshqaruv kanali

Boshqaruv kanali odatda TCP 21-port orqali ochiladi. Bu ulanishda:

  • foydalanuvchi nomi;
  • parol;
  • katalogni o‘zgartirish;
  • fayl nomi;
  • uzatish turi;
  • server statuslari;
  • sessiyani yakunlash

kabi buyruqlar uzatiladi.

Boshqaruv sessiyasi bir nechta fayl uzatish davomida ochiq qolishi mumkin.

Ma’lumot kanali

Fayl mazmuni yoki katalog ro‘yxati alohida data connection orqali uzatiladi. Har bir LIST, RETR yoki STOR amali yangi data connection yaratishi mumkin.

Alohida kanal tuzilishi FTPni NAT va firewall orqali o‘tkazishni murakkablashtiradi. Tarmoq qurilmasi faqat 21-portga ruxsat berishi yetarli bo‘lmasligi mumkin.

FTP sessiyasi

Oddiy FTP sessiyasi quyidagicha ko‘rinadi:

S: 220 FTP server ready
C: USER farrukh
S: 331 Password required
C: PASS ********
S: 230 User logged in
C: PWD
S: 257 "/home/farrukh"
C: TYPE I
S: 200 Type set to I
C: PASV
S: 227 Entering Passive Mode
C: RETR archive.zip
S: 150 Opening data connection
S: 226 Transfer complete
C: QUIT

Server javoblari uch xonali status kodi bilan boshlanadi.

Status kodlari

Kod guruhi Mazmuni
1xx Amal boshlandi, yakuniy javob keyin keladi
2xx Amal muvaffaqiyatli
3xx Qo‘shimcha ma’lumot talab qilinadi
4xx Vaqtinchalik xato
5xx Doimiy xato yoki buyruq rad etildi

Keng tarqalgan kodlar:

  • 220server tayyor;
  • 230 — foydalanuvchi muvaffaqiyatli kirdi;
  • 331 — parol kerak;
  • 425data connection ochilmadi;
  • 530 — autentifikatsiya muvaffaqiyatsiz;
  • 550fayl yoki ruxsat bilan bog‘liq xato.

Active mode

Active rejimda client data connection uchun o‘z IP va portini serverga bildiradi. Server odatda TCP 20-port tomonidan client ko‘rsatgan portga qayta ulanadi.

Jarayon:

  1. client boshqaruv kanalini ochadi;
  2. PORT buyrug‘i bilan data portini bildiradi;
  3. server clientga yangi TCP ulanish ochadi;
  4. fayl yoki katalog ro‘yxati uzatiladi.

Client NAT ortida bo‘lsa, server tashqaridan ichki manzilga ulana olmasligi mumkin. Firewall ham kiruvchi ulanishni bloklaydi.

Passive mode

Passive rejimda server data connection uchun port ochadi va clientga shu portni bildiradi. Client ulanishni o‘zi boshlaydi.

PASV buyrug‘i IPv4 uchun klassik passive rejimni yoqadi. EPSV esa IPv4 va IPv6da soddaroq formatdan foydalanishi mumkin.

Passive rejimning afzalligi:

  • client tomonda kiruvchi ulanish talab qilmaydi;
  • NAT bilan yaxshiroq ishlaydi;
  • firewall siyosatini boshqarish osonroq;
  • zamonaviy clientlarda keng qo‘llanadi.

Server passive port diapazonini oldindan belgilab, firewall orqali faqat shu diapazonga ruxsat berishi mumkin.

Asosiy buyruqlar

Buyruq Vazifasi
USER Foydalanuvchi nomini yuborish
PASS Parolni yuborish
PWD Joriy katalogni ko‘rish
CWD Katalogni o‘zgartirish
LIST Katalog tarkibini olish
RETR Serverdan fayl yuklash
STOR Serverga fayl yuklash
DELE Faylni o‘chirish
MKD Katalog yaratish
RMD Katalogni o‘chirish
RNFR, RNTO Fayl yoki katalog nomini o‘zgartirish
TYPE Uzatish turini tanlash
QUIT Sessiyani yopish

Server foydalanuvchi ruxsatiga qarab ayrim buyruqlarni taqiqlashi mumkin.

ASCII va binary rejim

FTP fayl uzatishda ikki mashhur rejimga ega.

ASCII

Matn fayllari uchun mo‘ljallangan. Server va client satr yakunlarini operatsion tizim formatiga moslashtirishi mumkin.

Binary

Fayl baytlarini o‘zgartirmasdan uzatadi. Quyidagilar binary rejimda yuboriladi:

Binary fayl ASCII rejimda yuborilsa, ayrim baytlar o‘zgarib, fayl buzilishi mumkin.

Anonymous FTP

Anonymous FTP ommaviy fayllarni foydalanuvchi hisobisiz tarqatish uchun ishlatilgan.

Odatda:

Username: anonymous
Password: email yoki ixtiyoriy qiymat

Anonymous foydalanuvchiga:

  • faqat ma’lum katalogni ko‘rish;
  • fayl yuklab olish;
  • ba’zan upload katalogiga yozish

ruxsati beriladi.

Upload ruxsati noto‘g‘ri sozlansa, server zararli fayl tarqatish yoki noqonuniy kontent saqlash uchun ishlatilishi mumkin.

Faylni davom ettirish

Katta fayl uzatish uzilib qolsa, FTP REST buyrug‘i orqali ma’lum offsetdan davom ettirishi mumkin.

Bu imkoniyat:

  • katta arxivlar;
  • beqaror tarmoq;
  • uzoq masofadagi server;
  • zaxira nusxa

uchun qulay.

Client va server resume imkoniyatini qo‘llashi kerak. Fayl o‘zgargan bo‘lsa, davom ettirilgan nusxa buzilishi mumkin.

Oddiy FTP xavfsizligi

Oddiy FTPda quyidagilar shifrlanmaydi:

  • login;
  • parol;
  • buyruqlar;
  • fayl nomlari;
  • katalog ro‘yxati;
  • fayl mazmuni.

Trafikni kuzata oladigan shaxs parol va uzatilayotgan faylni o‘qishi mumkin. Server identifikatsiyasi ham kriptografik tarzda tekshirilmaydi.

Shu sababli oddiy FTP:

  • umumiy internet;
  • mehmon Wi‑Fi;
  • maxfiy hujjatlar;
  • foydalanuvchi parollari;
  • ishlab chiqarish deploymenti

uchun mos emas.

FTPS

FTPS — FTP protokolini TLS bilan himoyalangan ko‘rinishi.

Ikki asosiy usul mavjud:

  • Explicit FTPSclient odatda 21-portga ulanadi va AUTH TLS orqali shifrlashni yoqadi;
  • Implicit FTPSTLS ulanish boshidan yoqiladi, tarixan 990-port bilan bog‘langan.

FTPS FTPning ikki kanalli arxitekturasini saqlaydi. Shu sababli firewall va passive port sozlamalari hali ham muhim.

SFTP bilan farqi

SFTP nomi o‘xshash bo‘lsa ham, FTP oilasiga tegishli emas.

Jihat FTP SFTP
Transport TCP, alohida control va data ulanishlar
Himoya Oddiy FTPda yo‘q
SFTP transporti SSH ichida
Port 21 va qo‘shimcha data portlar
SFTP porti Odatda 22
Firewall Murakkabroq
SFTP Bitta SSH ulanishi

FTP client dasturi har doim SFTPni qo‘llashi shart emas.

Server konfiguratsiyasi

FTP serverda quyidagilar belgilanadi:

  • foydalanuvchi katalogi;
  • read va write ruxsatlar;
  • anonymous access;
  • passive port diapazoni;
  • maksimal ulanishlar;
  • transfer speed limit;
  • login urinishlari;
  • loglar;
  • TLS sertifikat;
  • chroot;
  • fayl nomi va hajm cheklovi.

Foydalanuvchini chroot bilan ma’lum katalogga cheklash uning butun fayl tizimini ko‘rishini oldini oladi.

Diagnostika

FTP ulanish ishlamasa, boshqaruv va data kanali alohida tekshiriladi.

Asosiy tekshiruvlar:

Login muvaffaqiyatli bo‘lib, katalog ro‘yxati chiqmasa, ko‘pincha data connection bloklangan bo‘ladi.

Bog‘liq tushunchalar

File transfer, FTP client, FTP server, Active mode, Passive mode, TCP, FTPS, SFTP, Chroot, Anonymous FTP, TLS