||Section: User Commands (1)
- BBFTP protocol server
bbftpd is a server that supports the BBFTP protocol. This protocol has been
develloped in order to speed up transfer by using multiple TCP streams between
client and server, and also to take advantage of the
As one of the major problems of the FTP protocol was the unencrypted transmission
of the username and password, BBFTP uses two methods for authentication.
The first one is to generate at each new connection an RSA key pair, to send
the public key to the client who will encrypt the username and password using
this public key, and then to decrypt them with the private key. As these keys
are 1024 bits long and generated at each new connection, it will be quite
difficult to steal a password. The second connection method is based on ssh; instead
of making a connection to a running daemon, the client will remotly start the
daemon with ssh (with a command like ssh -l user remotehost "bbftpd -s").
BBFTP protocol works in the following way :
After the authentication procedure has ended there is what is called a control
connection between the client and the server. On that connection all control commands
When a data transfer occurs (get or put command sent by the client) the
client will get all TCP ports needed by the transfer (one per stream) and send
those port numbers to the server on the control connection. The server will
then connect to those ports (using a defined port number if the
is not used) and use them to transfer data.
The behaviour of the server is controlled by commands sent by the client (see bbftp(1)).
The server can be used in different ways :
Through inetd (and tcpwrapper if needed). In this case the line in the inetd.conf file will
look like :
bbftp stream tcp nowait root bbftpd [-f] [-m MaxStreamNumber]
As a standalone server. In this case the starting procedure has to contain the following line:
bbftpd -b [-f] [-m MaxStreamNumber] [-w PortNumber]
Started via ssh. In this case the remote command started by the client will look like:
bbftpd -s [-f] [-m MaxStreamNumber] [-w PortNumber]
Use this option to start bbftpd in background. In this case the server will bind and listen
on a control port which can be changed with the
The standard behaviour of the server is to bind the server-side port number on data
connection to controlport minus one. This is useful if the server is behind a firewall.
If you want the server to take the first free port number use this option.
- -m MaxStreamNumber
For each stream the server forks a child. If you want to limit or increase the number of streams
use this option.
Use this option when the server is started remotely via an ssh connection.
Use this option to write the version of the software and default values to standard output.
- -w PortNumber
Use this option to change the control port number.
was developed by Gilles Farrache (firstname.lastname@example.org) from the
IN2P3 Computing Center
, Villeurbanne (FRANCE). All the ssh related stuff is based
on ideas and software written by Tim Adye (T.J.Adye @RL.AC.UK) from
Rutherford Appleton Laboratory
This software uses the cryptolib 0.9.5 of the OpenSSL project
and zlib 1.1.3 written by Jean-Loup Gally and Mark Adler.
- SEE ALSO
This document was created by man2html,
using the manual pages.
Time: 09:39:07 GMT, April 04, 2001