Yanıtlar:
Aktif ve pasif FTP'nin çalışabileceği iki moddur.
Arka plan için, FTP aslında istemci ve sunucu arasında iki kanal kullanır ; komut ve veri kanalları, aslında ayrı TCP bağlantılarıdır.
Veri kanalı gerçekte dosya aktarımı için iken komut kanalı komutlar ve yanıtlar içindir.
Komut bilgilerinin ve verilerin ayrı kanallara ayrılması, geçerli veri aktarımının bitmesini beklemek zorunda kalmadan sunucuya komut gönderebilmenin şık bir yoludur. RFC'ye göre, bu yalnızca bırakma, geçerli aktarımı iptal etme ve durumu alma gibi bir komut alt kümesi için zorunludur.
İçinde aktif mod, istemci komut kanalını oluşturur, ancak sunucu veri kanalı oluşturulmasından sorumludur. Örneğin, istemci makine güvenlik duvarları ile korunuyorsa ve harici taraflardan yetkisiz oturum isteklerine izin vermiyorsa, bu aslında bir sorun olabilir.
Gelen pasif modda, istemci kurar hem kanalları. Komut kanalını aktif modda kurduğunu ve burada aynı şeyi yaptığını zaten biliyoruz.
Ancak, daha sonra istemciyle bağlantı kurmaya çalışmak yerine sunucudan (komut kanalında) bir bağlantı noktasını (sunucuların takdirine bağlı olarak) dinlemeye başlamasını ister .
Bunun bir parçası olarak, sunucu istemciye dinlemeyi seçtiği bağlantı noktası numarasını da döndürür, böylece istemci ona nasıl bağlanacağını bilir.
Müşteri bunu öğrendikten sonra, veri kanalını başarıyla oluşturabilir ve devam edebilir.
RFC'de daha fazla ayrıntı bulabilirsiniz: https://www.ietf.org/rfc/rfc959.txt
Geçenlerde işyerinde bu soruya rastladım, bu yüzden burada daha fazla bir şey söylemeliyim. FTP'nin önceki yanıt için ek bir kaynak olarak nasıl çalıştığını açıklamak için görüntü kullanacağım.
Aktif mod:
Pasif mod:
Etkin mod yapılandırmasında, sunucu rasgele bir istemci tarafı bağlantı noktasına bağlanmaya çalışır. Yani, bu bağlantı noktası önceden tanımlanmış bağlantı noktalarından biri olmaz. Sonuç olarak, güvenlik duvarı tarafından ona bağlanma denemesi engellenecek ve hiçbir bağlantı kurulmayacaktır.
İstemci bağlantıyı başlatan kişi olacağından pasif bir yapılandırmada bu sorun olmaz. Tabii ki, sunucu tarafının da bir güvenlik duvarına sahip olması mümkündür. Ancak, sunucunun bir istemciye kıyasla daha fazla sayıda bağlantı isteği alması beklendiğinden, sunucu yöneticisinin duruma uyum sağlaması ve pasif mod yapılandırmalarını karşılamak için bir dizi bağlantı noktası açması mantıklı olacaktır.
Bu yüzden sunucuyu pasif mod FTP'yi destekleyecek şekilde yapılandırmanız en iyisidir. Ancak, pasif mod, istemcilerin rasgele sunucu bağlantı noktalarına bağlanması gerektiği için sisteminizi saldırılara karşı savunmasız bırakacaktır. Bu nedenle, bu modu desteklemek için sadece sunucunuzda birden fazla bağlantı noktası olması gerekmez, güvenlik duvarınız da tüm bu bağlantı noktalarına bağlantıların geçmesine izin vermelidir!
Riskleri azaltmak için, sunucunuzda bir dizi bağlantı noktası belirtmek ve daha sonra güvenlik duvarınızda yalnızca bu bağlantı noktası aralığına izin vermek iyi bir çözüm olacaktır.
Daha fazla bilgi için lütfen resmi belgeyi okuyun .
Yazımın düzeltilmiş sürümü FTP Bağlantı Modları (Aktif ve Pasif) :
FTP bağlantı modu (etkin veya pasif), veri bağlantısının nasıl kurulacağını belirler. Her iki durumda da, istemci bir FTP sunucusu komut bağlantı noktası 21'e bir TCP kontrol bağlantısı oluşturur. Bu, diğer herhangi bir dosya aktarım protokolünde (SFTP, SCP, WebDAV) veya diğer herhangi bir TCP istemci uygulamasında (örn. Web tarayıcısı) olduğu gibi standart bir giden bağlantıdır ). Bu nedenle, kontrol bağlantısını açarken genellikle sorun olmaz.
FTP protokolünün diğer dosya aktarım protokollerine göre daha karmaşık olduğu durumlarda dosya aktarımlarıdır. Diğer protokoller hem oturum denetimi hem de dosya (veri) aktarımları için aynı bağlantıyı kullanırken, FTP protokolü dosya aktarımları ve dizin listeleri için ayrı bir bağlantı kullanır.
Gelen aktif mod, istemci sunucudan gelen veri bağlantıları için rasgele bir bağlantı noktasında dinleme başlar (istemci FTP komutu gönderir PORT
dinleme yaptığı liman üzerinde sunucuyu bilgilendirmek). Günümüzde, istemcinin gelen TCP bağlantılarını kabul edemediği bir güvenlik duvarının (ör. Yerleşik Windows güvenlik duvarı) veya NAT yönlendiricisinin (örn. ADSL modem) arkasında olması tipiktir.
Bu nedenle pasif mod getirildi ve günümüzde daha çok kullanılıyor. Kullanılması pasif karmaşık konfigürasyon çoğu (muhtemelen) deneyimsiz kullanıcılar tarafından oldukça bireysel bir istemci tarafında daha deneyimli yönetici tarafından, sunucu tarafında yalnızca bir kez yapılır çünkü modunu tercih edilir.
Gelen pasif modda, istemci göndermek için kontrol bağlantısını kullanan PASV
sunucuya komutunu ve ardından istemci sunucu IP adresi ve sunucuya bir veri bağlantısını açmak için kullandığı sunucudan bir sunucu IP adresi ve sunucu port numarasını alır bağlantı noktası numarası alındı.
İle pasif modda, konfigürasyon yükünün en sunucu tarafında. Sunucu yöneticisi, sunucuyu aşağıda açıklandığı gibi ayarlamalıdır.
FTP sunucusu tarafındaki güvenlik duvarı ve NAT, yalnızca FTP bağlantı noktası 21'e gelen bağlantılara izin vermek / yönlendirmek için değil, aynı zamanda gelen veri bağlantıları için bir dizi bağlantı noktasına izin verecek şekilde yapılandırılmalıdır. Genellikle, FTP sunucusu yazılımı, sunucunun kullanacağı bir dizi bağlantı noktası ayarlamak için bir yapılandırma seçeneğine sahiptir. Ve aynı aralık güvenlik duvarında / NAT'da açılmalı / yönlendirilmelidir.
FTP sunucusu bir NAT'ın arkasındayken, harici IP adresini bilmesi gerekir, böylece PASV
komuta yanıt olarak istemciye sağlayabilir .
İle aktif mod, konfigürasyon yükünün en istemci tarafında bulunur.
İstemci tarafındaki güvenlik duvarı (örn. Windows güvenlik duvarı) ve NAT (örn. ADSL modem yönlendirme kuralları), gelen veri bağlantıları için bir dizi bağlantı noktasına izin verecek / yönlendirilecek şekilde yapılandırılmalıdır. Windows'ta bağlantı noktalarını açmak için Denetim Masası> Sistem ve Güvenlik> Windows Güvenlik Duvarı> Gelişmiş Ayarlar> Gelen Kuralları> Yeni Kural'a gidin . NAT (varsa) üzerindeki bağlantı noktalarını yönlendirmek için belgelerine bakın.
Ağınızda NAT olduğunda, FTP istemcisi WinSCP'nin PORT
komut kullanarak FTP sunucusuna sağlaması gereken harici IP adresini bilmelidir . Böylece sunucu, veri bağlantısını açmak için istemciye doğru şekilde bağlanabilir. Bazı FTP istemcileri harici IP adresini otomatik olarak algılayabilir, bazıları manuel olarak yapılandırılmalıdır.
Bazı güvenlik duvarları / NAT'lar, FTP kontrol bağlantısını inceleyerek ve / veya kontrol bağlantısı trafiğindeki veri bağlantısı IP adreslerini çevirerek veri portlarını otomatik olarak açmaya / kapatmaya çalışır.
Böyle bir güvenlik duvarı / NAT ile, yukarıdaki yapılandırma, şifrelenmemiş bir düz FTP için gerekli değildir. Ancak, kontrol bağlantı trafiği şifreli olduğundan ve güvenlik duvarı / NAT onu denetleyemediğinden veya değiştiremediğinden FTPS ile çalışamaz.
Aktif mod: -server bağlantıyı başlatır.
Pasif mod: -client bağlantıyı başlatır.
Etkin Mod — İstemci, sunucuya, Veri Bağlantısını istemciye geri açmak için bir IP ve bağlantı noktası numarası sağlayacağını bildiren bir PORT komutu verir.
Pasif Mod — İstemci, sunucunun IP ve bağlantı noktası numarası vermesini “pasif olarak” bekleyeceğini ve ardından istemcinin sunucuya bir Veri Bağlantısı oluşturacağını belirten bir PASV komutu verir.
Yukarıda çok sayıda iyi yanıt var, ancak bu blog yayını bazı yararlı grafikler içeriyor ve oldukça sağlam bir açıklama veriyor: https://titanftp.com/2018/08/23/what-is-the-difference-between-active-and -passive-ftp /