FTP
Genel Hatları İle FTP
Dosya Transfer Protokolü (FTP), bilgisayar ağlarında dosya transferini sağlamak için geliştirilmiş önemli bir standart protokoldür. FTP'nin kökenleri, internetin ilk günlerine dayanır; 1971 yılında Massachusetts Teknoloji Enstitüsü'nde (MIT) geliştirilmiştir ve o zamandan beri sürekli olarak evrim geçirmiştir. Bu protokol, bilgisayarlar arasında dosya alışverişini kolaylaştırmak ve standartlaştırmak amacıyla tasarlanmıştır.
FTP'nin ana amacı, dosya transferini güvenli ve etkili bir şekilde gerçekleştirmektir. İnternet üzerinde dosya paylaşımını sağlayan birçok uygulama ve web sitesi, FTP protokolünü temel alır. Büyük dosyaların veya birçok dosyanın aktarımında tercih edilen bu protokol, sunucu ve istemci arasında veri aktarımını kolaylaştırır.
Günümüzde, FTP'nin yanı sıra daha güvenli ve hızlı alternatifler de bulunmaktadır. Ancak, FTP'nin basitliği ve yaygınlığı nedeniyle hala birçok kuruluş ve kullanıcı tarafından tercih edilmektedir. FTP'nin gelişimi ve kullanımı, internet iletişiminin evriminde önemli bir rol oynamış ve dosya transferi alanında standart bir çözüm olmuştur.
FTP Türleri
Anonymous FTP
Bu, en temel FTP türüdür. Verileri şifrelemeden veya kullanıcı adı ve parola kullanmadan aktarma desteği sağlar. Genellikle herhangi bir kısıtlama olmadan gerçekleştirilen ftp bağlantıları için kullanılır . Genellikle 21. Port üzerinde çalışır.
Şifre korumalı FTP
Bu da temel bir FTP hizmetidir, ancak kullanıcı adı ve parola kullanımını gerektirir, hizmet şifrelenmiş veya güvenli olmayabilir. Varsayılan olarak port 21 üzerinde çalışır.
FTP Secure (FTPS)
Bazı durumlarda FTP Güvenli Yuva Katmanı (FTP-SSL) olarak adlandırılır, bu yaklaşım bir FTP bağlantısı kurulduğu anda gizli Taşıma Katmanı Güvenliği (TLS) kullanımını sağlar. FTPS, daha güvenli bir FTP veri transferi sağlamak için kullanılmıştır. Genellikle port 990'ı varsayılan olarak kullanır.
FTP over explicit SSL/TLS (FTPES)
Bu yaklaşım, ftp yapılandırmasında belirtilen port üzerinden ya da varsayılan port kullanıldığını varsaydığımızda, port 21 üzerinden bir FTP bağlantısını şifreli bir bağlantıya yükselterek açık TLS desteği sağlar. Bu, web ve dosya paylaşım hizmetleri tarafından güvenli dosya transferlerini sağlamak için yaygın olarak kullanılan bir yaklaşımdır.
Secure FTP (SFTP).
Bu teknik olarak bir FTP protokolü değildir, ancak benzer şekilde işlev görür. SFTP, güvenli bir dosya transferi için SSH (Güvenli Kabuk) protokolünün bir alt kümesidir ve varsayılan olarak port 22 üzerinden çalışır. SSH, sistem yöneticileri tarafından sistemlere ve uygulamalara uzaktan ve güvenli erişim için yaygın olarak kullanılan bir protokoldür ve SFTP, SSH içinde güvenli dosya transferi için bir mekanizma sağlar.
FTP Nasıl Çalışır ?
İstemci Ve Sunucu Bağlantısı
FTP ile dosya transferi yapmak isteyen kullanıcı, bir FTP istemcisini (çoğu web tarayıcısı gibi) kullanarak bir sunucuya bağlanır. Sunucu, dosyaların barındırıldığı bir bilgisayar veya sunucudur.
Bağlantı Kurma
İstemci, sunucuya bağlanmak için bir TCP/IP bağlantısı başlatır. Bu genellikle 21 numaralı port üzerinden gerçekleşir. Sunucu, istemcinin bağlantı isteğini kabul eder ve istemciyle bir bağlantı kurulur.
Oturum Açma
İstemci, sunucuya kimlik doğrulama bilgilerini (kullanıcı adı ve şifre) gönderir. Sunucu, bu bilgileri doğrular ve istemcinin yetkili olup olmadığını belirler.
Komutlar Ve Yanıtlar
İstemci, sunucuya dosya ve dizin işlemlerini gerçekleştirmek için komutlar gönderir. Bu komutlar, sunucuda çeşitli işlemler gerçekleştirmek için kullanılır. Örneğin, dosya indirme, yükleme, silme, dizin listeleme gibi işlemler için komutlar kullanılır. Sunucu, bu komutlara uygun yanıtlar verir.
Dosya Transferi
İstemci, dosya indirme veya yükleme işlemi yapmak için sunucuya komut gönderir. Bu komutlar, sunucudaki belirli bir dosyayı istemciye iletmek veya istemciden sunucuya göndermek için kullanılır.
Veri Bağlantısı
Dosya transferi için, veri aktarımı sırasında, özellikle pasif FTP (PASV) modunda, bağlantı için 21 numaralı portun dışında farklı bir port kullanılabilir. Bu bağlantı genellikle 20. porttan sağlanır ve dosyaların gerçek transferi için kullanılır. Dosya transferi tamamlandığında, veri bağlantısı kapatılır.
Bu bağlantı iki şekilde kurulabilir:
Aktif Mod
Bu modda, kullanıcı FTP istemcisi üzerindeki rastgele bir bağlantı noktasından (Random Port 1) sunucunun 21 numaralı bağlantı noktasına bağlanır.
Sunucuya istemcinin hangi portuna bağlanması gerektiğini söyleyen “PORT” komutunu gönderir, yani (Random Port 2).
Sunucu, 20 numaralı bağlantı noktasından istemcinin belirlediği bağlantı noktasına, yani Random Port 2’ye bağlanır. Bağlantı kurulduktan sonra, veri aktarımı bu istemci ve sunucu bağlantı noktası üzerinden gerçekleşir.
Pasif Mod
İstemcinin bir güvenlik duvarı tarafından engellendiği gibi bağlantı kabul edemediği durumlarda, pasif mod kullanılmalıdır. Bu en yaygın moddur çünkü günümüzde istemci güvenlik duvarının (ör. Windows Güvenlik Duvarı) arkasında bulunmaktadır.
Bu modda, kullanıcı FTP istemcisi üzerindeki rastgele bir bağlantı noktasından (Random Port 1) sunucunun 21 numaralı bağlantı noktasına bağlanır.
İstemciye sunucunun hangi bağlantı noktasına bağlanması gerektiğini, yani bağlantı kurmak için (Random Port 3) söyleyen “PASV” komutunu gönderir.
İstemci, Random port 2’den sunucunun belirlediği porta, yani Random Port 3’e bağlanır.
Bağlantı kurulduktan sonra, veri transferleri bu istemci ve sunucu portu üzerinden gerçekleşir.
İşlem Tamamlama
Dosya transferi veya diğer işlemler tamamlandığında, sunucu istemciye uygun bir yanıt gönderir ve bağlantı kapatılır veya istemci yeni bir işlem için sunucuda kalır.
FTP Komutları
CONNECT: Sunucuya bağlanmak için kullanılır.
USER: Sunucuya giriş yapmak için kullanıcı adını belirtmek için kullanılır.
PASS: Sunucuya giriş yapmak için şifreyi belirtmek için kullanılır.
PWD (Print Working Directory): Bulunduğunuz dizini gösterir.
CD (Change Directory): Dizin değiştirmek için kullanılır.
LS (List): Mevcut dizindeki dosyaları ve dizinleri listeler.
GET: Sunucudan bir dosyayı indirmek için kullanılır.
PUT: Sunucuya bir dosya yüklemek için kullanılır.
DELETE: Sunucudaki bir dosyayı silmek için kullanılır.
MKDIR (Make Directory): Yeni bir dizin oluşturmak için kullanılır.
RMDIR (Remove Directory): Bir dizini silmek için kullanılır.
QUIT: FTP oturumunu sonlandırmak için kullanılır.
FTP Avantajları
Evrensel kullanım: FTP, bilgisayar ağlarında dosya transferi için yaygın olarak kullanılan bir protokoldür. Bu nedenle, birçok işletim sistemi ve ağ cihazı tarafından desteklenir.
Basitlik: FTP, basit bir protokoldür ve kullanımı kolaydır. Dosya transferi için temel komutlar ve işlemler sağlar, bu da kullanıcıların dosyaları kolayca taşımasını sağlar.
Genişletilebilirlik: FTP'nin çeşitli uzantıları ve güncellemeleri vardır. Bu, farklı ihtiyaçlara uyacak şekilde yapılandırılabilir ve genişletilebilir olduğu anlamına gelir.
İşlevsellik: FTP, dosya transferi için güvenilir bir protokoldür. Dosyaların bütünlüğünü korur ve transfer edilirken veri kaybını önler.
Dezavantajları
Güvenlik Zayıflıkları: Temel FTP, veri aktarımı sırasında şifrelenmemiş olduğundan, veri güvenliği riski taşır. Bu, hassas bilgilerin aktarılması durumunda ciddi bir endişe kaynağı olabilir.
Verimlilik Sorunları: FTP, büyük dosya transferlerinde bazen yavaş olabilir. Özellikle, ağ bağlantılarının düşük hızlara veya yüksek trafik durumlarına sahip olduğu ortamlarda bu sorun daha belirgin olabilir.
Kullanıcı Kimlik Doğrulama Sorunları: FTP, bazen kullanıcı kimlik doğrulama işlemlerinde zayıf olabilir. Gelişmiş kimlik doğrulama yöntemlerinin eksikliği, güvenlik açıklarına yol açabilir.
Firewall Engelleri: FTP'nin kullanılması, bazı güvenlik duvarı konfigürasyonlarında sorunlara neden olabilir. Güvenlik duvarları, FTP trafiğini engelleyebilir veya sınırlayabilir, bu da bağlantı sorunlarına yol açabilir.
FTP Güvenliği
Bu protokolü güvenli şekilde kullanmak için dikkat edilmesi gerekenler şunlardır;
SFTP veya FTPS Kullanın: FTP'nin güvenli sürümleri olan SFTP (SSH File Transfer Protocol) veya FTPS (FTP over SSL/TLS) gibi alternatif protokoller kullanın. Bu protokoller, verilerin şifrelenmesini sağlar.
Güçlü Şifreler Kullanın: Güçlü ve karmaşık şifreler belirleyin ve düzenli olarak değiştirin. Şifreler, saldırganların kolayca tahmin edemeyeceği karmaşık karakterler içermelidir.
Güvenlik Duvarı (Firewall) Kullanın: FTP sunucunuzu ve ağınızı güvenlik duvarı ile koruyun. Bu, yetkisiz erişim girişimlerini engellemeye yardımcı olabilir.
Giriş Denetimleri Uygulayın: Yanlış parola girişleri gibi kullanıcı giriş denemelerini izleyen ve engelleyen bir sistem kurun.
Güncel Yazılım Kullanın: FTP sunucusu ve istemcilerinizin güncel olduğundan emin olun. Güvenlik açıklarını gidermek için yazılım güncellemelerini düzenli olarak kontrol edin.
Dosya ve Klasör İzinlerini Ayarlayın: Sadece gerektiği kadar erişim verin ve hassas dosya ve klasörlere erişimi kısıtlayın.
FTP üzerinde SSL/TLS Bağlantılarını Zorunlu Kılın: FTP sunucunuzda SSL/TLS bağlantılarını zorunlu kılarak iletişimi şifreleyin ve güvenli hale getirin.
Dosya Transferini İzleyin: Dosya transferlerini izlemek ve loglamak için bir günlük tutun. Bu, herhangi bir güvenlik ihlali durumunda olayları izlemenize ve analiz etmenize olanak tanır.
FTP Kullanan Ürünlere Örnekler
FileZilla: FileZilla, FTP, SFTP ve FTPS gibi protokolleri destekleyen ücretsiz ve açık kaynaklı bir FTP istemcisidir. FileZilla Project tarafından geliştirilmektedir.
Microsoft: Microsoft'un Windows işletim sistemi, dosya transferi için yerleşik olarak FTP istemci yazılımını destekler. Ayrıca Windows Server işletim sistemleri, IIS (Internet Information Services) üzerinde FTP sunucusu olarak da yapılandırılabilir.
IBM: IBM'in birçok ürünü, özellikle büyük işletmeler için veri entegrasyonu ve dosya transferi çözümlerinde FTP'yi destekler. Örneğin, IBM Sterling Secure Proxy, B2B entegrasyonu ve dosya transferi için FTP protokolünü kullanır.
Globalscape: Globalscape, dosya transferi ve yönetimi çözümleri sunan bir yazılım şirketidir. Secure FTP (SFTP) ve FTPS protokollerini destekleyen ürünler geliştirirler. Örneğin, EFT (Enhanced File Transfer) ürünü, güvenli dosya transferi için yaygın olarak kullanılan bir çözümdür.
Wing FTP Server: Wing FTP Server, Windows, Linux, Mac ve Solaris gibi çeşitli platformlarda çalışabilen bir FTP sunucusu yazılımıdır. Güvenli dosya transferi için SSL/TLS şifreleme protokollerini destekler.
Last updated