Oibríonn an logáil isteach, oibríonn PWD, agus ansin fanann LIST go dtí go dtagann an cliant suas nó go n-aistríonn sé go mód sonraí eile. Is é an deighilt sin an tsíniú: tá an nasc rialaithe chuig port 21 sláintiúil, agus an nasc sonraí á thógáil ó sheoladh nó ó phort nach féidir leis an taobh eile a shroicheadh. Taobh thiar de gheata VPN a dhéanann NAT freisin, is é an t-ionsaitheoir is gnáth ná ordú FTP a ainmníonn a ualach seoladh tolláin ar nós 10.8.0.6. Ní bhaineann aistriú ceanntásc leis an luach sin riamh.

Seo a leanas cá as a dtagann an luach sin, agus cén bosca a bhfuil cead aige é a athrú.

Is é an t-ualach a bhriseann, ní an tollán

Cuireann FTP an pointe deiridh sonraí taobh istigh den sruth rialaithe. Sa mhód gníomhach seolann an cliant PORT lena sheoladh agus a phort féin, agus glaoann an freastalaí ar ais chuig an bpéire sin. Sa mhód éighníomhach freagraíonn an freastalaí 227 le péire, agus glaoann an cliant ar an bpéire sin ina áit.

Iompraíonn an dá fhoirm an cineál céanna ráitis: nasc leis an seoladh seo, ar an bport seo. Fágann gléas nach n-athscríobhann ach ceanntáisc IP agus TCP an ráiteas gan mhórán, mar sin leanann taobh amháin ag iarraidh seoladh a shroicheadh nach bhfuil ann ach ar an taobh eile de thollán. Stopann an nasc sonraí tar éis an nasc rialaithe a bheith fógartha sláintiúil cheana.

Trí mhód, trí ualach

Taispeánann an tábla thíos cén taobh a n-iarrtar air glao, agus cad is féidir le NAT nach n-athscríobhann ach ceanntáisc a dhéanamh faoi sin.

Léigh an colún deiridh mar an rud a theipeann ar dtús. Sa mhód gníomhach is é an freastalaí a ghlaonn ar sheoladh próbháideach; sa mhód éighníomhach is é an cliant; le FTPS is téacs sifeartha an t-ualach agus tá níos lú fós ag an mbosca idirmheánach le hoibriú leis.

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

Cuir an cúntóir san áit a dtarlaíonn an aistriú

Ar Linux is é an cúntóir nf_conntrack_ftp a dhéanann athscríobh an ualaigh. Déanann sé faireachán ar an nasc rialaithe, foghlamaíonn sé an port a rinneadh comhaontú air, cruthaíonn sé ionchas don sruth sonraí agus ar bhosca NAT athscríobhann sé an seoladh agus an port taobh istigh den ualach. Ní dhéanann sé cúnamh ach ar an ngléas a aistríonn seoladh an chliaint. Má luchtaítear ar an gcliant é, nó ar ródaire nach ndéanann ach an sruth a sheoladh ar aghaidh, ní athraíonn sé aon rud faoin seisiún.

Taispeánann na trí ordú seo an bhfuil an modúl i láthair, an bhfuil sé ceangailte agus an bhfuil ionchas ann fad a bhíonn seisiún oscailte:

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

Ní hionann an modúl a luchtaítear agus é a cheangal. Tagann eithne ó 4.7 ar aghaidh le net.netfilter.nf_conntrack_helper=0, mar sin fanann an cúntóir le riail shainráite, mar shampla iptables -t raw -A PREROUTING -p tcp --dport 21 -j CT --helper ftp. Má fhanann an liosta ionchas folamh fad a dhéantar iarracht aistrithe, is é an ceangal atá le seiceáil, ní an modúl.

Mód éighníomhach: abair leis an bhfreastalaí cad a fhógairt

Tá an mód éighníomhach níos éasca a dhéanamh cinntitheach mar is féidir a rá leis an bhfreastalaí cad a chuirfidh sé sa fhreagra 227. In vsftpd is é sin pasv_address, mar aon le pasv_min_port agus pasv_max_port; úsáideann ProFTPD MasqueradeAddress agus PassivePorts. Socraigh iad sin ar dtús, mar baineann seoladh fógartha ceart an gá atá le haon rud a athscríobh ar an taobh sin.

Ansin lig don raon port sin go díreach tríd an ngeata, mar shampla -A FORWARD -i tun0 -p tcp --dport 30000:30100 -j ACCEPT, ionas go n-oireann an riail don rud a fhógraíonn an freastalaí.

Caithfidh an dá shocrú teacht le chéile. Teipeann ar fhreastalaí a n-iarrtar air 30000-30100 a fhógairt agus an geata ag ligean 40000-40100 isteach ar an mbealach is lú cabhrach: breathnaíonn an chomhrá rialaithe sláintiúil agus faigheann gach nasc sonraí bás. Déan comparáid idir na huimhreacha sula ndéanann tú aon rud eile a dhífhabhtú.

Dhá shíniú teipe, agus cad a bhaineann FTPS amach

Cuireann stad ar LIST in iúl don chéad nasc sonraí den seisiún, áit a gcaithfidh athscríobh seolaidh agus an t-ionchas araon oibriú. Cuireann stad ar RETR tar éis LIST a oibríonn in iúl don aistriú féin, is é sin an raon éighníomhach nó MTU an tolláin. Ní fadhb ualaigh é an dara síniú sin, agus ní dheiseoidh socruithe an chúntóra é.

Baineann FTP thar TLS an t-ualach a léann an cúntóir amach. Ní féidir le bosca idirmheánach luach PORT nó PASV a athscríobh nach féidir leis a dhíchriptiú, mar sin is iad na roghanna atá fágtha seachfhreastalaí a chríochnaíonn TLS, freastalaí a fhógraíonn seoladh inrochtana laistigh de raon teoranta, nó prótacal aistrithe eile.

Ord gearr seiceálacha

Oibrigh amach ón symptom. Deimhnigh go dteipeann ar LIST agus PWD ag éirí leis, gabh an seoladh taobh istigh den ualach PORT nó 227, agus fiafraigh cén gléas a aistríonn an seoladh sin. Ceangail an cúntóir ann, breathnaigh ar an liosta ionchas le linn aistriú amháin, ansin socraigh an mód éighníomhach ar an bhfreastalaí agus scáthaigh an raon i riail an gheata.

Coinnigh teip an chosáin sonraí ar leithligh ó theip an aistrithe mhóir, mar chuig socruithe éagsúla a thugann siad thú.

Ailt ghaolmhara