The FTP-Proxy White Paper: Installation

Next Previous Contents

## 2. Installation

The following discussion assumes that you have obtained the tarball distribution and want to compile and install the FTP-Proxy package from ground up. Let's assume you have received a file named `proxy-suite-x.y.tar.gz`, where 'x' is the major and 'y' is the minor version number.

1. Decide where to install and compile the source code. Say you want to install it in `/usr/src/proxy-suite-x.y`. Then do the following to unpack the source (assuming the tarball is available in the current directory when calling gunzip):

       cd /usr/src
       gunzip -c proxy-suite-x.y.tar.gz | tar xvf -

   If you do not have a copy of GZIP, look at the GNU archive or one of its numerous mirrors. It's free.

2. After unpacking the source you need to run the `configure` shell script which performs the customization for you operating system and local environment. This script is based upon the GNU AutoConf package. Change your current directory to be the root of the Proxy-Suite:

       cd proxy-suite-x.y

   The `configure` script understands a number of options which control the customization process. To see a complete list of all options simply run:

       ./configure --help

   The following options are most likely to be involved:

       --prefix=<directory>

   > This is the root directory for the installation. If none of the other directory related directives further down is also given, all files will be installed in subdirectories under this one. The default is `/usr/local/proxy-suite/`.

       --exec-prefix=<directory>

   > A second top level installation directory, this one is used as the basis for all executables. Defaults to the same as PREFIX.

       --mandir=<directory>

   > The FTP-Proxy comes with two manual pages: ftp-proxy(8) for the program and ftp-proxy.conf(5) for the configuration file format. These will be installed under the `man5` and `man8` subdirectories of the given one, or under `PREFIX/man` if not specified.

       --sbindir=<directory>

   > The next directory specifies the location where the `ftp-proxy` executable itself will be installed. The default is `EXEC-PREFIX/sbin` if this option does not request otherwise.

       --sysconfdir=<directory>

   > The last directory related option (others may be given, but have no effect) deals with the `proxy-suite/ftp-proxy.conf` configuration file. Again there is a default if the option is not provided, `PREFIX/etc`. Please note that the location of the config file can be selected at run time with the -f flag, but if the file is installed at the default location, this flag is redundant.

       --enable-debug

   > This option allows the generation of debugging output and is mainly included for evaluation (and development) purposes. It is recommended not to specify this option for deployment of the FTP-Proxy into production environments.

       --enable-warnings

   > If compiling with the GNU GCC compiler, this flag increases the warning level. This is useful to detect programming errors or incompatibilities with the target platform. Our recommendation is to enable it anyway.

       --enable-so-linger

   > It is strongly recommended to enable this option for all systems. Only if the target does have problems with SO_LINGER handling, it should be disabled.

       --with-regex[=PATH]

   > This option is mainly needed to provide the location of the POSIX 1002.3 regular expression library if it is not included in the standard C library. Regular expressions are used to scan the arguments of the various FTP commands received from clients. If your system does not include the required support, you can download the latest version from the GNU archive. Again, it's free. GNU RegEx is known to work with FTP-Proxy. If the option is not given, regular expression support is not installed at all and arguments will not be investigated any further.

       --with-libwrap[=PATH]

   > If running as a standalone background daemon, FTP-Proxy can be instructed to make use of the TCP Wrapper library. If this is compiled in and enabled in the configuration file, the `/etc/hosts.allow` and `/etc/hosts.deny` files will be consulted to decide if a client will be served.

       --with-libldap[=PATH]

   > If you want to supply the user specific configuration values (not the basic ones) via an LDAP directory, compile in LDAP support. The `configure` script can determine without further manual intervention whether to use the OpenLDAP, the University of Michigan or the Netscape version of the API. OpenLDAP is the preferred API.

       --with-crypt[=PATH]

   > This option enables support for crypted passwords in user authentication (curently ldap based only). See also the `LDAPAuthPWType` configuration file option.

3. After `configure` has completed successfully, it is now time to run `make` (GNU make). It will read the `Makefile` generated by `configure` in the previous step and perform the compilation process. The program should not display any warnings or errors.

4. When the executables have been generated, a final call to `make install` will copy the FTP-Proxy files into their appropriate places. Usually root privileges are required in order to install the files in their proper places.

5. Currently, you'll have to modify your system manually so that ftp-proxy is run at system bootup or from inetd (depending on which mode you choose in the configuration file or command line). We provide an sample run level script `rc.script` for (SuSE) Linux; see also description in `rc.script.txt`.

6. The last step is the configuration of the installed FTP-Proxy; see following Configuration section.

Next Previous Contents