VSFTPD
Setting up a simple FTP server on a Linux box:
Installation:
I chose not to use the VSFTPD package provided with Redhat 4 ES, just to get a better understanding of the compilation/installation process. For installation instructions, I consulted the website: www.vsftpdrocks.org. Although the links to installation files are dead, his write-up gives a concise and functional description of the installation and configuration process.
After downloading the tarball, I extracted with “tar zxvf (filename)”. That extracted via gzip, with verbose comments. After that I simply used the “make” and “make install” commands to get everything on the system. Although the instructions said that I would need to create the users “nobody” and “ftp” – allowing for an anonymous ftp server; both of these users were automatically created. In addition, the instructions said I might have to manually place files using these commands:
cp
vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8
As with the users, all of the files automatically appeared in the correct places. That was basically it for the installation part. I then had to use whether I wanted to run the server manually, or via an init.d or xinetd entry. I chose to run it manually, just to make modifying/restarting it easier. If I were installing in a functional environment, I would obviously have the service start at boot. In order to start the service manually, one just enters “listen=YES” in the /etc/vsftpd.conf file.
Configuration:
Configuration for VSFTPD is fairly easy if one is just using the most basic options. For my purposes, these options were adequate, except that I didn’t want an anonymous server. In order to do this I had to edit the vsftpd.conf file again. I wanted to be able to use my local account to login to the server and upload files. Therefore I needed to make sure the following items were in vsftpd.conf.
anonymous_enable=NO
local_enable=YES
write_enable=YES (let me upload as well as download)
Below is an example from my vsftpd.conf file:

In addition there are two optional statements that can be made in the vsftpd.conf file to either allow or deny access to a selected set of users.
Userlist_enable=no/yes
Userlist_deny=no/yes
These two options allow one to specify these users in the “vsftpd.ftpusers” and “vsftpd.user_list” files. I had a few problems when trying to use these files, and still wonder why they chose to use two separate files instead of one (if the above commands apply to both files, but not either or, why isn’t there a list for denied users and a separate list for allowed users?). Either way, I was able to get everything configured to allow “bdoss” and “root” to login to my server. Although this is definitely not the most secure option, it allowed me to at least get the server up and running (generally don’t want to be sending local usernames and passwords in plain-text).
Below is an example from my vsftpd.user_list file:

Success!
So I got the server up and running without too many problems. The most confusing part to me was getting the user lists operating correctly. I could use some more time to further configure the server, in order to lock it down, only allowing read/write to myself, and then allowing anonymous downloads (if needed).
Below are two pictures proving my success at logging
in (the first one from the server itself, and the other from an XP lab
machine):

