Ek probeer linux ftp-bediener koppel in vensteropdragprompt dit werk goed as ftp-poort verstek is (20, 21)

dit werk nie nadat ek die verstekpoort van FTP, FTP-DATA, verander het nie

ja, ek het die firewall gekontroleer (dit is dieselfde as selfs die firewall stop), en ja, ek het die vsftpd.conf-lêer nagegaan

is daar iets anders om te kyk of poort verander is? Ek het gedink net vsftpd.conf is die een wat op FTP- en FTP-DATA-poort bewerkstellig het

  • werk goed wanneer die poort verstek is (20, 21)

voer prentbeskrywing hier in

  • 425 Kon nie verbinding bewerkstellig nie. toe ek die poort verander het

voer prentbeskrywing hier in

en dit is my /etc/vsftpd/vsftpd.conf lêer

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
listen_port=39021 # add this
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
ftp_data_port=39020  # add this
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
port_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=NO
pasv_enable=YES       # add this
pasv_min_port=60019   # add this
pasv_max_port=60020   # add this 
pasv_address=[My IP]  # add this 
allow_writeable_chroot=YES
port_promiscuous=YES  # add this 
answer

Dit is nie genoeg inligting om 'n volledige antwoord te hê nie. Maar jy moet altyd onthou dat FTP nie 'n eenvoudige protokol is nie. In die eenvoudigste geval werk die aktiewe FTP soos volg:

  1. Jy maak 'n beheerverbinding na poort 21 (FTP-bediener), waardeur
  2. Jy staaf
  3. Jy vertel die bediener waar om 'n verbinding te maak (IP en poort)
  4. Jy beveel die bediener om oordrag te begin
  5. Die bediener maak nog 'n verbinding met die IP en poort wat jy dit vertel het en stuur of ontvang data.

Gewoonlik vertel jy in stap 3 vir die bediener jou IP en die poort waarna jou FTP-kliënt luister, so 'n ander verbinding in stap 5 word in omgekeerde rigting gemaak , van die bediener na jou.

Wat sou dit wees in die teenwoordigheid van die firewall tussenin? Kom ons neem aan dat u die aanvaarding van pakkies op die poort 21 (of wat u ook al gebruik) op die bediener geaktiveer het. Jy is in staat om 'n beheerverbinding te maak. Nou, wat van die omgekeerde dataverbinding wat die bediener maak? Hoe om dit te aktiveer?

Daar is twee gevalle: jy laat óf een of ander poort (of reeks) staties toe en stel jou FTP-kliënt in om altyd daardie poort te gebruik, óf jy het baie slim firewall, wat aktief die beheerverbinding afluister , die IP en poort onttrek en dinamies die tydelike reël wat die omgekeerde verbinding toelaat. Dit word ALG genoem, wat staan ​​vir Application-level gateway .

Hoe weet die firewall watter verbindings om af te luister? Dit weet die FTP werk oor TCP/21, so dit soek eenvoudig vir enige verkeer op daardie poort. Wat as jy die beheerpoort verander? Jy het waarskynlik dit geraai: die ALG sal nie werk nie. Firewall sal nie die bykomende dinamiese reël byvoeg nie, so die omgekeerde dataverbindingspoging sal nie slaag nie.

Daar is 'n hoop dat as jy "die ALG" konfigureer om met nie-verstekpoort te werk, die probleem opgelos sal word. Dit is egter nie altyd die geval nie. Vra eers, van watter firewall praat ons? Moderne wêreld gebruik brandmure baie, aan beide kante en tussenin, en daar is ook 'n groot gebruik van NAT (insluitend CGN wat deur ISP's gebruik word). Enige NAT het ALG ook nodig: dit moet 'n dinamiese vertaalreël skep teenoor die kliënt wat agter die NAT is en wat die transaksie begin het. Jy kan net op hierdie manier slaag as jy elke ALG langs die pad kon instel soos jy wil. Sien waarheen ek gaan?

Daar is twee algemene oplossings . Eerstens, eenvoudig: maak staat op ALG's, wat vereis dat jy nooit die verstek FTP-beheerpoort verander nie (eerlik, 20 jaar se bestuur van bedieners en ek verstaan ​​steeds nie die punt daarvan om nie-verstekpoorte te gebruik nie. Dit skep meer probleme as om op te los) . Tweedens, ook eenvoudig: gebruik 'n passiewe FTP-modus.

Die passiewe FTP werk soos volg:

  1. Jy maak 'n verbinding met poort 21 (FTP-bediener), waardeur
  2. Jy staaf
  3. Jy gaan die passiewe modus in, en die bediener antwoord met IP en poort
  4. Jy beveel die bediener om oordrag te begin
  5. Jy maak nog 'n verbinding met die IP en port die bediener aan jou gesê en ontvang of stuur die data.

Let op die enigste veranderde stappe is 3 en 5. Hulle vermy omgekeerde verbindings.

Dit los die probleem gedeeltelik op met nie-verstekpoort en nie-beheerde ALG's. Dit maak ook die gebruik van die enkripsie op die beheerverbinding moontlik (wat inherent ALG's breek).