Table of Contents
- Introduction
- Installation
- Handling Challenger
- Virtual Servers

  | · Introduction · Creating · HTTP · HTTPS · FTP · Tetris · Logs · Messages

- Configuration Examples
- Modules
- Filesystems
- RXML Tags
- Graphics
- Proxy
- Databases
- Miscellaneous Modules
- Security Considerations
- Scripting
- Frontpage
- Upgrading
- Third Party Extensions
- Portability
- Reporting Bugs
- Appendix

FTP
FTP is an older protocol for accessing information resources that was the primary standard before HTTP. It provides a structure and interface that resembles a filesystem more closely than HTTP does. This makes it better for uploading information to a web site, since it is always possible to get directory listings through FTP. FTP is still often used for downloading programs.

FTP cannot be run encrypted. It is however possible to use the port forwarding features of SSH to run FTP encrypted, if SSH is installed both in the client and server. FTP does however use two network connections, it is quite easy to make the command channel encrypted while it is hard to ensure that the data channel is encrypted. Since all passwords are sent through the command channel it is often enough to encrypt it.

Creating an FTP Port
You create a FTP port by chosing the FTP protocol and a port number, the default is 21. After that, the following server variables can be used to control the behavior of the FTP service:

`Allow anonymous FTP`
  Whether to allow anonymous ftp users or not. If allowed it will be possible to log on as anonymous or ftp with any password, or get information with no user authenticating at all.

`Allow FTP guest users`
  If allowed the FTP protocol module will allow accesses by users who were not authenticated correctly, according to the current user database. The main reason for this option is that the whole website might not use the same authentication system. Users may, for instance, use .htaccess files with their own user and password database to control the access to their own pages.

  When using this option users will not know right away if they typed in their password correctly. Any password will do, since the actual authentication will not take place until they try to access restricted pages. This is more in line with how HTTP works than how FTP usually works.

`Allow named FTP`
  If set, the FTP protocol module will allow authenticated users to log on.

`FTP user session limit`
  Limits the number of simultaneous FTP sessions a user can have. By default 0, which means an unlimited number of sessions.

`Shell database`
  If set, the FTP protocol module will use the shell database together with the user database to determine whether the user should have FTP access. This way, Challenger becomes more compatible with the standard Unix FTP deamons. Entering an empty value will disable the check.

Using FTP
For Challenger there is no difference between an FTP and an HTTP request. When used for uploading, an FTP upload will be equivalent to doing an HTTP PUT. Whether uploading will be allowed or not is up to the filesystem module used. The normal Filesystem module contains an option `Handle the PUT method` which controls if it will be possible to upload files or not.