FTP pasif modu neden iyi bilinen tek bir bağlantı noktasının aksine bir dizi geçici bağlantı noktası kullanıyor? [kapalı]


9

FTP pasif modunda, sunucunun istemciye veri kanalı kurabileceği rasgele bir bağlantı noktası numarası gönderdiğini okudum.
Sonra istemci rasgele bağlantı noktası numarasından sunucu tarafından gönderilen bu bağlantı noktası numarasına bir veri kanalı oluşturur.

Sorum şu ki, sunucu neden istemciye rasgele bir bağlantı noktası numarası gönderiyor? İstemci neden doğrudan sunucu tarafında 20 numaralı bağlantı noktasına bir veri kanalı oluşturamıyor?


2
Bunun konu dışı olduğunu düşündüm.

Ne yazık ki, OSI katman-4'ün üzerindeki protokollerle ilgili sorular burada konu dışıdır.
Ron Maupin

Yanıtlar:


13

FTP protokolü pasif modda çalışacak şekilde tasarlandı. Muhtemelen iyi bir fikir değildi, çünkü bu modelin başka herhangi bir protokolde tekrarlandığını düşünmüyorum (ve bu FTP aktif modu hakkında daha da doğrudur).


Veri bağlantı portunda protokol yoktur. Sunucunun bildiği tek şey - bu bağlantıdaki herhangi bir bilgiyi taşıyan tek şey, bağlandığınız bağlantı noktası numarasıdır.

Her seferinde aynı bağlantı noktasına bağlanacak olsaydınız, sunucu hangi dosyaya bağlandığınızı söyleyemezdi. Bağlantı noktası numarası, kontrol bağlantısındaki bir aktarma isteği ile veri bağlantısı arasında bir bağlantı görevi görür - bağlantı noktası numarası, PASVkomuta yanıtta bulunur .

İki istemci aynı anda aktarım isteğinde bulunsaydı, sunucu tek bir bağlantı noktasındaki bağlantıyı kabul ettiğinde, sunucu hangi dosyayı aktaracağını söyleyemezdi. Elbette, sunucu karar için bir istemci IP'si kullanabilir (aslında birçok FTP sunucusu, istemci IP'sinin güvenlik için kontrol bağlantısında kullanılan IP ile eşleştiğini doğrular).

Ancak bu işe yaramaz:

  • Aynı makineden çoklu bağlantılar (çoğu FTP istemcisi paralel aktarımları / kuyrukları destekler ve aslında bir makinede birden çok farklı FTP istemcisi çalıştırabilirsiniz);
  • Aynı harici IP'deki gibi aynı (kurumsal) ağdaki farklı makinelerden bağlantı.

FTP pasif modunun neden yalnızca bir bağlantı noktasının aksine bir bağlantı noktası aralığı gerektirdiğine cevabımdan kısmen kopyalandı ? Sunucu Hatası.


Sunucu tarafında kullanılan port numarası da 20 olabilir mi? Her cevapta, sunucu tarafındaki port numarası 20'den farklı
Zephyr

Cevabım, bağlantı noktası numarasının neden her bağlantı / aktarım için benzersiz olması gerektiğini açıklıyor. Bu yüzden 20'ye sabitlenemez.
Martin Prikryl

Evet düzeltilemez ama bunlardan biri 20 olabilir mi?
Zephyr

1
Evet, ancak diğer tüm bağlantı noktalarının 1024'ün üzerinde olması gerekir. Ve pratik açıdan bitişik bir bağlantı noktası aralığı daha iyidir. Çoğu güvenlik duvarı / NAT, aralık tabanlı kuralları destekler. Yalıtılmış bağlantı noktası 20 için özel bir kural eklemek istemezsiniz - Ayrıca çoğu FTP sunucusu yalnızca bitişik bağlantı noktalarını destekler.
Martin Prikryl

1
@ Zac67 hayır, istemci dosyayı pasif modda almak için yeni bir bağlantı (kontrol bağlantısının yanı sıra) açar, böylece sunucu, istemci bağlantıları arasında ayrım yapmak için kaynak (istemci) bağlantı noktası numarasını kullanamaz. Ayrıca, NAT genellikle istemci kaynak bağlantı noktasını (ve / veya IP adresini) değiştirerek bu yaklaşımı pratikte kullanılamaz hale getirir.
jjmontes

4

Genellikle, sunucu rastgele bir bağlantı noktası göndermez, ancak tanımlı (kurulumla) aralık / havuzdan ücretsiz bir bağlantı noktası gönderir - istemci için bu rastgele görünür. Bu bağlantı noktasının, bir aralık tanımlanmasını gerektiren güvenlik duvarında iletilmesi gerekir.

Ne yazık ki FTP eskidir. Sanırım, eski sunucular port dışında birden fazla müşterinin veri oturumlarını ayırt edemediler. Genel olarak, her şeyin tek bir soket oturumunda düzgün bir şekilde paketlendiği daha güncel protokollere geçmek daha iyidir.


Yani 20 de olabilir mi? Her web sitesinde veriler için sunucu bağlantı noktası numarası 20'den
Zephyr

20, aktif FTP için sunucudan giden bağlantı noktasıdır (bu artık kullanılmamaktadır).
Zac67

Eski sunucuların sıkıntısı yoktu, protokol tasarımcıları hala ilkel istek yanıtından daha karmaşık şeyler yapmanın en iyi yolunu bulmaya çalışıyorlardı.
Mark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.