Pasif mod FTP (PASV) ve Genişletilmiş Pasif mod FTP (EPSV) arasındaki farkları açıklayan var mı?
Pasif mod FTP (PASV) ve Genişletilmiş Pasif mod FTP (EPSV) arasındaki farkları açıklayan var mı?
Yanıtlar:
Tek fark, herhangi bir ağ protokolüyle çalışırken (uygulamada sadece IPv6 kullanılmasına rağmen) PORT/PASV
IPv4 ile sınırlı olmasıdır .EPRT/EPSV
FTP kontrol protokolündeki standart PORT
(aktif) ve PASV
(pasif) komutlar, adres ve bağlantı noktası bilgilerini altı adet 1 bayt ondalık sayı olarak değiştirir; diğer uç, dört baytlık bir IP adresi ve iki baytlık TCP bağlantı noktası numarasını yeniden yapılandırmak zorundadır.
PORT <address[4]>,<port[2]>
PORT 132,235,1,2,24,131
Ama sonra başka protokoller ortaya çıkmaya başladı. IPv4'ün yerini, oldukça kısa, daha uzun, hatta değişken ana bilgisayar adresi boyutlarına sahip oldukça az sayıda rakip değiştirme önerisi (OSI CLNP, TUBA, SIP, SIPP, CATNIP - geçmişte çeşitli zamanlarda) olan "IPng" ile değiştirmek üzereydi. 16 bayt adresli IPv6 nihayet tanımlanana kadar.
Sadece daha fazla bayt göndermek işe yaramazdı - sunucular ve istemcilerden sadece adres uzunluğuna dayalı olarak doğru protokolü bilmeleri beklenemezdi. (Örneğin, 16 bayt adresi + 4 bayt bağlantı noktasına sahip bir protokolünüz, 12 bayt adresi + 12 bayt bağlantı noktasına sahip başka bir protokolünüz varsa ne olur?)
Ayrıca - bu 20 yıl önce daha az önemli olsa da - bugünlerde internette milyonlarca NAT cihazı var, bu da FTP kontrol bağlantılarını inceliyor ve yönetiyor, böylece "dış" ana bilgisayar "iç" ana bilgisayar yerel bir RFC1918 gönderdi. NAT olmadan bile, durum bilgisi olan güvenlik duvarları genellikle manuel kurallar olmadan bir veri bağlantısına otomatik olarak izin vermek için kontrol komutlarını izler.
Bu, basitçe, daha fazla numara göndermenin PORT
veya PASV
birçok kişi için kırılmasının garanti edildiği anlamına gelir . Belki bazı güvenlik duvarları, bazı adres baytlarını bağlantı noktası olarak sessizce yanlış yorumlayabilir ve geri kalanını sessizce atabilir; diğerleri bağlantıyı kesebilir veya sadece kilitlenebilir.
Yukarıdaki gibi çeşitli sorunları önlemek için, FTP'de çoklu protokol desteği için yeni komutların getirilmesi gerekiyordu.
1993 yılında, RFC 1639 (orijinal olarak 1545, RFC ) ilave "uzun adresi" LPRT
veLPSV
benzeri olan komutlar, PORT
ve PASV
ancak ile değişken adres uzunluğu ; protokol türü tanımlayıcısını da içeriyorlardı. (Ancak sözdizimini değiştirmedi - IPv6 adresi: bağlantı noktası altı yerine 21 sayı olarak gönderilecek.)
LPRT <protocol>,<addr-length>,<address...>,<port-length>,<port...>
LPRT 4,4,132,235,1,2,2,24,131
LPRT 6,16,16,128,0,0,0,0,0,0,0,8,8,0,32,12,65,122,2,20,162
Ancak, bu yine de bir sunucudan kontrol bağlantısından farklı bir protokol kullanmasını istemek gibi bazı sorunları çözmedi. RFC de hızla güncelliğini yitirdi; IPv6 sadece bir yıl sonra çıktığında, bu olamazdı (sadece çeşitli erken teklifler için) bunun için atanmış bir LPRT protokol tanımlayıcı olduğu için LPRT ile kullanılabilir.
Bunu düzeltmek için, 1998'de RFC 2428 eklenmiş EPRT
ve EPSV
"genişletilmiş bağlantı noktası" ve "genişletilmiş pasif" olarak da adlandırılmıştır. "Genişletilmiş" komutlar aynı zamanda adresleri insan tarafından okunabilir biçimde gönderir - IPv6 için, bir dizi ayrı ondalık sayı yerine onaltılık ve iki nokta notasyonu kullanmak anlamına gelir.
EPRT x<protocol>x<address>x<port>x
EPRT |1|132.235.1.2|6275|
EPRT |2|1080::8:800:200C:417A|5282|
Sonuç olarak, IPv6 desteği tek farktır.
EPSV
yanıtın IP adresini içermemesidir ( PASV
yanıtın yaptığı şey). Bu, bir NAT'ın arkasında bulunan FTP sunucusu harici IP adresini bilmediğinde ve FTP istemcisini dahili adresini göndererek karıştırdığında yaygın sorunlardan kaçınmaktır.
Aktif ve pasif arasındaki fark zaten cevaplanmıştır. Genişletilmiş pasif (EPSV) sadece IPv4 ve IPv6 ile pasiftir, çünkü PASV'ye verilen yanıtın sözdizimi IPv4'e özgüdür ve bu nedenle IPv6 için yeni bir komut gerekliydi. Aktif modda EPTR ve PORT ile aynı. EPRT ve EPSV ile PORT ve PASV gibi sadece portu değil, portu içerebileceklerinden biraz farklı bir davranış vardır. Böylece veri aktarımı sadece kontrol bağlantısına sahip sistemler arasında yapılabilir. PORT ve PASV ile diğer sistemler arasında bir veri bağlantısı oluşturmak mümkündür (günümüzde bu kötü tasarım ve güvenlik riski olarak kabul edilmektedir).