Running an FTP Site From Home R R







Intro | Req't | AddUser | TestServer | IP | LogOn | AddGroup | Access | CDROM | Feedback | Home

Introduction

If you've ever tried to send a huge file by email, you know such files are always rejected. Other means exist by which you could exchange files with your friends across the globe. One of them is by ICQ. However, file transfer through icq is very inefficient. Half the time the transfer simply stalls for a long time, until you decide you're tired of staring at it, and discontinue the transfer.

Through out this tutorial, I have expanded on some terms and concepts. Such extra explanations are in red. So if you're an expert in the use of computers, you could safely skip over anything in red.

To transfer files by icq, the files have to travel through icq's machines before they are sent to the final destination, as illustrated below.

 -------------        -----------         ---------------
 | Your      |        | ICQ     |         | Final       |
 | Machine   |------> | Servers |-------> | Destination |
 -------------        -----------         ---------------
So because the files have to pass through icq servers, the file transfer may ground to a halt when the server is heavily loaded.

But how about bypassing any intermediate servers, and just sending the files directly to the recipient, as shown below...

 -------------         ----------------
 | Your      |         | Final        |
 | Machine   | ------> | Destination  |
 -------------         ----------------
Doing so will make your file transfers run quicker and much more efficiently.

The purpose of this tutorial is to set up direct file transfers, and examine the numerous advantages that such set up has.

You will need to run an ftp server, create accounts for people, and let them log onto your computer and upload, or download files. You can specify what part of your computer you want each person to have access to. So for example, while one person may only be able to access a single folder, you may give someone else access to more folders.


Caution!

By running an ftp server on your computer, you may be making yourself vulnerable to attacks from hackers.

This can be prevented by making sure you give each of your users the proper restrictions. In addition, you need to run security softwares such as firewalls. We will talk about that later.

At the end of this tutorial, I will tell you how to test your computer to find out if you're susceptible to attacks from intruders.


Let's get started, shall we...

Return to top

What do you need...?

  1. Go to www.download.com and search for "War FTP Daemon". This program has numerous features, and it's free. Download the latest version and save it somewhere where you can find it later, such as your desktop. After downloading, go to where it is saved and double click on it. The installation wizard will appear. Install it like you would any other program under windows 95/NT.
  2. Let it be installed in the default directory, which is C:\Program Files\War-ftpd. Unless of course, you have a reason to want it installed elsewhere, in which case you need to change to a directory you want.
  3. Click on Next and another window gives you three options
    • Normal
    • Minimal
    • Custom
    I would go with normal install. Minimal install will take up less disk space, but you also will not get the full functionality of the server. Custom on the other hand let's you select the options you want from a list.
  4. Click on next four times
  5. If this is a new install for you, ie. you've never had this program installed on your computer, click next.
  6. Enter a name for your ftp server. This will be the name your users see when they log on. I called mine Richard's FTP Service.
  7. Click on next, and the new window allows you to run the server as a service. A service when enabled allows the server to start itself up each time you bootup your computer. If you choose not to run it as a service, then you would need to start up the the server manually each time.
  8. Click next. Accept the default "WARSVR"
  9. Click next. Accept the default, unless you know what you're doing, then you can change to a different folder. You won't get a chance to change this option later, without reinstalling the server afresh!
  10. Click next.
  11. Read the options on the next window and check all that apply to you. Remember that if you allow anonymous access, anybody can log onto your computer without an account. Don't worry too much if you're not sure what options to choose here. You will get a chance to change it later. Click next.
  12. Enter a password for admin. This is a very important password! It allows full access to your server. So choose a password that cannot be easily guessed, and don't lose it! If you forget or lose this password, you will no longer be able to log onto your server and modify user information. I cannot stress this enough, choose a difficult password, and don't lose it!
    An example of a good password is "EeW19Dfpx3AkkY0"
    An example of a bad password is "shelly". We're not saying Shelly is a bad girl or a bad name, just not good enough as our password...:)
  13. Enter your email address in the next window. If your server has a problem, your users can contact you using that email.
  14. Click next. Accept port 21 as default. Port 21 is used by ftp servers. So for instance if you give out your server IP address, you don't need to include the port number if it's on port 21.

    Let's say your IP address is 16.214.1.23 and you're on port 21, your users can connect using that exact ip address. But if you're on a different port, say 2121, then the port must be included when connecting. In that case it would be 16.214.1.23:2121.

    If you don't understand this stuff yet, don't worry, just accept port 21 and click next.

  15. Click "Prev" to change any settings you've already made, or "Next" to install your server.
  16. Installation should now begin.
    All the configuration processes are fast except "Registering the server as a system service". So if installation stalls for a long time, don't stop it, thinking there's something wrong.

    When it's done click "Next". Then "Finish You should now see this icon in your system tray

    wait for image to load

    Note: this icon is not what controls the server. It only starts up the server admin window. If you right click on this yellow icon and choose "hide tray icon", the icon disappears from your tray, but that does not shutdown the server, which will still be running in the background. I think this is a neat feature in this program.

    Let's say you're not the only person who uses the machine on which the server is installed, you can simply hide the tray icon, and your server will still be running in the background, and nobody would know. If you need the admin window anytime, just go to C:\Program Files\War-ftpd and double click on WarTrayIcon.

    Double click on the yellow icon
    Enter your admin password
    click OK
    
    If everything went well, you should see

    wait for image to load

    Return to top

    How to Create Users

    First we are going to create a test user. This will be done under WarDeamonManager, that is the image above.

    1. Click on the button shown with a red arrow on the image below
      wait for image to load

      The image below appears
      wait for image to load

    2. Under "User type", click on the arrow and select "Regular User"
    3. Under "Access", double click once on the "FTP Login Access" icon.

      The icon should now change to a green and it should say "Yes" under "Allow", as shown below

      wait for image to load

    4. Now look in the left window and click on the plus sign behind "System". You should get this
      wait for image to load
    5. Right click on the "User" folder, and select "Add User".
    6. On the next window enter a name for the user. Since this is a test user, let's call it "test". Click OK.
    7. A window appears asking for a password. Use "test" as the password. Click on OK.
    8. Click on "Close"
    So we've created our first user called "test", with password "test".

    Return to top

    How to Test Your Server

    The next step is to test if your server is running properly.

    • Start up your ftp client. If you want to learn about ftp clients, see my tutorial on this page.
    • Use "localhost" as the "Host Name/Address"
    • Under "Host Type" use "Automatic detect"
    • Under "User ID" enter "test"
    • Under "Password" enter "test"
    • Click on OK
    Your client should connect to the server and give you the following list of folders... bin, pub, upload, usr. At the same time, the yellow icon in your system tray should now be green

    Congratulations, you've installed your first ftp server and you're almost ready to start allowing external connections. If you have friends who have ftp client installed, contact them and let them try and login to your new server. But before you do, read the next section below.

    Return to top

    How to determine your current IP Address

    Before anybody from the outside can connect to your ftp server, they must know your current IP Address.

    Your IP Address is what is used to find your computer on the internet.

    Think for a moment about your home address. It is unique, and nobody in the world has the same address. The same is true of your email address, nobody in the world has it but you. And when a message is sent to your home address or to your email address, you're the only one who should receive it. IP Address is the same thing. Out of the millions of computers connected to the internet, your IP Address is your unique id by which your computer could be found.

    There are two types of IP addresses: Dynamic and Static. Dynamic ip changes often, while static remains the same. I won't go into the details of these. But briefly, if you're using a dial-up to connect to the internet, you probably have a dynamic ip. So each time you make a new connection to your ISP, you're assigned a new IP Address.
    If on the other hand you're on a permanent connection to the internet, you probably have a static ip address.

    So to determine your ip,

    • Click on Start
    • Click on Run
    • Type winipcfg
    • Click OK
    A window should pop up. Write down what you see under IP Address.

    Repeat the above step to get your new ip address, each time you log onto the internet.

    Return to top

    How to Let your friends log on

    Now tell your friends to try to log onto your server using the instructions below
    • Run ftp client. If you want to learn about ftp clients, see my tutorial on this page.
    • Under "Host Name/Address", tell them to type in your current IP Address.
    • Under "Host Type" use "Automatic detect"
    • Under "User ID" enter "test"
    • Under "Password" enter "test"
    • Click on OK
    If they are able to connect successfully, your yellow tray icon should turn green, and you should see details of each connection in your WarDeamonManager.

    Now it's time to start creating real users for your server, and give proper permissions to restrict access, and such other options as how long a user can remain logged on to your server, and how many simultaneous connections is allowed from each user, etc.

    We will look at this topic below.

    We already looked at how to create new users when we created a test user. That is the process to follow in creating new users. Keep in mind that you cannot have two users with the same name, no matter how many users you have.

    Return to top

    How to Create Groups

    Let's say you have a group of users with common interest. Instead of creating separate accounts for individual users in that group, you could simply create a Group and a single account, and let all members in that group use the same login and password. Group can also have members with different names and passwords. The general idea of a group is to keep things neatly organized on your server, instead of having just a single huge group, with thousands of users. Creating new groups is the same as creating new folders on your computer. You create new folders to keep your files well organized. Another advantage of creating groups is that you can specify different file access permissions for different groups.

    To create a new group,

    1. Start up WarDaemonManager by double clicking on the icon in your system tray
    2. Enter your password and login.
    3. Just as we did before when we created a new user, click on the UserManager icon.
    4. The UserManager window pops up.
    5. Look in the left window and right click on System.
    6. Select Add Group
    7. Type in a name for the group, and click on OK
    8. Now click on the plus sign behind the System icon, and you should see the new group you just created.

    How to Add Users to a new Group

    The process of adding users to your new group is the same as that of adding users to any group. We looked at how to create users already, so refer to that. Click here to go there.

    Return to top

    How to specify File Access

    Now onto something more interesting... how to restrict users to particular folders. When users logs onto your computer, they will only be able to access files and folders on your hard drive that you give them permission for.

    You can specify permissions for a whole group, or you can do it on a per user basis within a group.

    We will still work with our test user that we created earlier.

    1. Open WarDaemonManager and enter password to log in
    2. Click on UserManager icon
    3. In the new window, look in the left window and click on the plus sign behind "System"
    4. That opens up all the groups
    5. Click on the plus sign behind "User" icon
    6. Now you can see our user called "test". Click on it once. Now look in the right window and click on the plus sign behind "Security"
    7. Click on "File Access", and that should give a list of folders at the top. Keep this window open.

    How to drag and drop folders

    The easiest way to create new folders for your groups or users is to drag and drop. If you've used Microsoft Windows for some time, you are already familiar with the idea of drag and drop. What it entails basically is to open up two windows, the first window is the source and the second window is the destination. Then you click and hold your left mouse button on the folder you want to drag. Then move your cursor into your destination window. Before you let go of the left mouse button, make sure you see a plus sign next to your cursor. If not, press and hold the Ctrl key, then let go of the left mouse button.
    1. From the above step, open up windows explorer.
    2. Browse to where the folder you want to add is located.
    3. Drag that folder from windows explorer and drop it into the User Manager window, as shown in the picture below
      Wait for image to load

    How to give permissions

    So in my case I have dragged and dropped a folder called "My Music". So now our test user will be able to see that folder when he logs on. But what do I want him to be able to do when he gets into the "My Music" folder? Do I want him to be able to download from, or upload into it? Do I want him to be able to create and delete folders? In my case, I want our test user to be able to:
    • create New folders, but not be able to delete any folders;
    • list the contents of folders;
    • download and upload, but not be able to delete or execute files.

    So let's do that together...

    1. Still under "File Access", right click on C:\My Music
    2. Click on Edit, and the window below appears

      wait for image to load

    3. Under "File System" choose "File"
    4. Under "Path" leave it as C:\My Music
    5. Put a check mark in "Freeze the mount point"
    6. Under "Mount Point" you can either leave it as /My Music, or you can type in a different title. Whatever you type in here is what your users will see when they log on. So let's say instead of My Music, I want them to see the folder as "Free Music Downloads", all I need to do is type in "/Free Music Downloads". Don't forget to put a forward slash in front of it. So even though this folder is called "My Music" on my hard drive, my users will see it as Free Music Downloads.
    7. Click on OK
    8. Now just below the list of directories you will see this

      Wait for image to load

    9. We want our user to be able to create new folders, so under "Directories", we put a check mark in "Create"
    10. We want him to be able to list files in a folder, so we put another check mark in "List(DIR)"
    11. We want him to be able to upload and download files, so under "Files", we put check marks in both "Read" and "Write"
    12. Finally under "General" put check marks in both "Recursive" and "Free". We'll talk about what those mean later.
    13. Click Close

    What we just went through is very important. You want to get it right each time. Make sure you know what you want your users to be able to do on your computer when they log on. If for instance you inadvertantly allow a user to be able to delete folders from your computer, you may find out one day that your favorite folder with all it's contents has been deleted by one of your users! This will never happen if you set the permissions right.

    Return to top

    How to Give Access to Your CDROM Drive

    As we saw above, the easiest way to add a folder to your ftp server is to drag and drop. However, if you want your users to have access to your cdrom drive, you cannot do it using drag and drop. Here's how to add cdrom drive(s).
    1. Open up UserManager, click on the group or user you want to give access to your cdrom drive
    2. Expand Security options, and click on File Access
    3. At the top right hand area, you will see a list of folders. Right click anywhere in that window.
    4. Click on "New", and this should appear

      Wait for image to load

    5. Under "File System", select "file"
    6. Under "Path", type in the letter of your cdrom drive as follows: "D:\", without the quotes of course. If your cdrom drive has a different letter thatn D, use the correct letter.
    7. Put a check mark in "Freeze the mount point".
    8. Finally under "Mount point" type in a name that you would like your users to see when they log on. This name could be anything you choose. Just make sure the name is preceeded by a forward slash. So let's say I want to call mine "Files on CDROM", I'll type "/Files on CDROM".
    9. Click on OK

    Remember that each time you create a new folder, you have to set the proper permissions as we discussed earlier.


    With what we've covered so far, you should be able to run your own ftp server successfully and safely. What follows are advanced options, which you may choose to explore or not, but nontheless important.

    Exploring Security Options

    When a user logs on,
    • how long do they have to be idle before being disconnected from the server
    • how many simultaneous sessions is a user allowed
    • how many simultaneous sessions from one machine
    • how long should a single session last
    • how fast should he be able to transfer data
    Let's look at how to configure the server for these options. Remember that you can define options for a single user at a time, or for a whole group. Whatever options you define for a group applies to every user within that group. You can then go into the group and still define more options for each user. When you do that, note that if you impose stricter rules on a group, you cannot then define less stript rules for individual users and expect it to work. You'll understand what I'm saying later.
    • Open WarDaemonManager
    • Open the User Manager
    • Click on the group you're interested in, or open up the group and click on a user you're interested in.
    • In the right bottom window, click on Security. The image below is the result.

      wait for image to load

      Under Idle time, either use the slider to define the number of minutes the user should be idle, or type it in the window to the left of the slider. Click on the arrow in the window to the right of the slider and select Use this value. Note that idle time is when the user logs on to the server without taking any further action. If the user is uploading or downloading, this is not considered idle time. The idle time makes sense, because while a user is logged on and not doing anything, he's taking up the space another user could be using.

      Under Max simultaneous sessions, enter how many different connections the user can make at once. The values you choose to go with here of course will depend on the speed of your Internet connection. If you have a slow connection, it makes sense to restrict each user to a single connection. Of course, on the reverse side, if you have a smoking fast connection, you can go with No limit.

      Under Max simultaneous sessions from one machine, enter how many connections the user can make from a single machine.

      Under CPS per session, enter the rate of data transfer you want to allow. Whatever value you go with will be the combined upload and download speeds. Again, if your Internet connection is not very fast, you may want to curtail the values you enter here.

      From our discussion so far, you must already know there's a problem with changing IP addresses. If you run your ftp server from home and you're on a dial-up connection, your ip address will change each time you connect to your isp. Each time your ip address changes, nobody can log onto your server until you've given them your latest ip address. But how do you accomplish the task of letting people know your current ip address, if it changes every time you connect to the web? Fortunately, there's a simple solution to this, and I've written a tutorial on it.

      To be continued...


      Send me a feedback on this tutorial, so I can improve on it. Use the form below. Thanks.
         
       
      Your Email If you want a reply
      eg. JohnDoe@yahoo.com            
      

      Comments or question

      Home
      Intro | Req't | AddUser | TestServer | IP | LogOn | AddGroup | Access | CDROM | Feedback