SFTP vs FTPS: Güvenli Dosya Transferi, Yapılandırma ve En İyi Uygulamalar

SFTP vs FTPS: Güvenli Dosya Transferi, Yapılandırma ve En İyi Uygulamalar - Corelux
5 Haz 2026
Paylaş:

SFTP vs FTPS: Güvenli Dosya Transferi, Yapılandırma ve En İyi Uygulamalar

Son Güncelleme: Mayıs 2026

SFTP ve FTPS, sunucular arası dosya transferinde yaygın kullanılan iki güvenli dosya transferi yöntemidir. Bu makalede her iki protokolün teknik farkları, yapılandırma örnekleri, güvenlik önerileri ve pratik kullanım senaryoları detaylı şekilde ele alınmıştır. Okuyucu, makale sonunda hangi yöntemin hangi durum için uygun olduğunu ve nasıl güvenli bir şekilde yapılandırılacağını öğrenmiş olacaktır.

İçindekiler

Protokoller Nedir?

SFTP (SSH File Transfer Protocol veya Secure File Transfer Protocol) ve FTPS (FTP Secure veya FTP over TLS/SSL) arasındaki temel farkları özetleyelim:

  • SFTP: SSH protokolü üzerinden çalışan, tek bir bağlantı üzerinde iletişim kuran ve genellikle anahtarlı kimlik doğrulama (public key authentication) destekleyen bir dosya aktarım protokolüdür.
  • FTPS: Geleneksel FTP'yi TLS/SSL ile güvenli hale getiren bir protokoldür; kontrol ve veri kanalları ayrı bağlantılar kullanır ve pasif/aktif modları vardır.

Karşılaştırma Tablosu

Özellik SFTP FTPS
Bağlantı Modeli Tek bağlantı (SSH) Ayrı kontrol ve veri bağlantıları (FTP/TLS)
Taşıma Katmanı SSH TLS/SSL
Port Varsayılan 22 Kontrol: 21, Veri: Dinamik (pasif/aktif mod)
Kimlik Doğrulama Parola ve/veya anahtar (public key) Parola ve/veya sertifika tabanlı (client cert opsiyonel)
Firewall/NAT Uyumluluğu Genelde daha kolay (tek port); NAT için uygundur Pasif modda NAT da çalışır ama birçok port açılması gerekebilir
Dosya İzinleri / Özellikler SSH kullanıcı izinleriyle uyumlu FTP sunucusunun izin modeline bağlı
Performans Genellikle daha stabil ve düşük bağlantı yükü Birden çok bağlantı nedeniyle bazı durumlarda gecikme
Kullanım Alanı Sunucu yönetimi, script tabanlı transferler Legacy FTP uygulamaları, client sertifikası gereken senaryolar

Linux Üzerinde SFTP Kurulum ve Konfigürasyon

SFTP çoğunlukla sshd (OpenSSH) ile birlikte gelir. Aşağıda anahtar tabanlı kimlik doğrulama ve chroot (izole klasör) ile güvenli bir SFTP ortamı kurma adımları bulunmaktadır.

  • Adım 1: Sunucuya OpenSSH kurun (çoğu dağıtımda önceden kurulu gelir).
  • Adım 2: SFTP kullanıcı grubu oluşturun.
  • Adım 3: /etc/ssh/sshd_config dosyasını SFTP için düzenleyin.

Örnek sshd_config değişikliği:

Subsystem sftp internal-sftp

Match Group sftpusers
    ChrootDirectory /var/sftp/%u
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

Kullanıcı oluşturma ve anahtar kurma örneği:

groupadd sftpusers
useradd -m -G sftpusers -s /sbin/nologin sftpuser
mkdir -p /var/sftp/sftpuser/uploads
chown root:root /var/sftp/sftpuser
chown sftpuser:sftpusers /var/sftp/sftpuser/uploads

# Anahtar ekleme (sunucuda)
mkdir -p /home/sftpuser/.ssh
# public key içeriğini authorized_keys dosyasına koyun
chmod 700 /home/sftpuser/.ssh
chmod 600 /home/sftpuser/.ssh/authorized_keys
chown -R sftpuser:sftpusers /home/sftpuser/.ssh

Not: ChrootDirectory root tarafından sahip olunmalı; aksi halde SFTP oturumu başlamaz.

Linux Üzerinde FTPS (vsftpd) Kurulum

FTPS için en yaygın sunucu yazılımlarından biri vsftpd'dir. Aşağıdaki örnek pasif mod ve TLS konfigürasyonu içermektedir.

  • Adım 1: vsftpd paketini kurun.
  • Adım 2: TLS sertifikası oluşturun veya satın alın (ters proxy veya Let's Encrypt ile entegre edilebilir).
  • Adım 3: vsftpd.conf dosyasını TLS için yapılandırın.

Basit bir vsftpd.conf örneği:

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30100

Pasif port aralığı açılmalı (ör. 30000-30100). Ayrıca kontrol kanalı için port 21 açık olmalıdır.

Windows Üzerinde FTPS (IIS) Kurulum

Windows Server üzerinde IIS ile FTPS kolayca yapılandırılabilir. Özet adımlar:

  • Adım 1: IIS rolünü ve "FTP Server" özelliğini kurun.
  • Adım 2: SSL sertifikasını sunucuya yükleyin (ör. Corelux SSL Sertifikası hizmeti kullanılabilir).
  • Adım 3: FTP site ayarlarında "Require SSL" ve "Allow SSL Connections" gibi seçenekleri yapılandırın.

Windows tarafında ayrıca FTP için firewall kuralları ve pasif port aralığı eşlemesi yapılmalıdır.

Güvenlik: En İyi Uygulamalar

Dosya transferi servisleri doğrudan dış erişime açık olduklarından güçlü güvenlik uygulamaları şarttır. Aşağıda öneriler yer almaktadır:

  • Anahtar Tabanlı Kimlik Doğrulama: Mümkünse SFTP için parola yerine public key kullanın.
  • Sertifika Yönetimi: FTPS için TLS sertifikalarını düzenli yenileyin; otomatik yenileme çözümleri kullanın.
  • En Az Ayrıcalık İlkesi: Chroot ve dosya izinleri ile kullanıcıları izole edin.
  • Güncelleme ve Patch: SSH, vsftpd veya IIS gibi servisleri güncel tutun.
  • Loglama ve İzleme: Transfer loglarını merkezi bir sisteme gönderin (ör. SIEM) ve anomali tespiti uygulayın.
  • İki Faktörlü Doğrulama (2FA): Yönetim panelleri için 2FA uygulayın; transfer protokollerinde doğrudan 2FA destekleri sınırlı olsa da aracı katmanda 2FA kullanılabilir.

Ağ ve Firewall Ayarları

Firewall ve NAT konfigurasyonu protokole göre farklılık gösterir. Örnek iptables/ufw kuralları:

SFTP (SSH için) basit UFW örneği:

ufw allow 22/tcp  # SSH ve SFTP
ufw allow 2222/tcp # Eğer SSH alternatif port kullanıyorsanız
ufw enable

FTPS (pasif mod) için iptables örneği (basit):

# Kontrol kanalı
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# Pasif port aralığı
iptables -A INPUT -p tcp --dport 30000:30100 -j ACCEPT

Not: Passive modda FTP veri kanalları dinamik olduğundan pasif port aralığını dar tutmak yönetimi kolaylaştırır. Ayrıca NAT arkasında FTP için FTP helper modüllerinden kaçınmak, güvenlik açısından tavsiye edilir.

Pratik Senaryolar ve Örnekler

Aşağıda gerçek dünya kullanım senaryoları ve hangi protokolün daha uygun olacağına dair rehber bulunuyor.

  • Senaryo A - Otomatik yedekleme ve script tabanlı transfer: Tek port üzerinden kolay entegrasyon isteyen uygulamalar için SFTP tercih edilir. CI/CD pipeline'larında anahtarlı SFTP ile şifre yerine güvenli anahtar yönetimi kullanın.
  • Senaryo B - Büyük kurumsal uygulamalar ve legacy FTP istemcileri: Eğer istemciler FTPS bekliyorsa (ör. client certificate ile), FTPS daha uygun olacaktır.
  • Senaryo C - Müşteri bazlı sertifika doğrulama: Müşteri tarafında client certificate zorunlu ise FTPS (mutual TLS) ile bu gereklilik sağlanabilir.

Örnek: Otomatik yedek gönderme (SFTP, batch) — bir cron job ile uzak sunucuya dosya gönderme:

# /etc/cron.daily/backup_upload
#!/bin/bash
ARCHIVE=/root/backups/site-$(date +%F).tar.gz
tar -czf "$ARCHIVE" /var/www/site
sftp -i /root/.ssh/id_rsa -oBatchMode=yes backupuser@backup.example.com << 'EOF'
put "$ARCHIVE"
bye
EOF

Sıkça Sorulan Sorular

SFTP ile FTPS arasındaki en büyük fark nedir?

SFTP, SSH tabanlı tek bağlantı modeli kullanırken, FTPS TLS/SSL ile korunmuş FTP'dir ve kontrol ile veri kanalları ayrı çalışır. Bu mimari fark firewall ve NAT yönetimini etkiler.

Hangi durumlarda FTPS tercih etmeliyim?

Eğer müşteri tarafı veya uygulama mutual TLS (istemci sertifikası) gerektiriyorsa veya legacy FTP istemcileri kullanılacaksa FTPS daha uygundur.

SFTP için anahtar yönetimi nasıl olmalı?

Anahtarlar merkezi bir SSH key manager veya vault ile yönetilmeli; anahtarların düzenli rotasyonu ve erişim denetimleri uygulanmalıdır. Sunucu tarafında authorized_keys dosyası sıkı izinlerle korunmalıdır.

FTPS ile Let's Encrypt kullanabilir miyim?

Evet. FTPS sunucusu için sertifikayı Let's Encrypt ile elde edebilir ve otomatik yenileme (certbot) ile yapılandırabilirsiniz. Corelux'un SSL Sertifikası hizmetleri de kurulumda yardımcı olabilir.

Firewall için en güvenli yaklaşım nedir?

Mümkün olduğu kadar az port açmak (ör. SFTP için yalnızca SSH portu) ve pasif port aralıklarını dar tutmak en güvenli yaklaşımdır. Ayrıca IP beyaz listeleme ve fail2ban gibi geçici engelleme araçları ekleyin.

Dosya izinleri ve chroot neden önemli?

Chroot (kullanıcıyı izole etme) ile kullanıcılar yalnızca kendilerine ait dizinleri görür; bu, sunucu üzerinde yetkisiz erişimi minimize eder. Dosya izinleri doğru ayarlanmazsa chroot çalışmaz veya veriler açığa çıkabilir.

Sonuç

Özetle, SFTP ve FTPS farklı ihtiyaçlar için uygundur. Otomasyon, kolay firewall yönetimi ve anahtar tabanlı güvenlik için SFTP genellikle daha pratiktir. Müşteri tarafı sertifika gereksinimleri veya legacy istemciler söz konusuysa FTPS tercih edilebilir. Hangi yöntemi seçerseniz seçin, sertifika yönetimi (certificate management), güncelleme, izleme ve en az ayrıcalık ilkesi gibi güvenlik uygulamalarını mutlaka uygulayın.

Eğer sunucu altyapınızı güvenli ve performanslı bir şekilde yapılandırmak isterseniz, Corelux'un Sanal Sunucu veya Hosting çözümlerini inceleyebilir, özel gereksinimleriniz için SSL Sertifikası hizmetimizden destek alabilirsiniz.

Uygulama senaryonuza özel yapılandırma örneği veya migration (geçiş) danışmanlığı isterseniz, Corelux teknik ekibiyle iletişime geçebilirsiniz.

Yazar

Boran BAR

Chat on WhatsApp