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:
220— server tayyor;230— foydalanuvchi muvaffaqiyatli kirdi;331— parol kerak;425— data connection ochilmadi;530— autentifikatsiya muvaffaqiyatsiz;550— fayl 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:
- client boshqaruv kanalini ochadi;
PORTbuyrug‘i bilan data portini bildiradi;- server clientga yangi TCP ulanish ochadi;
- 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:
- rasm;
- video;
- arxiv;
- executable;
- PDF;
- database dump;
- audio;
- shifrlangan fayl.
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:
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 FTPS — client odatda 21-portga ulanadi va
AUTH TLSorqali shifrlashni yoqadi; - Implicit FTPS — TLS 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:
- DNS va IP reachability;
- TCP 21-port;
- active yoki passive rejim;
- passive port diapazoni;
- NAT;
- firewall;
- foydalanuvchi ruxsati;
- disk bo‘sh joyi;
- ASCII yoki binary mode;
- TLS;
- server loglari;
- chroot katalogi;
- file ownership.
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