Hem SFTP hem de FTPS, FTP aktarımlarınızı şifreler. Her ikisinin adında da "S" harfi vardır. Sık sık birbirleriyle karıştırılırlar — ve bu karışıklık önemlidir, çünkü bunlar tamamen farklı teknolojilerdir ve çalışma biçimleri de birbirinden tamamen ayrıdır.
Bağlantı kurarken yanlış birini seçmek başarısız bir bağlantıya yol açar. Doğrusunu seçmek ise her birinin gerçekte ne olduğunu anlamayı gerektirir. İşte açık ve net bir açıklama.
FTP: temel protokol
Güvenli varyantlara geçmeden önce düz FTP'yi anlamak faydalıdır. Dosya Aktarım Protokolü (File Transfer Protocol), 1970'lerin başında tasarlandı — internetin bugünkü haline yakın olmadığı bir dönemde. Hiçbir şifreleme içermez. Kimlik bilgileriniz (kullanıcı adı ve şifre) ağ üzerinden düz metin olarak iletilir. Dosyalarınızın içeriği de öyle.
FTP, trafiğin güvenilir bir ortamı hiç terk etmediği dahili ağlarda, eski barındırma altyapılarında ya da şifrelemenin sorun olmadığı kontrollü ortamlarda hâlâ yaygın biçimde kullanılmaktadır. Basittir, çalışır ve neredeyse her sunucu tarafından desteklenir. Ancak genel internet üzerinde kimlik bilgilerini düz metin olarak göndermek kesinlikle istenmez.
İşte iki güvenli varyant burada devreye girer — ve insanların kafasının karışmaya başladığı yer de burasıdır.
SFTP (SSH Dosya Aktarım Protokolü)
Adına karşın, SFTP, güvenlik eklenmiş bir FTP değildir. SSH (Güvenli Kabuk) protokol paketinin bir parçası olarak bağımsız biçimde geliştirilmiş, tamamen farklı bir protokoldür.
SFTP, SSH üzerinden 22 numaralı bağlantı noktasında çalışır. Kimlik doğrulama, komutlar ve dosya içerikleri dahil her şey SSH katmanı tarafından şifrelenir. Kullanıcıya bakıldığında sonuç aynı görünse de (dosya aktarımı) bir SFTP istemcisi ile standart bir FTP istemcisi birbirinden temelden farklı protokollerle konuşur.
SFTP'nin temel özellikleri:
- SSH üzerinden çalışır. Bir sunucuda SSH etkinleştirilmişse büyük olasılıkla SFTP de hazırdır — ayrıca bir kurulum gerekmez.
- Tek bağlantı noktası (22). Tüm iletişim tek bir port üzerinden gerçekleşir; bu da güvenlik duvarı yapılandırmasını basitleştirir.
- Anahtar tabanlı kimlik doğrulama. Şifre yerine SSH anahtar çiftiyle kimlik doğrulaması yapabilirsiniz. Özel anahtar hiçbir zaman makinenizi terk etmez; sunucu yalnızca genel anahtarı saklar. Bu, şifre doğrulamaya kıyasla çok daha güvenlidir.
- Uçtan uca şifreleme. Hangi ağda olursanız olun, kimlik bilgileri ve dosya içerikleri her zaman şifrelenir.
- TLS sertifikasına gerek yoktur. Kimlik doğrulama, SSH üzerinden SSH anahtarları veya şifrelerle yapılır — sertifika yetkilisine ya da sertifika yenilemeye gerek kalmaz.
FTPS (TLS üzerinden FTP)
FTPS, mevcut FTP protokolüne TLS şifrelemesinin eklenmiş halidir. Farklı bir yaklaşım söz konusudur: mevcut FTP protokolünü alıp HTTPS'in de kullandığı şifreleme katmanı olan TLS ile sarmalamak.
İki farklı FTPS modu vardır:
Açık FTPS (FTPES)
İstemci, 21 numaralı bağlantı noktasında (standart FTP portu) sunucuya bağlanır ve bağlantıyı şifreli hale getirmek için hemen bir AUTH TLS komutu gönderir. Sunucunun bu komutu desteklemesi gerekir. Bu moda "açık" denir çünkü istemci TLS yükseltmesini açıkça talep eder.
Örtük FTPS
İstemci 990 numaralı bağlantı noktasına bağlanır ve TLS el sıkışması hemen gerçekleşir — herhangi bir FTP iletişimi başlamadan önce. Şifrelenmemiş bir aşama yoktur. Bu mod daha az yaygındır ancak bazı sunucularda kullanılmaya devam etmektedir.
FTPS'nin temel özellikleri:
- FTP tabanlıdır. Aynı komut kümesi, aynı pasif/aktif mod değerlendirmeleri, veri aktarımları için aynı çok portlu davranış geçerlidir.
- TLS sertifikası gerektirir. Sunucunun periyodik olarak yenilenmesi gereken geçerli bir SSL/TLS sertifikasına ihtiyacı vardır.
- Güvenlik duvarı karmaşıklığı. Pasif moddaki FTP, dinamik bir veri portu aralığı açar. Güvenlik duvarlarının bu bağlantıları düzgün inceleyebilmesi için FTP'yi anlaması gerekir (buna FTP'ye duyarlı güvenlik duvarı denetimi denir). TLS şifrelemesiyle birlikte güvenlik duvarı FTP trafiğini inceleyemez; bu da pasif modu karmaşıklaştırabilir.
- Yalnızca şifre tabanlı kimlik doğrulama. FTPS, anahtar tabanlı kimlik doğrulamayı desteklemez — kullanıcı adı ve şifre ile kimlik doğrulaması yapılır (ancak bu bilgiler TLS tarafından şifrelenir).
- Yüksek uyumluluk. Pek çok kurumsal ve barındırma ortamı FTPS sunar; çünkü mevcut bir FTP altyapısından doğrudan yükseltme imkânı tanır.
Yan yana karşılaştırma
| Özellik | FTP | SFTP | FTPS |
|---|---|---|---|
| Temeli | FTP | SSH | FTP + TLS |
| Varsayılan port | 21 | 22 | 21 (açık) / 990 (örtük) |
| Şifreleme | Yok | Her zaman (SSH) | Evet (TLS) |
| Anahtar tabanlı kimlik doğrulama | Hayır | Evet | Hayır |
| Sertifika gereksinimi | Hayır | Hayır | Evet |
| Güvenlik duvarı uyumu | Karmaşık | Basit (1 port) | Karmaşık |
| Sunucu yaygınlığı | Evrensel | Her SSH sunucusu | Kurulum gerektirir |
Hangisini kullanmalısınız?
SFTP kullanın: sunucuyu kendiniz yönetiyorsanız (ya da SSH'lı bir Linux/Unix sunucusuysa), güvenlik önceliğinizse ve basit bir güvenlik duvarı yapılandırması istiyorsanız. SFTP, modern standarttır. Başka bir protokol kullanmak için belirli bir nedeniniz yoksa SFTP doğru tercihtir.
FTPS kullanın: barındırma sağlayıcınız veya bir müşterinin sunucusu bunu zorunlu kılıyorsa ya da mevcut bir FTP kurulumuna şifreleme ekleyip altyapıyı değiştirmek istemiyorsanız. Yıllardır FTP sunucusu işleten pek çok kurumsal ortam, mevcut yapıda daha az değişiklik gerektirdiği için FTPS'yi yükseltme yolu olarak tercih eder.
Düz FTP kullanın: şifrelemenin gerekli olmadığı güvenilir bir dahili ağdaysanız veya güvenli varyantların hiçbirini desteklemeyen eski bir sistemle çalışıyorsanız. Genel internet üzerindeki her şey için düz FTP'den tamamen uzak durun.
FTPSuite her üçünü de destekler
FTPull (otomatik indirme için) ve FTPush (otomatik yükleme için), FTP, SFTP ve FTPS'yi yerel olarak destekler. Bağlantı ayarlarında protokolü seçmek tek bir tıklamayı alır — uygulamanın altındaki farklılıkları otomatik olarak yönetir. Siz sunucu adresini, portu, kimlik bilgilerini ve protokolü girersiniz; geri kalanını uygulama halleder.
Sunucunuzun hangi protokolü kullandığından emin değilseniz kılavuzumuza bakın: FTP, SFTP ve FTPS: Sunucunuz Hangi Protokolü Kullanıyor?