First, download an ISO of Ubuntu Desktop 6.06.x or greater… Download Ubuntu
Burn the ISO to a CD.
Insert the Ubuntu CD into the computer and then boot up the computer. Make sure you computer is set to start from CD player if a bootable CD is present.
Follow the prompts. They are pretty straight forward and it should only take about 15 minutes to be ready to go.
Download the latest version VSFTPD
I used 2.0.5
Or you can use Ubuntu's apt-get install to do the same.
Open Terminal:
su [enter root user pasword] cd /tmp apt-get install vsftpd # OR wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.5.tar.gz tar -zxvf vsftpd-2.0.5.tar.gz cd vsftpd-2.0.5 mkdir /var/run/vsftpd ./configure make make install
Back up /etc/network/interfaces
cp /etc/network/interfaces /etc/network/interfaces.bak
make sure you are root then… Open in VIM or Nano/Pico
nano /etc/network/interfaces
# Change eth0 to match according to your router setup
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
# save and Quit then restart network
/etc/init.d/networking restart
iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Forward ports 20-22 and select a port for passive mode and forward that too
For passive mode choose a very high port number like 35005 and forward that as well
Back up Config file
/etc/vsftpd.conf /etc/vsftpd.conf.bak
Then Edit /etc/vsftpd.conf:
Ours looks something like this:
# Run standalone? vsftpd can run either from an inetd or as a standalone # daemon started from an initscript. listen=YES #background=YES # # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # You may change the default value for timing out a data connection. data_connection_timeout=240 # # You may fully customise the login banner string: ftpd_banner=Welcome to Little Linux FTP service. # # You may restrict local users to their home directories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. chroot_local_user=YES # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. ls_recurse_enable=YES # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. secure_chroot_dir=/var/run/vsftpd # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # # This option specifies the location of the RSA key to use for SSL # encrypted connections. rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key # # #pasv_addr_resolve=YES pasv_enable=YES #pasv_address=192.168.x.xxx pasv_min_port=35005 pasv_max_port=35005 #tcp_wrappers=YES dirlist_enable=YES use_localtime=YES log_ftp_protocol=YES #port_enable=YES