Friday, February 5, 2010

How to set up a home FTP server

A home FTP server is useful to anyone who wants to save and retrieve files on their computer from anywhere.

The main advantage of a home FTP server over a web server is that you can save files to the server, whereas with a web server, you can only get files. The disadvantage of a home FTP server is that you need an FTP client to connect to it, whereas web servers can be accessed using a plain old web browser. However, many modern web browsers support the FTP protocol. Instead of prefacing the URL with http://, use ftp://. That said, most web browsers make crappy FTP clients. You should use a more fully-featured FTP client to conect to your server like SmartFTP or WS_FTP wherever possible.

Let's get started.

What you'll need:

  1. A Windows PC
  2. An always-on broadband (DSL or cable) internet connection

Step 1: Download and install Serv-U FTP

Serv-U FTP is a nice windows FTP server app that has a simple to use interface. It's been around for years — I've used it since 1997 and it works flawlessly. The newest version adds more security through SSL support and the best part of all is that the personal version which allows for two FTP logins is completely free.

Now, don't get confused because they have several levels of pricing and several editions, but you can download a single package from here that includes all versions. Once installed, you will have a "corporate edition" that after thirty days will become the "personal edition." If you follow along this tutorial, you won't be using any special features so you shouldn't see anything change once the application reverts to the free version. And by all means, if you decide to use this on a machine at work, make your employer pay for a license, but as long as this is on your home computer, free personal use is fine.

Step 2: Complete setup and create a user login

After the initial setup is done, Serv-U should start the administrator and ask you to create a new user account. Start off by first putting in the domain name you used to setup your dynamic DNS. The names I'm using in these figures are for demonstration purposes. (Click to enlarge image.)

To keep your FTP server for your own use, be sure to disable Anonymous access by selecting "No" when asked.

When it asks for your Home Directory, it's probably best to just say C:\ for your home windows machine. This will give you easy access to any file on the main drive. Be sure you say No to locking your own user in the home directory, otherwise you might not be allowed to switch to other drives.

Step 3: Grant proper rights to any drives you have

When you are done creating a new user account, start the FTP server and the Serv-U Administrator application. Expand the Domains tree to show your server, then the Users tree to find your account. With your user selected, click the Dir Access tab on the right pane, as shown. (Click to enlarge.)

Highlight the drive letter and fill all the checkboxes on the right side except for "Execute". This will give you total access to upload, download, delete, create, and make any directory changes as well. If you're nervous about your account having too much access, you can probably get away with just read or read and write access for most things. Also be sure to add any other drives on your computer (I have a second hard drive with the letter E:\ on mine, as shown in the figure).

Step 4: Be sure you have outside access to your new FTP server

Like many of you reading this, I have a router/firewall/wireless access point at home that shares my broadband connection with every internet device in the house. Most router/firewall/wireless points hand out internal IP addresses and keep your computers safely away from outside access, but if you're running your own FTP or web server at home, you'll want to poke a hole in the firewall and map port 21 to your home computer running Serv-U.

Here's a screenshot of my D-Link wireless router's advanced settings page where I'm mapping port 21 to my home computer, which is known by the internal-only 192.168.1.1 IP address.

For regular FTP connections, map port 21 to your computer, for secure FTP connections, map port 990 to your computer on the network (or just map both).

Step 5: Test it out

The last thing to do is to test out your FTP server by firing up a FTP client and try connecting to your own server. Even though you are using the very computer you are testing, if you try to FTP using the outside address (your dynamic DNS name), it will be exactly like connecting from the outside.

Here's a partial screenshot of me using WS_FTP Pro. On the right pane, I'm connected to my own FTP server (I called it "home" and saved it to a profile) and I'm looking at my desktop files. (Click to enlarge.)

Optional Super Bonus Step 6: Keep your FTP secure like Fort Knox

The last step is optional, and depends on how you will access your home server's FTP. If you share a large corporate network or ever want to access your home server from an open wireless access point, by all means set Serv-U to allow secure (SSL) connections. This will encrypt your password and any files that are transmitted, keeping prying eyes from knowing how to access your home server or what you did during your connections.

It's pretty easy to do in Serv-U. Bring up your Serv-U Administrator application, click your home server's domain name under the Domains area. On the right pane, there is a setting marked Security and change the pull-down to Allow SSL/TLS and regular sessions (see below) or for even more security set it to Allow only SSL/TLS sessions. Then hit Apply to save this setting.

When you connect to it the first time, you might get a warning about a bogus certificate provided by Serv-U. Just set your FTP program to always trust it and you won't see this warning again.

That's it. Now you'll never forget a file at home because anything on your home computer will be accessible from anywhere else on earth.

No comments:

Post a Comment