Teknik yazılar

FTP, SFTP ve FTPS Nedir?

Dosya transferi kulağa çok sıradan geliyor ama konu internetin üstünden dosya taşımaya gelince iş hızla karmaşıklaşabiliyor. Özellikle "ben sadece bir dosya atacağım" deyip güvenlik, port, şifreleme ve sunucu ayarı deryasına düşmek hiç zor değil. Bu yazıda FTP, SFTP ve FTPS arasındaki farkı sade bir dille toparlayacağım.

FTP nedir?

FTP, açılımı ile File Transfer Protocol, dosya gönderip almak için tasarlanmış eski bir protokoldür. Temel amacı nettir: bir istemci ve bir sunucu arasında dosya listesi görmek, indirmek ve yüklemek.

Parola ile giriş yapılabilir; ama önemli sorun şu ki FTP, bu bilgileri şifrelemez. Yani kullanıcı adı, parola ve veri trafiği ağ üzerinde açık şekilde taşınabilir. Aynı yerel ağda biri trafiği dinleyebiliyorsa, işin rengi hızlıca bozulur.

Bu yüzden FTP bugün hâlâ bazı eski sistemlerde ya da kapalı ağlarda görülse de, genel kullanımda güvenli bir seçenek sayılmaz.

Aktif ve pasif mod

FTP'nin kafa karıştıran yanlarından biri de aktif ve pasif mod farkıdır.

  • Aktif modda istemci sunucuya kontrol bağlantısını açar, ardından sunucu veri bağlantısı için istemciye geri bağlanmaya çalışır.
  • Pasif modda istemci hem kontrol hem de veri bağlantısını başlatır; sunucu yalnızca veri için hangi portun kullanılacağını söyler.

Pratikte pasif mod çoğu zaman daha rahat çalışır. Çünkü istemci tarafında NAT ve güvenlik duvarı varsa, dışarıdan gelen bağlantıyı kabul ettirmek zor olabilir. Pasif mod bu derdi azaltır.

FTP aktif ve pasif mod diyagramı Görsel: Jscape, FTP active/passive mode diyagramı

FTP neden MITM riski taşır?

MITM, yani man-in-the-middle, araya giren saldırganın trafiği okuması ya da değiştirmesi anlamına gelir. FTP’de şifreleme olmadığı için:

  • kullanıcı adı ve parola görülebilir
  • dosya içeriği okunabilir
  • bazı durumlarda trafik değiştirilebilir

Yani saldırgan sadece dinlemekle kalmaz, uygun ortamda trafiğe müdahale etme şansı da bulur. FTP’nin güvenlik açısından zayıf kabul edilmesinin ana sebeplerinden biri budur.

SFTP nedir?

SFTP, adına bakınca FTP’nin güvenli hali gibi görünür; ama teknik olarak başka bir protokoldür. Açılımı SSH File Transfer Protocol olarak geçer ve SSH üstünden çalışır.

Yani SFTP, dosya transferini SSH bağlantısının içinde yapar. Bu sayede:

  • trafik şifrelenir
  • parola ve içerik korunur
  • tek bir güvenli kanal üzerinden işlem yapılır

SFTP'nin en büyük avantajı, pratikte yönetiminin görece kolay olmasıdır. SSH zaten birçok sunucuda aktif olduğu için, dosya transferini de aynı altyapıdan yapmak rahat olur.

Parmak izi ile doğrulama nedir?

SFTP bağlanırken sadece kullanıcı adı ve parola yetmez; sunucunun gerçekten doğru sunucu olduğundan da emin olmak istersiniz. İşte burada host key fingerprint yani parmak izi devreye girer.

Parmak izi, sunucunun SSH anahtarının kısa bir özetidir. Anahtarın tamamını ezberlemek yerine, bu özet üzerinden sunucunun kimliğini kontrol edersiniz. İlk bağlantıda sunucunun parmak izini güvenilir bir kaynaktan alır, istemci tarafında doğrularsınız. Sonraki bağlantılarda aynı parmak izi geliyorsa, "evet, bu aynı sunucu" dersiniz.

Bu mantık, sahte bir sunucunun araya girip kendini gerçek sunucu gibi göstermesini zorlaştırır. Yani sadece bağlantının şifreli olması yetmez; karşıdaki tarafın kim olduğunu da doğrulamak gerekir.

SFTP’nin artıları

  • Güvenlidir
  • Modern kullanım için uygundur
  • Tek port ve tek güvenli kanal üzerinden çalışır
  • Sunucu yönetimi açısından pratiktir

SFTP’nin eksileri

  • FTP ile aynı şey değildir
  • Bazı eski sistemler sadece FTP destekleyebilir
  • Dosya transferi dışında protokol farkları nedeniyle bazı entegrasyonlar yeniden düşünülmelidir

FTPS nedir?

FTPS, FTP'nin TLS/SSL ile güvenli hale getirilmiş sürümüdür. Yani burada temel protokol hâlâ FTP'dir; üzerine şifreleme eklenmiştir. Bu yönüyle SFTP'den farklıdır.

FTPS'te bağlantı şifrelenir ve veri güvenliği artar. Ancak eski FTP davranışlarının bir kısmı korunur, bu da bazen kurulum ve ağ yapılandırması tarafında ekstra karmaşıklık yaratır.

FTPS ne zaman tercih edilir?

  • Mevcut altyapı FTP üzerine kurulmuşsa
  • Uyum nedeniyle FTP mantığını korumak gerekiyorsa
  • Kurumsal ortamlarda TLS ile güvenlik eklenmek isteniyorsa

FTPS, güvenlik açısından FTP'den çok daha iyidir. Yine de pratikte SFTP kadar sade bir deneyim sunmayabilir.

Kısa karşılaştırma

ProtokolŞifrelemeTemel yapıGüncel kullanım
FTPYokKlasik dosya transferiZayıf, eski sistemlerde
SFTPVarSSH üzerinden dosya transferiEn pratik ve güvenli seçeneklerden biri
FTPSVarFTP + TLS/SSLEski FTP altyapısını güvenli hale getirmek için

Hangisini seçmeliyim?

Kısa cevap: çoğu durumda SFTP.

Daha uzun cevap:

  • Yeni bir sistem kuruyorsanız: SFTP
  • Eski FTP altyapınız varsa ama güvenlik istiyorsanız: FTPS
  • Sadece eski bir sistemle mecburi uyumluluk gerekiyorsa: FTP

Benim önerim basit: güvenlik ihtiyacı olan bir ortamda FTP kullanmayın. Eğer teknik olarak mümkünse SFTP ile ilerleyin. Kurumsal gereksinimler veya mevcut sistem sizi FTPS’e zorluyorsa, onu değerlendirin.

Port meselesi neden kafa karıştırıyor?

Bu üçlü arasındaki en çok karıştırılan konulardan biri port ve bağlantı davranışıdır.

  • FTP ayrı kontrol ve veri kanalları kullanır
  • SFTP genelde SSH portu üzerinden çalışır
  • FTPS ise FTP davranışını şifreleme ile birlikte sürdürdüğü için ağ tarafında daha karmaşık olabilir

Bu yüzden güvenlik duvarı, NAT ve sunucu ayarları bazen protokolün kendisinden daha çok uğraştırır.

Sonuç

FTP, dosya aktarımının eski ama zayıf güvenlikli yüzüdür. SFTP, günümüzde çoğu senaryo için daha temiz ve güvenli çözümdür. FTPS ise FTP tabanını koruyup güvenlik eklemek isteyenler için ara bir yoldur.

Eğer yeni bir iş kuruyorsanız, genelde en doğru cevap SFTP olur. Eski sistemlerin mirası ise bazen FTPS’i, nadiren de FTP’yi masaya getirir.

Kısacası: dosya transferinde amaç sadece dosyayı taşımak değil, taşırken onu ortada açık bırakmamaktır.