Host your own FTP file server for FREE :)

There are plenty of hosts on the Internet willing to take your buck to provide file hosting and FTP access to your hosting account. In South Africa the bandwidth is insufficient to host a reliable server from your house, but it can still host the basics and prove to blessing in disguise when wanting to pull files from the server or place files on the server. Now FTP is quite an old protocol, and please don’t use FTP when sitting at a public wifi hotspot – the reason for this being that usernames and passwords are transmitted in cleartext, and you dont want your server to be somebody else’s before you’re done uploading / downloading your files 🙂 But not to worry we will give you some instructions on how to upload and download files from your server securely from the public wifi hotspot or insecure network 🙂 For now lets get a basic FTP server setup in Ubuntu:

  1. Open up Terminal and install vsftpd

[box type=”bio”] sudo apt-get install vsftpd[/box]

– That is the only command you need to install an FTP server in Ubuntu, simple as that, but just a couple more steps to ensure that things are slightly more secure:

  1. Edit your vsftpd.conf file

[box type=”bio”] sudo nano /etc/vsftpd.conf[/box]

  1. Change this line

[box type=”bio”]anon_upload_enable=YES[/box]

to

[box type=”bio”]#anon_upload_enable=YES[/box]

This basically disables anonymous FTP access

  1. To ensure that users are only able to move around in their home directory, ensure that the following line is uncommented:

[box type=”bio”]chroot_local_user=YES[/box]

Securing FTP with FTPS

When using FTP on insecure networks, you can add the following command to the bottom of your vsftpd.conf file to enable FTPS:

[box type=”bio”] ssl_enable=Yes[/box]

Finally

  • Save the vsftpd.conf file in nano by pressing the key combination CTRL-W
  • Restart the FTP server for the changes to be applied:

[box type=”bio”] sudo /etc/init.d/vsftpd restart or sudo service vsftpd restart[/box]

If you haven’t already forwarded the FTP port from your router to your Ubuntu machine follow these instructions:

  • Get a dynamic hostname (this is something like you.homelinux.com, you can register for one of these at www.noip.com or www.dyndns.org) – this is necessary because your ISP assigns dynamic ip addresses at random intervals and the hostname is then used to point to the newly updated ip address
  • Once you have your dynamic hostname, you need to input dynamic dns settings in your router, its normally under firewall, or wan categories. You input your dyndns or noip username and password and your router then updates your hostname with the newly assigned ip address. Some routers don’t have this functionality, so you may have to download a dynamic dns updater – the Ubuntu website provides instructions on how to do this, as well as register for a dynamic hostname if our instructions weren’t clear enough: https://help.ubuntu.com/community/DynamicDNS
  • The final step is to forward port 80 on your router to the ip address of your ubuntu machine where the web server is hosted. In order to make your life easy, first set a static ip address for your ubuntu machine, that way you know which ip address to forward incoming traffic on port 80 to. Port forwarding instructions vary depending on the router model, but this can normally be found under “Virtual IP” or Firewall -> Port Forwarding. Wikihow provide a quick a dirty guide on port forwarding: http://www.wikihow.com/Set-Up-Port-Forwarding-on-a-Router

Well that’s it for today folks, hope this helps 🙂

[box type=”bio”] [paypal-donation][/box]