FTP, FTPS ve SFTP Arasındaki Fark

0
374

FTP, FTPS ve SFTP Arasındaki Fark bu yazıda inceleyeğimiz konu.

Bugün en sık kullanılan dosya transfer protokolleri FTP, FTPS ve SFTP. Açılımları benzer olsa da aralarında veri transferi, güvenlik seviyesi ve firewall noktasında bazı anahtar farklılıklar vardır. Bu farklılıkları bilirseniz kullanacağınız protokolü seçmek sizin için daha kolay olacaktır.

FTP, FTPS ve SFTP Arasındaki Fark

FTP, FTPS ve SFTP Arasındaki Fark

FTP
FTP (File Transfer Protocol/Dosya Transfer Protokolü) uzun zamandır var olan bir protokol. 40 yıl önce RFC 114 ile kullanımı teklif edildi ve sonrasında RFC 959 ile standardize edildi.

Veri Transferi
FTP komut kanalı (command channel) ve veri kanalı (data channel) olmak üzere iki ayrı kanal kullanarak veri değişimini sağlar.

Komut kanalı 21 nolu port üzerinde çalışır ve client bağlantılarını kabul etmekten ve FTP client ile server arasındaki basit komut alışverişlerinden sorumludur. Mesela bağlantı için kullanılan kullanıcı adı ve şifre bilgileri bu basit komutlara örnektir. Client bağlantıyı kesmek için “QUIT” komutu göndermediği sürece komut kanalı açık kalır. Ya da bazen uzun süre herhangi bir aktivitede bulunmayan kullanıcıyı sunucu otomatik olarak disconnect eder. Bunlar hep komut kanalı ile gerçekleşir.

Data channel yani veri kanalı ise isteğe bağlı olarak geçici portlar üzerinde çalışır. Ya sunucu üzerinde pasif modda ya da client tarafta aktif modda çalışır. Klasör listeleme ve dosya transferi gibi işlemlerden sorumludur. LIST, STOR ve RETR komutları ile sunucunun klasörleri listelenebilir, dosya yüklenebilir ve dosya indirme işlemleri yapılabilir. FTP oturumu süresince hep açık kalan komut kanalının aksine, veri kanalı veri transferi tamamlandıktan sonra kapanır. Eş zamanlı gerçekleşen veri transferi veya klasör listemele işlemlerini yönetebilmek için birkaç veri kanalı portu kullanılır.

Güvenlik
FTP hem komut hem de veri kanalında şifrelenmemiş (kriptosuz) işlem yapar. Bu kanallar üzerinden gönderilen her türlü veri yakalanabilir ve okunabilir. Bu güvenlik açığını kullanan exploitlerden en önemlisi man-in-the-middle adı verilen ARP zehirleme ve paket yakalama saldırısıdır.

Firewall (Güvenlik Duvarı)
FTP ile sunucu 21 nolu port üzerinden gelen bağlantılara izin verir. Dosya transferi ve dizin listeleme işlemleri için örneğin 2000 ile 2500 arasında pasif port aralığı tanımlayabilir ve gelen bağlantıları bu pasif portlar üzerinden yapabilirsiniz. Tabii nasıl pasif port tanımlanır bunu biliyor olmanız lazım.

Client tarafında ise giden bağlantılara 21 nolu port ve sunucu tarafından belirlenen pasif port aralığı için izin verin.

FTP kullanırken karşılaşılan pek çok sorun FTP’nin iki modunun nasıl çalıştığını bilmemekten kaynaklanır: aktif mod ve pasif mod. Sunucu veya client tarafındaki firewall ayarlarında bu iki modun çok büyük önemi vardır. Bu yüzden aktif ve pasif modları çok iyi anlamaya çalışmalısınız.

FTPS
Bundan 40 yıl önce FTP protokolü ilk hazırlandığı zamanlar güvenlik çok büyük bir sorun değildi. O zamandan bugüne çok şey değişti ve public bir ağa veri gönderirken bu veriyi şifrelememek çok riskli hale geldi. Hatta bazı durumlarda bu tür bir işlem yasaktır. PCI-DSS ve HIPAA gibi düzenlemeler veri transferinin şifreleme ile korunması gerektiğini belirtir ve bunu zorunlu kılar.

Bu güvenlik sorununa çözüm bulmak adına FTP protokolüne birkaç güvenlik eklentisi teklif edildi. Böylelikle başka ağlar üzerinde seyahat eden FTP verisi SSL şifrelemesiyle korunacaktı.

Güvenlik
FTPS Implicit SSL ve FTPS Explicit SSL olmak üzere iki çeşit FTPS yöntemi vardır. Her ikisi de SSL şifrelemeyi kullanır.

FTPS Implicit SSL
Implicit SSL modunda herhangi bir veri transferi olmadan önce sunucu ile istemci arasında bir SSL oturumunun kurulması zorunludur. Implicit’in buradaki sözlük anlamı “itirazsız, kesin” demektir. Yani bu kelimeden de anlaşılacağı üzere SSL oturumu yoksa her türlü bağlantı denemesi sunucu tarafından reddedilir. Bu noktada herhangi bir itiraz veya pazarlık söz konusu değildir. FTPS implicit SSL servisleri genelde 990 nolu portta çalışır. Günümüzde bu metot diğer FTPS Explicit SSL metoduna göre eskimiş, modası geçmiş hükmündedir.

FTPS Explicit SSL
Explicit SSL modunda sunucu ve istemci veri transferi esnasında koruma ve güvenlik seviyesiyle ilgili pazarlık yapabilir. Bu şu açıdan çok faydalıdır: sunucu hem şifresiz FTP hem de şifrelenmiş FTPS oturumlarını tek bir port üzerinden sunabilir. Explicit SSL modunda istemci ilk önce FTP servisine şifrelenmemiş bir bağlantı kurar. Kullanıcı bilgilerini göndermeden önce istemci sunucunun komut kanalından SSL ile şifrelenmiş bir kanala geçmesi için AUTH TLS veya AUTH SSL komutlarını gönderir. SSL kanalının başarılı bir şekilde kurulmasının ardından istemci FTP sunucuya kullanıcı bilgilerini gönderir. Oturumun açılışı esnasında bu kullanıcı bilgileri SSL kanalı tarafından otomatik olarak şifrelenir. PROT komutuyla da veri kanalı üzerindeki koruma seviyesinin istemci ve sunucu arasında pazarlığı yapılır.

Firewall
Sunucu 21 ve/veya 990 nolu portlar üzerinden gelen bağlantılara izin verir. Dosya transferi ve dizin listeleme işlemleri için örneğin 2000 ile 2500 arasında pasif port aralığı tanımlayabilir ve gelen bağlantıları bu pasif portlar üzerinden yapabilirsiniz. Tabii nasıl pasif port tanımlanır bunu biliyor olmanız lazım.

Client tarafında ise giden bağlantılara 21 nolu port ve sunucu tarafından belirlenen pasif port aralığı için izin verin.

SFTP
SFTP genellikle FTPS ile karıştırılır. Halbuki bu iki protokol güvenli dosya transferi harici ortak bir noktaya sahip değildir. SFTP genellikle SSH adı verilen Secure Shell protokolü üzerine kuruludur. Secure Shell sayesinde uzak sunuculardaki shell hesaplara güvenli erişim sağlanır.

Veri Transferi
FTP ve FTPS’in aksine, SFTP ayrı iki komut ve veri kanalı oluşturmaz. Hem komutlar hem de veriler özel formatlanmış paketlerle tek bir bağlantı üzerinden birlikte transfer edilir.

Güvenlik
Sunucu ve istemci arasında gönderilen bütün veriler üzerinde anlaşılan bir şifreleme çipi ili şifrelenir. SFTP oturumları public ve private key kullanımı ile daha da güçlendirilebilir. Kullanıcı adı ve şifre yönteminin alternatifi bir bağlantı yöntemidir bu.

Firewall
Sunucu 22 nolu port üzerinden gelen bağlantılara izin verir.

İstemcic22 nolu port üzerinden giden bağlantılara izin verir.

PAYLAŞ

Sizin de söyleyecekleriniz varsa lütfen yazın