Id-dħul jaħdem, PWD jaħdem, u mbagħad LIST jibqa’ mdendel sakemm il-klijent jaqta’ qalbu jew jgħaddi għal modalità oħra tad-data. Dan il-qsim huwa s-sinjal: il-konnessjoni tal-kontroll lejn il-port 21 hija b’saħħitha, filwaqt li l-konnessjoni tad-data tinbena minn indirizz jew port li n-naħa l-oħra ma tistax tilħaq. Wara gateway VPN li jagħmel NAT ukoll, il-ħati tas-soltu huwa kmand FTP li l-payload tiegħu jsemmi indirizz ta’ tunnel bħal 10.8.0.6. It-traduzzjoni tal-intestaturi qatt ma tmiss dak il-valur.

Dak li ġej huwa minn fejn ġej dak il-valur, u liema kaxxa hija permessa tibdlu.

Dak li jinqasam huwa l-payload, mhux it-tunnel

FTP iqiegħed it-tarf tad-data ġewwa l-fluss tal-kontroll. Fil-modalità attiva l-klijent jibgħat PORT bl-indirizz u l-port tiegħu stess, u s-server iċempel lura lejn dik il-par. Fil-modalità passiva s-server iwieġeb 227 b’par, u l-klijent iċempel lil dak minflok.

Iż-żewġ forom iġorru l-istess tip ta’ dikjarazzjoni: qabbad ma’ dan l-indirizz, fuq dan il-port. Apparat li jerġa’ jikteb biss l-intestaturi IP u TCP iħalli d-dikjarazzjoni kif inhi, u għalhekk naħa waħda tkompli tipprova tilħaq indirizz li jeżisti biss fuq in-naħa l-oħra ta’ tunnel. Il-konnessjoni tad-data tieqaf wara li l-konnessjoni tal-kontroll tkun diġà ġiet iddikjarata b’saħħitha.

Tliet modalitajiet, tliet payloads

It-tabella hawn taħt turi liema naħa qed tiġi mitluba ċċempel, u x’jista’ jagħmel NAT li jerġa’ jikteb biss l-intestaturi dwar dan.

Aqra l-aħħar kolonna bħala dak li jfalli l-ewwel. Fil-modalità attiva s-server iċempel indirizz privat; fil-modalità passiva huwa l-klijent; bil-FTPS il-payload huwa test sifrat u l-kaxxa tan-nofs għandha anqas saħansitra biex taħdem bih.

ModeValue in the control streamWho dials whomHeader-only NAT leaves
Active (PORT)client address and portserver dials the clienta server dialing an unreachable tunnel address
Passive (227)server address and portclient dials the servera client dialing an address it cannot route to
FTPSthe same values, inside TLSas aboveciphertext, so no rewrite happens at all

Qiegħed l-għajnuna fejn issir it-traduzzjoni

Fuq Linux it-tikteb mill-ġdid tal-payload isir mill-għajnuna nf_conntrack_ftp. Hija tosserva l-konnessjoni tal-kontroll, titgħallem il-port li ġie nnegozjat, toħloq aspettattiva għall-fluss tad-data, u fuq kaxxa NAT terġa’ tikteb l-indirizz u l-port ġewwa l-payload. Hija tgħin biss fuq l-apparat li jittraduċi l-indirizz tal-klijent. L-illowdjar tagħha fuq il-klijent, jew fuq router li sempliċement jgħaddi l-fluss, ma jbiddel xejn fis-sessjoni.

Dawn it-tliet kmandi juru jekk il-modulu huwiex preżenti, jekk huwiex imqabbad, u jekk teżistix aspettattiva waqt li sessjoni hija miftuħa:

modprobe nf_conntrack_ftp
lsmod | grep nf_conntrack_ftp
conntrack -L expect | grep ftp

L-illowdjar tal-modulu mhuwiex l-istess bħall-imqabbad tiegħu. Il-kernel minn 4.7 ’il fuq jiġu bi net.netfilter.nf_conntrack_helper=0, għalhekk l-għajnuna tistenna regola espliċita, pereżempju iptables -t raw -A PREROUTING -p tcp --dport 21 -j CT --helper ftp. Jekk il-lista tal-aspettattivi tibqa’ vojta waqt li jiġi ppruvat trasferiment, l-imqabbad huwa dak li għandu jiġi ċċekkjat, mhux il-modulu.

Modalità passiva: għid lis-server x’għandu jħabbar

Il-modalità passiva hija aktar faċli biex issir deterministika għax lis-server jista’ jingħadlu x’għandu jpoġġi fit-tweġiba 227. Fil-vsftpd dak huwa pasv_address, flimkien ma’ pasv_min_port u pasv_max_port; ProFTPD juża MasqueradeAddress u PassivePorts. Issettja dawk l-ewwel, għax indirizz imħabbar b’mod korrett ineħħi l-bżonn li jerġa’ jinkiteb xi ħaġa fuq dik in-naħa.

Imbagħad ħalli eżatt dak il-firxa ta’ portijiet tgħaddi mill-gateway, pereżempju -A FORWARD -i tun0 -p tcp --dport 30000:30100 -j ACCEPT, sabiex ir-regola taqbel ma’ dak li jħabbar is-server.

Iż-żewġ settings iridu jaqblu. Server li jingħadlu biex iħabbar 30000-30100 waqt li l-gateway jippermetti 40000-40100 ifalli bl-inqas mod utli: il-konversazzjoni tal-kontroll tidher b’saħħitha u kull konnessjoni tad-data tmut. Qabbel in-numri qabel ma tiddebuddja xi ħaġa oħra.

Żewġ sinjali ta’ falliment, u x’tneħħi l-FTPS

Id-dendel fuq LIST jindika l-ewwel konnessjoni tad-data tas-sessjoni, fejn kemm it-tikteb mill-ġdid tal-indirizz kif ukoll l-aspettattiva jridu jaħdmu. Id-dendel fuq RETR wara LIST li jaħdem jindika t-trasferiment innifsu, jiġifieri l-firxa passiva jew l-MTU tat-tunnel. It-tieni sinjal mhuwiex problema tal-payload, u s-settings tal-għajnuna mhux se jsewwuh.

FTP fuq TLS ineħħi l-payload li taqra l-għajnuna. Kaxxa tan-nofs ma tistax terġa’ tikteb valur PORT jew PASV li ma tistax tiddikriptah, għalhekk jibqgħu prokura li ttemm it-TLS, server li jħabbar indirizz li jintlaħaq fi firxa limitata, jew protokoll ieħor tat-trasferiment.

Sekwenza qasira ta’ verifiki

Aħdem mis-sintomu ’l barra. Ikkonferma li LIST ifalli waqt li PWD jirnexxi, aqbad l-indirizz ġewwa l-payload PORT jew 227, u staqsi liema apparat jittraduċi dak l-indirizz. Qabbad l-għajnuna hemm, osserva l-lista tal-aspettattivi waqt trasferiment wieħed, imbagħad sewwi l-modalità passiva fuq is-server u rriferi l-firxa fir-regola tal-gateway.

Żomm il-falliment tal-mogħdija tad-data separat mill-falliment tat-trasferiment kbir, għax iwassluk għal settings differenti.

Artikli relatati