XRPi's inbuilt FTP sever allows remote sysops to upload,
download, list, rename and delete files, create and remove
directories etc., which is useful when XRPi is located
somewhere inaccessible, such as an outbuilding or remote hilltop.
For example, new configuration and program files may be
uploaded, and the system can then be restarted to perform a
remote upgrade.
Configuration
The transport mechanism for FTP is TCP/IP, therefore you must
have the appropriate IP routing configured if you wish to use
it via XRPi's IP stack. No configuration (other than some
form of TCP/IP network) is required for operation via Linux's
IP stack.
The TCP port used by the FTP server defaults to the standard,
i.e. 21. This may be changed for XRPi and/or Linux TCP/IP
stacks using the optional FTPPORT directive in XROUTER.CFG.
Access to the server may be controlled according to the
client's source IP address, by using appropriate entries in
ACCESS.SYS.
Operation
The FTP server uses standard FTP commands, with the exception
of the USER and PASS login sequence, which are tailored for
use on a radio channel.
In addition to the normal password prompt, the server also
presents the user with a matrix of 5 lines of 5 numbers, as shown below.
220 g8pzt.ampr.org FTP ready
user g8pzt
331- 13 4 16 6 3
331- 13 9 8 3 16
331- 5 7 3 2 15
331- 8 10 5 13 3
331- 15 14 3 11 4
331 Awaiting PASS
The
user may respond either with a string of characters, as with
secure sysop login, or with the full password in plain text.
The grid response would be used on a public RF channel, and
the plain text password on a secure RF channel or wired link.
The server was originally intended for manual operation via RF
links, but automated FTP clients may be used on secure links,
because the password matrix is ignored by all types of FTP
client so far tested. They simply respond with the plain text
password.
There are no automated FTP clients that respond to the
password grid with a secure response, so you cannot (safely)
use them via an unsecured RF link. However, if you leave the
client's password field empty, it will usually prompt you to
enter a password upon connection, at which point you can
respond to the grid challenge.
You are advised not to transfer a password file or any other
sensitive material via insecure RF links.
The directory format is "Windows_NT" because that is the
format which gives the best results with the widest range of
FTP clients.
There is comprehensive help available at the FTP command
prompt, provided you have placed the FTP help files in the
HELP/FTP directory.
The FTP server commands are described in detail in the sysop
command reference section.
The FTP server is only available to sysops and selected users. It is protected by a password grid, and is only accessible to those who have a password registered in the sysop password file, PASSWORD.SYS or the user password file USERPASS.SYS.
If the username is found in PASSWORD.SYS, the user is considered to be a sysop. Upon successful completion of the password challenge he gets full access to the directory tree that XRPi has permissions for. e.g. if XRPi is running as root, the sysop can access the whole system.
(Access to all files, and directories is unrestricted, because the FTP server is intended for remote system maintenance, not as a public file repository. The HTTP server may be used for that purpose instead).
If the username is found in USERPASS.SYS but NOT in PASSWORD.SYS, the user is NOT a sysop. He gets access only to a personal sub-directory within the FTP directory. The sub-directory name matches the username. The user is free to create directories within his own directory, but cannot climb out of it, or see anything outside it.