⚙️ FTP Protokolü: Temel Yapı
FTP (File Transfer Protocol), istemci-sunucu mimarisiyle çalışan bir protokoldür. TCP/IP üzerinden port 21 kullanarak bağlantı kurar. İki temel kanal vardır:
-
Kontrol Kanalı: Komutların gönderildiği ve yanıtların alındığı kanal.
-
Veri Kanalı: Dosya transferinin gerçekleştiği kanal.
🔁 Aktif ve Pasif Modlar
Mod | Açıklama |
---|---|
Aktif | Sunucu, istemciye veri bağlantısı için geri bağlanır (port 20). |
Pasif | İstemci, sunucunun belirttiği port üzerinden veri bağlantısı kurar. |
Pasif mod, NAT ve güvenlik duvarı arkasındaki istemciler için daha uygundur.
🔐 Güvenlik Katmanları
FTP protokolü şifreleme içermez. Bu nedenle güvenli alternatifler tercih edilir:
-
FTPS (FTP Secure): SSL/TLS ile FTP trafiğini şifreler.
-
SFTP (SSH File Transfer Protocol): SSH üzerinden dosya transferi sağlar, FTP ile ilgisi yoktur ama benzer işlev görür.
🧪 Komutlar ve Yanıt Kodları
FTP istemcileri, RFC 959’a göre belirlenmiş komutları kullanır. Örnekler:
📤 Yaygın FTP Komutları
Komut | Açıklama |
---|---|
USER |
Kullanıcı adı gönderir |
PASS |
Şifre gönderir |
LIST |
Dosya listesini getirir |
RETR |
Dosya indirir |
STOR |
Dosya yükler |
DELE |
Dosya siler |
QUIT |
Oturumu sonlandırır |
📥 Yanıt Kodları
Kod Aralığı | Anlamı |
---|---|
1xx | Pozitif ön bilgi |
2xx | Başarılı işlem |
3xx | Ek bilgi gerek |
4xx | Geçici hata |
5xx | Kalıcı hata |
Örnek: 220
– Sunucu hazır, 530
– Giriş başarısız.
🖥️ FTP Programlarının Teknik Özellikleri
FileZilla (Açık kaynak)
-
Protokol desteği: FTP, FTPS, SFTP
-
Bağlantı yönetimi: Sekmeli bağlantılar, site yöneticisi
-
Hata ayıklama: Ayrıntılı günlükleme
-
Yükleme sırası: Kuyruk sistemi ile dosya yönetimi
WinSCP
-
SFTP/FTP/FTPS desteği
-
Komut dosyası ve otomasyon: PowerShell entegrasyonu
-
GUI + CLI: Hem grafik hem komut satırı desteği
🧰 FTP Sunucu Yazılımları
Sunucu Yazılımı | Platform | Özellikler |
---|---|---|
vsftpd | Linux | Güvenli, hızlı, düşük kaynak tüketimi |
ProFTPD | Linux | Apache benzeri yapılandırma |
FileZilla Server | Windows | Kolay kurulum, GUI desteği |
🔄 Otomasyon ve Entegrasyon
FTP işlemleri genellikle otomatikleştirilir:
-
Cron job / Task Scheduler ile zamanlanmış transferler
-
CI/CD entegrasyonu: Build sonrası dosya dağıtımı
-
API ile FTP istemcisi: Python (ftplib), PHP (ftp_* fonksiyonları)