Copyright: BisonWare Internation 1995,1998
Citation: BisonWare Internation 1995,1998


What is FTP?

FTP stands for File Transfer Protocol.

FTP is one of the application protocols which make up the TCP/IP family.

FTP defines the structured use of one or more TCP stream connections in order to allow a two computers to share and maintain files and directories across a Network connection.

There are usually two types of FTP software, Clients and Servers:

Most users already own at least one FTP client.  In windows 95 and NT, a DOS based client is installed along with the TCP/IP protocol.  Also your favourite WWW browser contains an FTP client.  (To use the ftp protocol just type ftp://<address> in the URL box)

With this software you now have the capability to provide FTP server capabilities on your PC.  By running this software on your TCP/IP enabled PC, any user on your LAN, WAN, intranet or internet can access your file system.


Welcome to the BisonWare FTP Server V3.5

Welcome to the BisonWare FTP Server V3.5!

Thank you for downloading this version of the BisonWare FTP server for Windows 95 and Windows NT.

We have made every effort to ensure that this product is extremely simple to use, yet retains the features and functionality to fulfill your requirements.

This version of the product is shareware.  However, to allow you to fully evaluate the software before registering, the product is fully featured, except for a limitation of two concurrent users.

This restriction is completely removed in the registered version.  How do I register?


What's new in Version 3.5

What's new in Version 3.5!

We've been listening to the comments of our customers.  Now Version 3.5 of the BisonWare FTP Server is packed full of new features, including:

•	Windows 95/NT system tray integration

•	Variable TCP port assignments

•	User groups

•	Directory level security definition

•	Ratio (BBS style) file transfers

•	User definable data translation tables

•	Improved logging

•	Faster installation

•	Faster loading

•	Smaller memory footprint

•	Upload/Download processing triggers

Just try it and see!


How do I register this software?

The quickest and easiest way to register this software is via CompuServe.  To register, logon and GO SWREG.  Follow the prompts and register serial number #14010.  Registration cost is $18.95.  We will forward the registered software to you via email as soon as we receive your order.

You can register by Credit Card by linking to WWW.SWREGNET.COM.  All major credit cards are accepted, registration cost is US$25.  Registration is fully secure using an SSL enabled browser. (Netscape & MSIE are ok)

You must register one copy for each PC that will be running this software.  Please email us for corporate pricing.  Source code is available for corporate customers, please email us to discuss pricing.

You can also register by post.  Postal registration cost is US$ 25 or UK pounds 16.

Payment is only accepted via the following methods:

UK cheque MADE PAYABLE TO NICK BARNES!

UK postal order MADE PAYABLE TO NICK BARNES!

EuroCheques MADE PAYABLE TO NICK BARNES!

US$ Money Orders MADE PAYABLE TO NICK BARNES!

Send your payments to:

Nick Barnes

BisonWare Software

3, Ashvale Road

Walesby

Newark

Notts.

NG22 9LY

United Kingdom

It’s usually a good idea to drop me an EMAIL on 100416.3553@compuserve.com to tell us that a postal order is coming.


What is TCP/IP?

TCP/IP is a protocol which was specifically designed to be able to operate on (and therefore link together) many different types of computer and operating systems.

In essence the Internet is simply an extremely large wide area network (WAN) which operates over the TCP/IP protocol.

In reality, TCP/IP refers to a whole family of protocols, the lowest level of this protocol family is IP (Internet Protocol).  IP defines the standard for the structure and transmission of data packets, which are passed over the network.

There are then two further protocols, TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) which control the structured transfer of IP packets.

User level protocols are then built on top of TCP and UDP.  These protocols have names that you should be familiar with, i.e. FTP, TFTP, Gopher, HTTP, Finger etc.

In summary, FTP is a protocol, which operates by using the TCP protocol, which in turn is constructed from the IP protocol.

Simple when you know how!


This drop-down list contains the names of all currently defined user groups.  To assign this user to a group, simply select the group name from this list.


This field contains the password that the user should supply to the server whilst logging on.

Note:  If the user belongs to a group that is set to allow any password then this field is ignored.


When this check box is set, this user is disabled and cannot logon to the server.


This field contains the fully qualified file name for this users log file.  If you do not want a log file, leave the field blank.


To append log data to an existing log file each time a user logs on, then check this box.


This drop-down list contains the names of all translation tables.  If you wish to apply data translation to files being stored onto the server by this user, select the required table name.


This drop-down list contains the names of all translation tables.  If you wish to apply data translation to files being retrieved from the server by this user, select the required table name.


This field shows the total number of bytes that have been uploaded by this user.  The field is used for ratio calculations.  You may change this field to any numeric value.


This field shows the total number of bytes that have been downloaded by this user.  The field is used for ratio calculations.  You may change this field to any numeric value.


This list box contains the names of all currently defined users.  To edit details, click on the entry for that user.


Press this button to add a new user to the user list.


Press this button to delete a user.

Note: You cannot delete the anonymous user.


This drop-down list contains the names of all currently defined translation tables.  To edit a translation table, simply select the table name from this list.


This grid shows the byte translations for this table.


Press this button to add a new translation table.


Press this button to delete the current translation table.


Uncheck this box to disable security on the server.  With security disabled, all users are treated as anonymous users regardless of the userid and password with which they log on.


This field contains the maximum number of users that may log on to the server at any time.


These checkboxes signify events that will be logged on the server.


This field shows the name of the server main log file.  Type in the fully qualified file name of the log file.

If you do not wish to keep a log file then leave this field blank.


Check this field to append log details to the log file each time the server is started.  Uncheck this box to create a new log file for each server session.


Installing the server

The server is basically self-installing, simply move the executable to a directory of your choice.  Run the application and all installation will occur automatically.

The server keeps all of its settings inside the Windows registry.  All entries are made first time through.

You may wish to create an Icon on your windows desktop for easier execution.  Otherwise just type BisonFTP at the command line to start the server.


General Security

To access the general security options, either click the general security icon on the toolbar, or select the general sub command from the security menu option.

In general security, two options are set:

Enable Security System

Uncheck this box to disable security on the server.  With security disabled, all users are treated as anonymous users regardless of the user id and password with which they log on.

Maximum Number of Connections

This value states the maximum number of users that can be connected to the server at any time.  In the shareware version this number is restricted to 2.  In the registered version, this number is increased to 10,000.

The more connections that you allow, the more strain your computer will be under.  Especially when multiple file transfers are occurring.


User Groups

User groups are used to pre-define the classes of users that will be allowed to sign on to this server.  Examples are:

Normal Users (pre-defined at installation)

Power Users

Guests

Administrators

All permissions are set at a group level.  You can then assign a user to a group in the User Security dialog box.  This method saves lots of time when setting-up and maintaining a large list of users with identical attributes.

The Group Name list shows all of the groups currently defined on the system.  To show the options for a particular group, simply select the group name from the list.  To add a new group, click the New button.  To delete an existing group, click on the group name and then click on the Delete button.

For each group, the following options are allowed:

Allow Any Password

Check this item to bypass password checking for users in this group.  The user will still be prompted to enter a password, however this will only be used for recording purposes.

Enforce e-mail address for password

Check this item to make sure that users in this group enter a valid format email address as a password.

E.g.	user@some.organization

This option has no meaning unless the 'Allow any Password' option has been checked.

Manual Authorization Required

Check this item to force manual authorization for logons.  This means that when the user has supplied a valid user id and password, a request dialog will be displayed asking the owner of the FTP server to allow or deny entry.

Do not use this option if you intend to leave the server unattended for any time.

Password Retries Allowed

This field shows the number of attempts that a user will be given before being disconnected from the server.

Disable on Retry Limit

When checked a user id will be disabled when the number of retries set in the 'Password Retries Allowed' field have been exceeded.

Disabled user ids need to be manually re-enabled before they can be used again.

Maximum Concurrent Users

This field shows the maximum number of users that can be logged on at any time within this group.  Any excess users will be refused entry.

Note that there is also a server limit.  The smaller value will be used.

Home Directory

This box defines the drive and directory from which this user will start their session.  Beware that most browsers (e.g. Internet Explorer and Netscape) will immediately switch to the drives root directory after successful login.

Home Directory is Root

Check this option to assign the root directory to the selected home directory.  I.e. the user will believe they are in the root directory, when they are actually in a subdirectory of your drive.  When this option is checked, it is impossible for a user to get to a higher level directory than the home directory.

Visible File Types

These options specify the file types visible to this user.

Uploads Per Session

This field shows the maximum number of file uploads that are allowed in a single FTP session.  A value of 0 means unlimited uploads are allowed.

Downloads Per Session

This field shows the maximum number of file uploads that are allowed in a single FTP session.  A value of 0 means unlimited uploads are allowed.

Maximum Upload Size

This field shows the maximum file size in Megabytes that a user may upload to the server.  Uploads which exceed this value are terminated when the limit is reached.

A value of 0 in this field means that no limit is applied.

Maximum Download Size

This field shows the maximum file size in Megabytes that a user may download from the server.  Permission to download will be refused for larger files.

A value of 0 in this field means that no limit is applied.

Download/Upload Ratio

The value in this field states how many bytes a user may download for each byte that they upload.

A value of 0 in this field means that no limit is applied.

Idle Timeout

This value states the number of minutes after which inactive connections will be dropped by the server.

Permissions

These options specify the access that a user will have to your file system.

You may set default access to all directories and then separate file access for any special directories.  One example of use will be to allow read access to all of your hard drive except for a single uploads directory.

Whenever you create a new user group, the '<default access>' entry is created automatically and cannot be deleted.  To change the default access permissions, use the check boxes to the right of the permissions list box.

To specify permissions for particular directories, add the directory path to the list box by selecting it in the directory navigation box and then adding it to the permissions list box by pressing the button with the '>' symbol.

To remove a directory from the permissions list box, select it and press the button with the '<' symbol.


User Security

User List

Use the user security options dialog to set up the individual users who can connect into your server.

The anonymous user is pre-defined when the software is installed and cannot be deleted.

The Defined Users list shows all of the users currently defined on the system.  To show the options for a particular user, simply click on the user name.  To add a new user, click the New button.  To delete an existing user, click on the user name and then click on the Delete button.

For each user, the following options are allowed:

User Group

This drop-down list contains the names of all currently defined user groups.  To assign this user to a group, simply select the group name from this list.

Password

Specify the password for the user in here.  Passwords are not case sensitive.

Disable User

Check this item to disable this user on the server.  This option is useful for temporarily suspending the user from the system.  When checked all log on attempts will be refused.

Log File

This specifies a log file into which a copy of the activity log for this user is stored.  If the name is left blank, then no log is kept.

If you check the append log file option, then the log file is extended for each connection, otherwise it is replaced with each connection.

Translation Tables

Use this feature to allow special translation of data between hosts.  E.g. Mainframe to PC file transfers.

Incoming

Specifies the data translation to be applied to all file data stored on the server.

Outgoing

Specifies the data translation to be applied to all file data retrieved from the server.

Transfer Counts

These fields show the number of kilobytes that have been transferred to and from the server by this user.  These values are used during calculation of ratios.  You may manually change either field to any value.


Logging Options

The server allows logging at both server and user level.

Use the logging options dialog to specify the type of events and actions to log.  The options are detailed below.  Logging options apply to both the server main log and the individual user logs.

Incoming Commands

The FTP protocol is based around a simple ASCII command response mechanism.  By checking the Incoming Commands logging option box, all incoming control commands are shown on the log.

Outgoing Responses

checking this option adds all FTP control responses to the log.

Control Connection Messages

The Bisonware FTP server acheives asynchronous operation using the microsoft socket extentions.  By checking this option, the details of control connection messages passed to the server by windows are displayed in the log.

Data Connection Messages

As per Control Connection Messages, except for data connections.

Informational Messages

If this option is checked then simple textual descriptions of server operations are added to the log.

File Puts

If this option is checked then details of files put to the server are logged.

File Gets

If this option is checked then details of file retrievals from the server are logged.

Directory Maintenance

If this option is checked then details of directory maintenance are logged.  I.e. directory creation, directory deletion.

Socket Closures

If this option is checked then all socket close operations are logged.

Log File

This item specifies the name of the server logging file.  If the filename is blank or invalid, then no logging occurs.

Append Log File

If this option is checked then the server log is appended each time it is opened, otherwise it is created empty each time.


Starting the server

When the server program starts, the FTP service is started automatically.  If the service fails to start (due to an external error) or the server has been stopped, then you can restart the service by clicking the Start Server toolbar button, or by selecting Start from the Server menu.


Stopping the Server

The FTP service can be stopped by clicking the Stop Server toolbar button, or by selecting Stop from the Server menu.

If any connections are active when you attempt to stop the service, then you will be warned before the service is stopped.

Terminating the FTP server program will also perform an orderly closedown of all connections before completing.


Connection Monitoring

When a user is logged on to the server.  A window appears in the server client area.  The window looks like this :

The main area shows the logged activity for this user.

The connection details area shows the IP address of the client, the server IP address (this can vary for multihomed hosts) and the number of minutes of idle time left before the user will be disconnected.

The transmission counts area shows the number of bytes received from the client and the number of bytes sent from the server.

Closing the window will disconnect the user from the server.  You will be prompted for confirmation before any users are disconnected.


Testing the Server

You can test the server simply from the same PC that is running it.  Perform one of the following tests :

Start your favourite web browser and connect to URL ftp://127.0.0.1

Go to a DOS prompt and type FTP 127.0.0.1

If all is going well then you will get a successful connection to the server.


Server Requirements

To run the server you need the following things :

Windows 95 or Windows NT

TCP/IP protocol installed

preferably attached to a network


Using Translation Tables

Translation tables allow you to translate bytes within a dataset from one character set to another.

To work with translation tables, select the Translation Tables option from the Tools menu.

To modify an existing table, select the name from the drop-down list.

To insert a new table, hit the new button.

To delete a table, hit the delete button.

To translate a single character, enter the hex code of the new character to the grid location of the source character.

When you have finished defining translation tables, click the OK button.

To use a translation tables for a particular user signon, go to the User security dialog, and select the incoming and outgoing translation tables to use.


Using Triggers

Triggers are provided to initiate processes on the server when a file transfer operation has been completed.

For example, after sending down a data file from a mainframe to the PC server, you can initiate a program to import the data into a relational database system.  Or when a remote host has retrieved a file then you can trigger a command to delete that file.

Triggers are setup using the Triggers dialog box on the Tools menu.

The following are descriptions of the dialog options:

Trigger Name

This drop down list box contains the names of all triggers that are currently defined.  To add a new trigger, press the new button.  To delete the currently selected trigger press the delete button.

Directory

This is the name of the directory that should be monitored for this trigger.  Enter a fully qualified drive and path name.

Wildcard

To restrict a trigger to certain file names or types, type the wildcard in this field.  The default value is *.*

Action

Select the action that this trigger should monitor.  You may choose two options:

File stored on server

File retrieved from server

Command

Type the full command that should be executed when the trigger conditions are met.

You can include the name of the subject file in the command line by using the %Filename symbolic parameter.

For example

C:\RDBMS\IMPORT.EXE %FILENAME

To perform MS DOS commands then you will need to type the following format of string:

C:\COMMAND.COM /C [command]

Disable Trigger

To disable a trigger without deleting it, check this box.


Using the Virtual File System

Using The Virtual File System (VFS)

The Virtual File System provides a powerful method of presenting a bespoke view of the files on your PC to remote clients.

You can use the Virtual File System to redirect all access for any directory to any other directory.

For example you can use point any access to directory C:\CDROM to F:\

The Virtual File System applies to all users of the FTP server.

The Virtual File System allows you to give access to multiple drives and directory locations in a controlled and safe way.

To access the virtual file system, Select ‘Virtual File System...’ from the Tools menu.

The Virtual File System dialog box is extremely simple to use:

Defined Equivalences

This list box shows the list of currently defined directory equivalences.  All entries are shown in the following format:

<Source dir> = <Destination dir>

Add/Replace Button

Use this button to add a new equivalence or replace a currently defined equivalence.  When clicked, the source and destination directories entered are added to the equivalence list.

Remove Button

Use this button to remove a previously defined equivalence.

Source Directory

Enter a source directory name from which access will be directed.  The source directory must exist on your file system.  Either type the name directly, or press the browse button to select one interactively.

Destination Directory

Enter a destination directory name to which access will be directed.  The source directory must exist on your file system. Either type the name directly, or press the browse button to select one interactively.

OK Button

Press this button to close the VFS dialog and save all changes.

Cancel Button

Press this button to close the VFS dialog and discard all changes made.