FTPs

Değerli arkadaşlar, merhaba! Çeşitli ağ protokollerinden, özellikle OSI Katmanları blogunda adı geçen protokollerden bahsedeceğiz ve bunları, 'Protokoller' adı altında toplayacağız yani bir seri yapacağız. Bu yazımızda ise FTP, TFTP, SFTP protokollerinden bahsedeceğiz.

FTP (File Transfer Protocol)

Türkçe'ye 'Dosya Transfer Protokolü' olarak çevrilebilir ve geliştirilen ilk internet protokollerinden biridir; yani değerlidir. FTP, adından da anlayabileceğiniz üzere iki bilgisayar arasında dosya transferini sağlayan protokoldür. Bunun için elbette iki bilgisayar arasında etkileşimli bir bağlantı kurulur. Bunu yaparken daha önce anlattığımız 'Client - Server' yani 'İstemci - Sunucu' modeline göre çalışır. Buna bağlı olarak şöyle bir çıkarım yapabiliriz: "Bilgisayarlardan birinde bir FTP sunucusu olmalıdır yani bilgisayar, sunucu görevi görmelidir. Diğer bilgisayar ise istemci olmalıdır." Buradaki 'istemcinin' bir istekte bulunabilmesi için tabii ki çeşitli yollar mevcuttur. Örneğin bir kullanıcı arayüzüne sahip olan FileZilla gibi programlar veya bildiğiniz Komut İstemcisi (cmd - Terminal) sayesinde bu istekleri başarılı bir şekilde gönderebiliyoruz. Fakat tabii ki bunun için gerekli bilgileri (kullanıcı adı ve parola gibi) bilmemiz gerekir. Bu arada FileZilla gibi programları hem istemci hem de sunucu olarak kullanabiliyoruz. Aşağıda, FileZilla'nın resmi web sitesinde bulunan indirme seçeneklerine bakabiliriz.

Yukarıda gördüğünüz gibi hem istemci (Download FileZilla Client) hem de sunucu (Download FileZilla Server) olarak indirme işlemini gerçekleştirebiliyorsunuz. Dediğimiz gibi FTP, dosya transferi için kullanılan bir protokoldür. FTP, bunu yaparken 21 numaralı portu kullanır. FileZilla'dan bir örnek gösterelim.

Yukarıda gördüğünüz, FileZilla'nın arayüzüdür. Ben Client için olanı indirmiştim. Şimdi, lacivert kutu içerisine aldığım bölgeye bakın. Oradaki bilgiler, bağlanacağınız FTP sunucusunun bilgileridir. Kırmızı kutucuk içerisinde de port numaramız, 21 olarak geçiyor. Dolayısıyla kısaca; "FTP, 21 numaralı portu kullanarak istemci - sunucu modelinde çalışan bir dosya transfer protokolüdür." diyebiliriz.

FileZilla'dan bir FTP sunucusuna bağlanmak için Host kısmına onun adresini, Username kısmına kullanıcı adını ve Password kısmına parolanızı yazmanız gerekir.

İsterseniz bunu terminalden yapmayı öğrenelim. Bunun için internet üzerinde ücretsiz bir şekilde verilen birden fazla FTP sunucumuz vardır. Ben aralarından 'ftp.sunet.se' olanı seçtim. Buna bağlanmayı ve sunucudaki dosyaları görmeyi deneyelim.

Adım 1: Terminalimizi açıyoruz.

Adım 2: 'ftp' yazıp içine giriyoruz; 'ftp> şeklinde gözükür'.

Adım 3: Ne yapacağımızı bilmiyorsak 'help' yazıp kullanabileceğimiz komutları listeleyebiliriz.

Adım 4: 'open ftp.sunet.se' yazıp bekliyoruz.

Adım 5: Bize kullanıcı adı soracaktır. Oraya 'anonymous' yazıp Enter'a basıyoruz. Ardından bize şifre soracaktır. Hiçbir şey yazmadan direkt olarak Enter'a bastığımızda bağlantı gerçekleşecektir.

Adım 6: 'dir' komutu ile sunucuda bulunan dosyaları görebiliriz.

Adım 7: 'get' komutu ile sunucuda bulunan dosyalardan istediğimizi indirebiliriz.

Adım 8: 'quit' komutu ile çıkış yapabiliriz.

İşte, FTP bağlantıları bu şekilde gerçekleştirilebiliyor. Geri kalan komutlar hakkında bilgi sahibi olmak isterseniz kendi araştırmanızı yapabilirsiniz.

FTP, bir kullanıcı adı ve parola kullanır fakat bu verileri şifrelemek gibi bir yeteneği yoktur. Dolayısıyla kimlik hırsızlarına karşı savunmasız bir protokoldür. Elbette, insanlar biraz değişik yaratıklar olduğu için internet ortamına da kötülük bulaştırmış ve onlar tarafından bir tehdit oluşturulmaya başlanmıştır. Bu tehditlere karşı geliştirilen FTP'nin varyasyonlarını aşağıda açıklamaya çalıştık.

TFTP (Trivial File Transfer Protocol)

Türkçe'ye 'Önemsiz Dosya Transfer Protokolü' olarak çevrilebilir. FTP'nin bir varyasyonudur ve bu protokol gereksiz, önemsiz dosya transferleri için kullanılıyor. Bilgi Güvenliği'nde bilgiyi sınıflandırırız ve buna Risk Yönetimi deriz. Bu sınıflandırmalar; bilginin önemi, taşıdığı risk, olası bir tehditte verebileceği muhtemel zarar derecelerine göre olur. TFTP, önemsiz dosyaların transferi için kullanıldığından dolayı güvenli olmayan bir protokoldür; çünkü zaten önemsiz dosyalar olduğu için ek bir güvenliğe gerek yoktur. Bununla beraber TFTP, basit işleri yapar yani FTP'nin özelliklerinin çoğu kendisinde yoktur. Dolayısıyla kendisi, gayet hızlı bir protokoldür. Aynı zamanda kullanımı sırasında çok az bellek tüketir. Bu sayede TFTP, yeterli belleği olmayan Router, Switch gibi cihazların önyüklemesinde kullanılır.

UDP tabanlıdır ve 69 portunu kullanır.

SFTP (Secure File Transfer Protocol) / FTPS (File Transfer Protocol Secure)

İkisini de Türkçe'ye 'Güvenli Dosya Transfer Protokolü' olarak çevirebiliriz. TFTP ile birlikte SFTP ve FTPS de FTP varyasyonudur. SFTP ve FTPS, adlarından da anlayacağınız üzere güvenli bir şekilde dosya transferi yapmaya yarayan protokollerdir. Aralarındaki en keskin fark; kullandıkları şifreleme türü ve kimlik doğrulama sürecidir. Aşağıdan, kendileri hakkında daha derin bilgileri okuyabilirsiniz.

SFTP

SFTP, bu güvenlik mekanizmasını 'SSH - Secure Shell' dediğimiz bir bileşen ile sağlar; aslında SFTP, SSH'ın bir uzantısıdır. SFTP, SSH sayesinde parolalar ve hassas bilgilerin düz metin olarak gösterilmesini önler ve bu özelliği sayesinde güvenlik düzeyi üst seviyededir. Bununla beraber buradaki istemci - sunucu modelinde sunucu, istemciyi doğrulamak zorundadır.

SFTP; iki makinenin buluşmasına, her ikisinin de güvenilir olduğunun doğrulamasına ve ardından dosya paylaşımının gerçekleşebilmesi için bağlanmalarına yarar. SFTP, istemci - sunucu arasında tek bir bağlantı kullanır ve bu nedenle güvenlik duvarı dostudur. Kolay yapısı sayesinde ekstra yapılandırmalara ihtiyaç yoktur ama düzgün bir şekilde yapılandırmak da zordur.

Varsayılan olarak Linux ve UNIX sunucuları tarafından desteklenir. Bununla beraber diğer sistemlerden daha fazla seçenek sunar. Bunlardan bazılarını; erişim izni yönetimi, öznitelik manipülasyonu, kalite ayarı, dosya kilitleme ve sembolik bağlantı oluşturma şeklinde sıralayabiliriz.

Kullandığı SSH'ın sırlarının işlenmesi ve doğrulanması zordur. Ayrıca sunucudan sunucuya kopyalama özelliği yoktur.

.NET çerçevesinde yerleşik destek yoktur.

22 numaralı portta çalışır.

FTPS

FTPS, orijinal FTP'yi alır ve SSL (Secure Sockekt Layer) ile bir şifreleme katmanıyla geliştirir yani yeni bir katman ekler. SSH, genelde güvenli uzaktan erişim için kullanılırken SSL, istemci ve sunucunun güvenli bir şekilde bağlanması ve iletişim kurmasının bir yoludur. Günümüzdeki birçok uygulama SSL kullanır; bu yöntem daha popülerdir.

Dosya aktarımı söz konusu olduğunda SSL üzerinden FTP kullanmak yani FTPS kullanmak; iletişimi şifreler, evet ama Örtük SSL ile Açık SSL arasında karar verme zorunluluğu vardır (başka bir blogda açıklayacağız).

FTPS ayrıca, bağlantının bir sertifika ile (SSL Sertifikası) doğrulanmasını gerektirir. Bu sertifikalar, güvenilir bir sertifika yetkilisi tarafından imzalandığında bu, istemcinin istenen sunucuya bağlı olduğuna dair güvence sağlar. Bunların yanında FTPS; istemcinin, anlaşmaya izin verilmeden sunucuya güvenli bir şekilde bağlanmasına izin verir.

FTPS, birden çok bağlantı noktası kullanır ve güvenlik duvarlarının kullanımını zorlaştıran ikincil bir veri kanalına ihtiyaç duyar yani ekstra yapılandırmalar söz konusudur ama uygulaması kolaydır.

Etkileşim, insan tarafından kontrol edilebilir ve anlaşılabilirdir. .NET ve mobil cihaz desteği vardır.

FTP desteği olan ancak SSH/SFTP istemcileri olmayan işletim sistemlerinde çalışır. Fakat tüm FTP sunucuları SSL'i desteklemez.

Dosya özelliklerini elde etmek ve değiştirmek için geleneksel bir yöntem yoktur.

21 numaralı portta çalışır.

Sonuç

Yaygın bir inanışa göre bu iki protokol arasında fark yoktur fakat birçok endüstri uzmanı bunun böyle olmadığını, SFTP'nin daha üstün bir protokol olduğunu savunur. Bununla beraber uygun yerde uygun şekilde kullanıldıklarında gayet etkili iki protokoldür.

[*] 'Protokoller' serimizin ikinci bölümü için tıklayın: SMTP


Yayınlanma Tarihi: 2022-08-12 20:05:51

Son Düzenleme Tarihi: 2022-08-29 18:19:03