I'm trying to set up a secure ftp transfer between my linux machine and my internet gateway running ubuntu 8.04.

I have vsftpd installed but I can't get PASV connection to work with putty. My ubuntu firewall blocks everything except ssh.

From my windows XP machine I establish a connection with putty to my ubuntu machine. I have putty forward local port 21(windows machine) to machine).

This works sort of. I use the ftp client from windows command line to connect to 21, which forwards me to port 21 on the ubuntu machine and allows me to connect/login.

Then after I enter "quote PASV" and try a "dir" command it hangs. In vsftpd.conf I had added lines pasv_max_port=21 and pasv_min_port=21 so that the ftp server would tell the windows ftp client to use port 21 for data transfers.

I then added "pasv_address=" to vsftpd.conf, thinking vsftp was telling the windows ftp client to try and connect to something other than localhost, and vsftpd wouldn't start, it said I had to edit 2 files.

I already have sftp working with psftp.exe, but I'd like one entry point into my system and psftp doesn't load bash.bashrc, so I want ftp through ssh to work.

See this site for PASV ftp: http://www.slacksite.com/other/ftp.html

Ok I decided to ditch the port forwarding and just get it working normally first. I got it working by opening my local interface through iptables.

In vsftpd.conf I specified a port range of 55000 to 55100 for PASV ports, but vsftpd doesn't use that range.

Using wireshark I captured ftp packets and saw vsftpd sent PASV ports 62237 and 58847 for two different ftp sessions.

Why is it not using the specified range?

Here is a non-commented copy of vsftpd.conf.


I use putty in my school's laboratory.
But I don't know you how to use vsftp?