FTP vs SFTP: Güvenli dosya transferi için net rehber
FTP ve SFTP farkını; şifreleme, portlar, kimlik doğrulama, riskler ve pratik geçiş adımlarıyla net şekilde karşılaştırın.
Dosya transferi, web uygulamalarında kod güncellemesinden yedek (backup) aktarmaya kadar her gün yapılan bir işlemdir. Ancak kullandığınız protokol, verinin şifrelenip şifrelenmediğini ve saldırganların trafiği görüp göremeyeceğini belirler. Bu rehberde FTP ve SFTP’yi, güvenlik etkileri ve operasyonel pratikleriyle net şekilde ayıracağız; ayrıca SFTP’ye geçiş için uygulanabilir adımları vereceğiz.
FTP ve SFTP ne sağlar? Temel farkı ilk günden anlayın
FTP (File Transfer Protocol) istemciden sunucuya dosya gönderirken kimlik bilgileri dahil trafiği şifrelemez. Bu nedenle kullanıcı adı/parola ve veri içeriği ağ üzerinde okunabilir hale gelebilir. Üstelik FTP, kontrol kanalı ve veri kanalı olmak üzere farklı bağlantılar kullandığı için, güvenlik katmanları ve NAT/firewall kuralları daha karmaşık olur.
SFTP (SSH File Transfer Protocol) ise dosya transferini SSH (Secure Shell) üzerinden yapar. Bu sayede aktarım sırasında hem kimlik doğrulama hem de veri şifrelenir. SFTP, güvenli dosya transferi ihtiyacında standart tercih olmasının ana nedenidir.
Protokoller arası farkı hızlı kontrol
- Şifreleme: FTP’de yok, SFTP’de var
- Güvenli kimlik doğrulama: SFTP’de parola + SSH anahtarı (key) ile doğrulama mümkün
- Ağ davranışı: FTP veri kanalıyla iki bağlantı modeli kullanır; SFTP tek bir kanal mantığıyla çalışır
- Port: FTP genellikle 21 (ve ayrıca veri için farklı portlar), SFTP genellikle 22
Güvenlik açısından gerçek risk: kim hangi veriyi görebilir?
FTP kullanıldığında tipik olarak şu senaryolar risk oluşturur:
- Aynı ağ içi dinleme (sniffing): Özellikle müşterinin ofisi/ev ağı ya da ortak Wi‑Fi gibi ortamlarda, FTP trafiği okunabilir.
- Ara saldırılar (MITM): FTP’de sunucu doğrulaması çoğu zaman zayıftır. Kullanıcı doğru sunucuya bağlandığını garanti etmeden işlem yapabilir.
- Parola sızıntısı: Şifreleme olmadığı için saldırgan kullanıcı adını/parolayı ele geçirebilir.
- Dosya içeriği ifşası: Uygulama kodu, veritabanı dump dosyaları, yapılandırma dosyaları (ör. .env) gibi içerikler okunabilir olabilir.
SFTP ise bu risklerin tamamını “trafik şifreleme” seviyesinde büyük ölçüde azaltır:
- SSH oturum anahtarı üzerinden şifreli taşıma yapılır.
- SSH anahtarı (public key) ile doğrulama, parola tekrar kullanımını azaltır.
- Sunucu kimliğini doğrulama (host key doğrulama) pratik olarak daha kontrollü hale gelir.
Ne zaman FTP hâlâ kullanılır?
FTP’nin “kullanım alanı kalmadı” demek doğru olmaz; bazı eski sistemlerde ya da belirli entegrasyonlarda FTP zorunlu olabilir. Ancak yeni kurulumlarda, özellikle prod ortamı ve kaynak kodu/konfig aktarımı gibi durumlarda SFTP varsayılan güvenli tercihtir.
Operasyonel farklar: portlar, kontrol paneli ve yetkilendirme
Güvenlik kadar pratiklik de önemlidir. SFTP’ye geçerken şu noktalar genellikle belirleyicidir:
Hangi portlar ve ağ kısıtları işin içine girer?
- FTP: Yönetim/uygulama güvenlik duvarında genellikle hem 21 hem de FTP veri kanalı için ek kurallar istenir. Bu, firewall/NAT kurulumlarında sorun çıkarabilir.
- SFTP: Genellikle yalnızca 22 portu gerektirir. Kurulum ve güvenlik duvarı yönetimi daha nettir.
Bu nedenle “güvenlik duvarında tek portla çalışalım” hedefleyen ekipler SFTP’yi daha hızlı hayata geçirir.
Hosting kontrol panelinde ne görürsünüz?
Çoğu hosting senaryosunda dosya transferi için: - FTP/SFTP girişleri için kullanıcı oluşturulur. - Dizin (root) yetkileri belirlenir. - Bazı paneller “SFTP only” gibi seçenek sunar.
SFTP’de ayrıca şu pratik önem kazanır: - Chroot/jail mantığı: Kullanıcının sadece belirli dizinle sınırlanması (panelde destekleniyorsa). - Dosya izinleri: Sunucu tarafında kullanıcıya verilen okuma/yazma izinleri.
Yetkilendirmeyi doğru tasarlayın
FTP veya SFTP fark etmeksizin hataya açık nokta “her kullanıcıya her yere yazma yetkisi vermek”tir.
- Uygulama kodu aktarımı için yalnızca uygulama dizini yazma yetkisi verin.
- Yedek (backup) dosyaları için ayrı bir dizin ve mümkünse ayrı kullanıcı kurgulayın.
- Konfig (ör. .env) dosyalarına yazma yetkisini minimumda tutun.
Net karşılaştırma tablosu: karar vermeyi kolaylaştıran kriterler
| Kriter | FTP | SFTP |
|---|---|---|
| Aktarım şifreleme | Yok | Var (SSH üzerinden) |
| Kimlik doğrulama | Genellikle parola odaklı | Parola + SSH anahtarı (key) ile |
| Veri içeriği güvenliği | Ağda okunabilir olabilir | Şifreli taşınır |
| Sunucu doğrulama | Zayıf/bağımlı | SSH host key ile kontrollü |
| Firewall/NAT karmaşıklığı | Daha yüksek (ek veri kanalı) | Daha düşük (tek kanal/22) |
| Uygulama/konfig dosyası taşıma | Riskli | Tercih edilir |
| Yedek dosyası taşıma | Riskli | Standart güvenli yaklaşım |
| Yeni kurulum önerisi | Hedefli/istisnai | Birincil seçenek |
SFTP’ye geçiş: sıfırdan, net ve kontrol edilebilir adımlar
Aşağıdaki adımlar, bir web projesinde FTP’den SFTP’ye geçerken “kesintisiz” ilerlemenize yardımcı olur.
1) Mevcut durumunuzu ölçün
Önce şu bilgileri çıkarın: - Hangi kullanıcı FTP ile bağlanıyor? - Bağlantı hangi dizine (root) yapılıyor? - Transfer yapılan dosya türleri neler (kod, medya, yedek dump, log vs.)? - Transfer sıklığı (günlük kaç kez) ve kim yapıyor?
Bu çıktı olmadan geçiş sırasında “hangi kullanıcıya hangi dizin yetkisi verilmeli?” sorusu belirsiz kalır.
2) SFTP kullanıcılarını ve kök dizini (root) ayarlayın
Hosting panelinizde veya sunucuda şu düzeni uygulayın: - FTP kullanan kullanıcıyı SFTP için de tanımlayın. - Kullanıcıyı sadece gerekli dizine kısıtlayın. - Yazma gerekmeyen dizinlere yazma izni vermeyin.
İsterseniz aşağıdaki gibi bir dizin planı kullanın:
- /var/www/uygulama (kod)
- /var/backups (yedek)
- /var/uploads (yüklemeler)
Her kullanıcıyı bir iş rolüne göre eşleştirin.
3) SSH anahtarı (key) ile kimlik doğrulamayı devreye alın
Parolalar pratik olsa da güvenliği artırmanın net yolu SSH anahtarıdır.
- Yerel cihazınızda SSH key üretin.
- Public key’i sunucuda ilgili kullanıcıya ekleyin.
- Parola oturumunu kapatmak veya kısıtlamak için sunucu ayarlarını kontrol edin.
SSH anahtarı kullanmanız, parolanın ağ üzerinde tekrar tekrar geçmesini azaltır ve yönetimi standardize eder.
4) İlk testleri küçük kapsamda yapın
Geçişte “tüm projeyi” aynı anda taşımak yerine şu test akışını uygulayın:
- Küçük bir dosya setini SFTP ile gönderin.
- Dosyaların izinlerini (permission) kontrol edin.
- Uygulamanın bu dosyaları okuduğunu doğrulayın.
- Medya ve statik içerik için web erişimini test edin.
5) Kesintisiz geçiş için zaman planı yapın
- FTP kullanıcılarını geçici süreyle “yalnızca okuma” seviyesine çekmek gibi bir yol bulamıyorsanız, geçişi belirli bir pencerede yapın.
- Güncelleme akışınız CI/CD ise SFTP’yi “manual değişiklikler” için sınırlayın.
6) FTP’yi kapatma stratejisi
Güvenliği maksimize etmek için hedef şu olmalı: - FTP oturumlarını mümkün olduğunca devre dışı bırakın. - Sunucuda FTP servisi çalışıyorsa kapatın. - Firewall üzerinden FTP portunu açmayın.
Bu yaklaşım, “yanlışlıkla yeniden FTP kullanımı” riskini düşürür.
SFTP kullanırken 5 kritik kontrol noktası
1) İzinleri kontrol edin (write minimizasyonu)
SFTP’de bile kullanıcıya gereğinden fazla yazma yetkisi vermeyin. Uygulama dizininde yazma yetkisi gerekir; konfig/servis dosyalarında gerekmeyebilir.
2) Kullanıcı başına dizin kısıtı (jail/chroot)
Panel destekliyse kullanıcıyı belirli dizinle sınırlayın. Bu, yetki aşımı riskini azaltır.
3) Logları düzenli izleyin
SFTP/SSH tarafında oturum açma denemeleri ve başarısız girişler loglarda görünür. Anormal giriş sayısı, kimlik doğrulama saldırısı belirtisi olabilir.
4) Anahtarları döngüsel yönetin
SSH key kullanıyorsanız: - İşten ayrılan personel varsa key’i kaldırın. - Key’i paylaşmak yerine her kullanıcıya ayrı key tanımlayın.
5) Dosya bütünlüğü kontrolü (hash)
Özellikle üretime yükleme yaparken, dosyaların bozulmadığını doğrulamak için hash doğrulaması (ör. SHA256) kullanın. Bu, “dosya aktarıldı ama eksik geldi” türü sorunları erken yakalar.
FTP yerine SFTP seçiminin net sonucu
FTP ile SFTP arasındaki fark yalnızca “farklı bir araç” değildir. FTP’de şifreleme olmadığı için kimlik bilgileri ve dosya içeriği ağ üzerinde okunabilir risk taşır. SFTP ise SSH katmanıyla şifreli taşıma sağlar; bu nedenle kod, yedek ve konfig aktarımı gibi kritik işlerde SFTP doğrudan daha doğru tercihtir.
Sonuç: bugün net karar verin
FTP’yi hâlâ kullanıyorsanız, öncelik listeniz şu sırada ilerlemeli: (1) SFTP kullanıcı/dizin tasarımı, (2) SSH key ile doğrulama, (3) küçük kapsamlı test, (4) geçiş penceresi ve (5) FTP servisinin kapatılması. Bu adımları uyguladığınızda dosya transferi trafiğiniz şifreli hale gelir ve “parola/konfig ifşası” riskini büyük oranda ortadan kaldırırsınız.
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
VPS’te Windows Server Kurulumu: Adım Adım Net Rehber
VPS üzerinde Windows Server kurulumunu UEFI, ağ, lisans, rol yükleme ve güvenlik adımlarıyla net şekilde öğrenin; pratik kontrol listesiyle.
Fail2ban Kurulumu: Sunucunuzu Otomatik Koruma Rehberi (2026)
Fail2ban ile SSH ve web servislerini brute-force denemelerine karşı otomatik koruyun. Adım adım kurulum, jails, log analizi ve doğrulama.
WordPress yedekleme: UpdraftPlus mı sunucu yedeği mi?
WordPress’te yedek stratejisini netleştirin: UpdraftPlus (eklenti) ile sunucu yedeği farkları, restore testi, RPO/RTO ve doğru kombinasyon.
Robots.txt ve sitemap.xml: Hosting’de en iyi yerleşim rehberi
Robots.txt ve sitemap.xml dosyalarının doğru dizilimi, hosting’de etkili yerleşimi ve hataları düzeltme adımlarıyla SEO risklerini azaltın.
