bbFTP
  
Home
Overview
License
Contributors
 
Releases
Download
ChangeLog
 
Documentation
3.2.1
3.2.0
3.1.0
3.0.2
3.0.1
3.0.0
2.2.2
2.2.1
2.2.0
2.1.0
2.0.2
 
Help
BBFTP-L List
    Register
    Archives
FAQ
Error messages
 
Email Us
bbftp@in2p3.fr
  

On-line documentation for release 2.1.0

Main changes
Installing the client
Installing the server
Implementing a private authentication module
Man bbftp
Man bbftpd
Warning

 

Main changes of this release

  • Port to Linux Power PC
  • Add the possibility to include a private authentication scheme
  • Add the -l option on daemon in order to define the log level. By default the daemon will not log anything.
  • Add the -m option on client to have special output for speed rate calculation
  • Correct bug on control file reading. If the last line ends without any carriage return it was not executed.
  • Modify Build, configure and Makefiles in order to have only one Makefile for all platforms.
  • Routines reorganisation in client and daemon
  • Add a deconnection message in order for the daemon to stop cleanly

This release has been tested for :

  • SunOS 5.6
  • SunOS 5.7
  • IRIX64 6.5
  • OSF1 4.0 alpha
  • Linux intel
  • Linux power pc
  • AIX 4.3
  • HP-UX 10.20

 

Installation of the client

  • Adjusting parameters

    • Several parameters may be modified in order to change the clients behaviour. All these parameters are in the includes files client.h and config.h located in the includes directory.
    • Parameter NBTRYMAX contained in includes/client.h
      • Set it to the number of default retry you want the client to do in case of failure.

  • Setting the install directory

    • Go into the bbftpc directory
    • Edit the Install.set file and change INSTALLBINDIR value

  • Installing the client

    • Go into the bbftpc directory
    • Run Build install

Installation of the server

  • Adjusting parameters

    • Several parameters may be modified in order to change the server behaviour. All these parameters are in the include file config.h located in the includes directory.
    • Parameter AFS
      • Uncomment the line #define AFS 1 if the authentication mechanism of the computer where the server will run is AFS.
      • If your computer is using the the PAM authentication do not uncomment this line and let the system do its work.

  • Setting the install directory

    • Go into the bbftpd directory
    • Edit the Install.set file and change INSTALLBINDIR value

  • Installing the server

    • Go into the bbftpd directory
    • Run Build install

  • Post installation

    • If you have choosen to run the server throught inetd

      • Add the line
        bbftp    CONTROLPORT/tcp
        in your /etc/services file where CONTROLPORT is the number you have set in the includes/config.h (usually 5021)
      • Add the line
        bbftp stream tcp nowait root INSTALLBINDIR/bbftpd bbftpd
        in the /etc/inetd.conf file where INSTALLBINDIR is the name of the installation directory (set in the Install.set file)

    • If your system authentication is PAM

      • If you have a /etc/pam.conf file
        • Verify the lines begining by other auth and other account allow login. If it is not the case add special lines for bbftp. The lines to be added will look like:
          bbftp auth required /lib/security/pam_pwdb.so shadow nullok
          bbftp account required /lib/security/pam_pwdb.so

      • If you have a /etc/pam.d directory
        • Verify the file other and allow login. If it is not the case create a new file called bbftp which will contain two lines looking like:
          auth required /lib/security/pam_pwdb.so shadow nullok
          account required /lib/security/pam_pwdb.so

Implementing a private authentication module

Starting with release 2.1.0 it is possible to implement a private authentication mechanism without modifying all routines. For that you need to uncomment the line #define PRIVATE_AUTH 1 in the include file config.h located in the include directory. By doing that you will forbid the usage of the normal bbftp authentication mechanisms (ssh and normal mode).

Then you need to implement two routines on the client side and one on the server side.

  • On the client side

    The routines are located in the file bbftp_private_user.c in the directory bbftpc. This file contain two externals variables (char *). The first one (username) contains the username given on the command line (-u option), the second one (privatestr) the string given on the command line with the -P option (or NULL if not used).

    • int bbftp_private_getargs(char *logmessage)

      This routine is called at the begining of the login sequence (just before setting the process in background if needed) in order to allow the programmer to set variables or to request input from the user.

      The return code and the variables are explained in the file.

      After having called this routine the main program will exchange RSA keys with the server in order to crypt all messages sent during the authentication procedure. Then the hand will be given to the next routine :

    • int bbftp_private_auth(char *logmessage)

      This routine will allow the user exchange data between the client and the server. For that it will use two routines bbftp_private_recv and bbftp_private_send whose descriptions are given in the bbftp_private_user.c file.

      When all this data exchange has ended, the routine will return to main code with a return code of 0 in case of success or with a return code of -1 and the string logmessage filled in case of error.

  • On the server side

    The routine is located in the file bbftpd_private_user.c in the directory bbftpd. This file contain one external variable (currentusername[MAXLEN]). It has to be filled by the bbftpd_private_auth routine.

    • int bbftpd_private_auth(char *logmessage)

      As on the client side, this routine will exchange data using bbftpd_private_send and bbftpd_private_recv routines (whose decriptions are given in the bbftpd_private_user.c file), do all checks needed and return 0 in case of success or -1 and the string logmessage filled in case of error.

Warning

Since bbftp include hooks to cryptography, the following information from OpenSSL applies to bbftp as well.

PLEASE REMEMBER THAT EXPORT/IMPORT AND/OR USE OF STRONG CRYPTOGRAPHY SOFTWARE, PROVIDING CRYPTOGRAPHY HOOKS OR EVEN JUST COMMUNICATING TECHNICAL DETAILS ABOUT CRYPTOGRAPHY SOFTWARE IS ILLEGAL IN SOME PARTS OF THE WORLD. SO, WHEN YOU IMPORT THIS PACKAGE TO YOUR COUNTRY, RE-DISTRIBUTE IT FROM THERE OR EVEN JUST EMAIL TECHNICAL SUGGESTIONS OR EVEN SOURCE PATCHES TO THE AUTHOR OR OTHER PEOPLE YOU ARE STRONGLY ADVISED TO PAY CLOSE ATTENTION TO ANY EXPORT/IMPORT AND/OR USE LAWS WHICH APPLY TO YOU. THE AUTHORS ARE NOT LIABLE FOR ANY VIOLATIONS YOU MAKE HERE. SO BE CAREFUL, IT IS YOUR RESPONSIBILITY.

Last modified on Thu, 07 Feb 2013 16:27:23 +0000
This page was generated in Python using ht2html