VIRTUAL.FTP.SUPPORT
上传用户:zibowangxu
上传日期:2007-01-04
资源大小:331k
文件大小:28k
源码类别:

Ftp客户端

开发平台:

Unix_Linux

  1.  
  2.   Copyright (c) 1999 WU-FTPD Development Group.  
  3.   All rights reserved.
  4.   
  5.   Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994
  6.     The Regents of the University of California.
  7.   Portions Copyright (c) 1993, 1994 Washington University in Saint Louis.
  8.   Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc.
  9.   Portions Copyright (c) 1989 Massachusetts Institute of Technology.
  10.   Portions Copyright (c) 1998 Sendmail, Inc.
  11.   Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P.  Allman.
  12.   Portions Copyright (c) 1997 by Stan Barber.
  13.   Portions Copyright (c) 1997 by Kent Landfield.
  14.   Portions Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997
  15.     Free Software Foundation, Inc.  
  16.  
  17.   Use and distribution of this software and its source code are governed 
  18.   by the terms and conditions of the WU-FTPD Software License ("LICENSE").
  19.  
  20.   If you did not receive a copy of the license, it may be obtained online
  21.   at http://www.wu-ftpd.org/license.html.
  22.  
  23.   $Id: VIRTUAL.FTP.SUPPORT,v 1.2 1999/09/26 12:48:18 wuftpd Exp $
  24.  
  25.                                    [----]
  26.             Method for Supporting Virtual FTP Servers in WU-FTPD
  27.                                    [----]
  28.                               Table of Contents
  29.        1. Introduction
  30.        2. What is virtual FTP server support ?
  31.        3. Setup Overview
  32.        4. Configuring IP Address Aliases
  33.           4.1. Configuring IP Aliases on Sun Solaris 2.5
  34.           4.2. Configuring IP Aliases on SGI
  35.           4.3. Configuring IP Aliases on FreeBSD
  36.           4.4. Configuring IP Aliases on AIX
  37.           4.5. After system configuration
  38.           4.6. Testing interfaces
  39.        5. Building the software
  40.        6. Setting up the directory structure for virtual server support
  41.        7. Configuring to support Virtual FTP Server Support
  42.           7.1. Background
  43.           7.1.1. Limited Virtual Hosting Support:
  44.           7.1.2. Complete Virtual Hosting Support:
  45.           7.2. Create an ftpservers file:
  46.           7.3. Virtual ftpaccess files:
  47.           7.4. Master ftpaccess file Modifications:
  48.           7.5. Adding other virtual domain files
  49.        8. Setting up other support files
  50.        9. Supporting virtual logging
  51.       10. Shutting down your virtual FTP servers
  52.       11. Restarting your shutdown virtual FTP servers
  53.       12. Testing Your New Shiny Virtual Server Setup
  54.                                    [----]
  55. 1. Introduction
  56. ---------------
  57.      So you want to setup more than one FTP server on the same
  58.      machine....
  59.      To make it work you will need to use the virtual server support in
  60.      wu-ftpd. What follows are instructions for building the software
  61.      and configuring it to use virtual servers. 
  62.                                    [----]
  63. 2. What is virtual FTP server support ?
  64. ---------------------------------------
  65.      If you wish to manage an ftp server for two separate domains on
  66.      the same machine then you need to be able to support virtual FTP
  67.      servers. Basically, this allows an administrator to configure
  68.      their system so a user ftping to ftp.domain1.com gets one ftp
  69.      banner and one ftp directory and a user ftping to ftp.domain2.com
  70.      gets another banner and directory even though they are on the same
  71.      machine and use the same ports.
  72.      Virtual ftp servers make supporting multiple domains a lot less
  73.      costly and are easier to maintain than multiple ftp servers on
  74.      multiple machines.
  75.                                    [----]
  76. 3. Setup Overview
  77. -----------------
  78.      In order to set up a virtual ftp server environment you need to
  79.      understand what it is you're about to do. What follows is a brief
  80.      overview of the process ahead.
  81.         * You will be configuring your machine to respond to multiple
  82.           IP addresses. This is done via IP Address Aliases described
  83.           below. First, you need to acquire the IP addresses you'll
  84.           need. Once you have an IP address for each virtual server you
  85.           wish to setup, you are ready to proceed.
  86.         * Once you can see both addresses from the network, you will
  87.           need to build and install the wu-ftpd software to support
  88.           virtual servers.
  89.         * Next you need to setup up the ftp directory structure for
  90.           each virtual server you wish to support. You will need to
  91.           customize the banner and message files in each of the virtual
  92.           server areas.
  93.         * With the directories in place you are ready to configure the
  94.           configuration files and specify the virtual server specific
  95.           information.
  96.         * In order to be able to separate out who is logging in to what
  97.           virtual server, you'll need to configure the system logging.
  98.           This allows you to maintain separate logfiles depicting the
  99.           activity of each virtual server.
  100.         * And finally, you need to test your configuration. Once that
  101.           is accomplished you can feel pleased with yourself and begin
  102.           populating the individual ftp directories with data as
  103.           appropriate.
  104.      Additionally, you need to know how to shutdown and restart access
  105.      to your real, anonymous and virtual servers in the event you need
  106.      to.
  107.                                    [----]
  108. 4. Configuring IP Address Aliases
  109. ---------------------------------
  110.      You have to be able to setup IP address aliases in order for the
  111.      virtual server support in wu-ftpd to work. Linux and BSDI,
  112.      FreeBSD, SGI, Solaris 2.5*, AIX and others support this. What
  113.      follows are "general" instructions on how to configure IP address
  114.      aliases for the specified systems. Please check your system's
  115.      'ifconfig' documentation for specific instructions.
  116.      In order to make the changes to the required system files you will
  117.      first need to login as root.
  118.      4.1. Configuring IP Aliases on Sun Solaris 2.5:
  119.      -----------------------------------------------
  120.        1. Assure/place the system's normal hostname/IP address in the
  121.           file /etc/hostname.le0.
  122.        2. Insert the following in the system initialization file
  123.           /etc/init.d/rootuser just after the if/fi test for
  124.           interface_names.
  125.           #
  126.           # configure virtual host interfaces quietly.
  127.           #
  128.           /sbin/ifconfig le0:1 inet XXX.XXX.XXX.XXX netmask + broadcast
  129.           + -trailers up 2>&1 > /dev/null
  130.           Replace XXX.XXX.XXX.XXX with the IP address that you wish to
  131.           alias.
  132.      4.2. Configuring IP Aliases on SGI:
  133.      -----------------------------------
  134.        1. Edit /etc/hosts to include IP address and the name of the
  135.           virtual server
  136.        2. Edit /etc/config/ipaliases.options using comments in that
  137.           file as a template:
  138.           ec0 XXX.XXX.XXX.xxx netmask 0xffffff00 broadcast
  139.           XXX.XXX.XXX.255
  140.                or
  141.           ec0 foobar netmask 0xffffff00 broadcast XXX.XXX.XXX.255
  142.        3. /etc/chkconfig -f ipaliases on
  143.      Replace XXX.XXX.XXX.xxx with the IP address that you wish to
  144.      alias.
  145.      Replace XXX.XXX.XXX.255 with the network's broadcast address.
  146.      4.3. Configuring IP Aliases on FreeBSD:
  147.      ---------------------------------------
  148.        1. If you are using a recent version of FreeBSD (3.x or 4.x):
  149.           Edit /etc/rc.conf and put something like the following in.
  150.           ifconfig_ed1_alias0="inet XXX.XXX.XXX.XXX netmask 0xffffffff"
  151.           (You might have to change the device name from ed1)
  152.        2. If you are using an old version of FreeBSD (1.x or 2.x):
  153.   Edit /etc/netstart and put something like the following in.
  154.           ifconfig de0 alias XXX.XXX.XXX.XXX netmask 0xffffffff
  155.           (or use ed0 or some other netmask if appropriate)
  156.      4.4. Configuring IP Aliases on AIX:
  157.      -----------------------------------
  158.      In the way AIX is shipped, there is no direct support for IP
  159.      aliases in the ODM. This does not mean that AIX does not support
  160.      IP aliases, it means that IP alias info is stored in an ASCII file
  161.      rather than in the ODM.
  162.        1. Edit the proper /etc/rc* file.
  163.           If you are currently using an ODM TCP/IP configuration, edit
  164.           the file /etc/rc.net.
  165.           If you are using the traditional "BSD-style bootup method",
  166.           edit the file /etc/rc.bsdnet instead.
  167.        2. Add a line such as the following example.
  168.           /usr/sbin/ifconfig tr0 inet xx.xx.xx.xx netmask yy.yy.yy.yy
  169.           alias 1>/dev/null 2>&1
  170.           Be sure to set the interface to the correct type if you are
  171.           not using token ring (tr0) as the example shows.
  172.      Refer to the ifconfig man pages. For more info on TCP/IP
  173.      configuration and tuning, review the "no" command.
  174.      4.5. After system configuration:
  175.      --------------------------------
  176.           In order to test your new configuration it is wise to
  177.           reboot your system. This assures that your system is
  178.           properly configured in the event of an non-planned
  179.           system halt/reboot. A problem here is that the system is
  180.           probably a production server for someone else... It is
  181.           recommended that you add virtual www/ftp servers to your
  182.           system at a scheduled maintenance time. Also, if you are
  183.           adding more than one virtual server, add them all and
  184.           simply reboot a single time. If you cannot reboot then
  185.           execute the appropriate ifconfig (or chkconfig) command
  186.           and test the reboot when you can.
  187.           Also, if not immediately rebooting, it's not a bad idea
  188.           to
  189.                arp -s XXX.XXX.XXX.XXX x:x:xx:xx:xx:xx pub
  190.           where XXX.XXX.XXX.XXX is the IP Address and where
  191.           x:x:xx:xx:xx:xx is the Ethernet/whatever hardware
  192.           physical address.
  193.      4.6. Testing interfaces:
  194.      ------------------------
  195.           You need to assure you can see the interfaces using
  196.           netstat and then try to ping the interface to assure it
  197.           is responding. If so, your system is now ready. Now it's
  198.           time to setup the FTPD server software and virtual
  199.           server directories.
  200.                                    [----]
  201. 5. Building the software
  202. ------------------------
  203.      1. In order to compile in virtual hosting support it is necessary 
  204.         to assure "VIRTUAL" is defined.  This is normally set in the
  205.         src/config.h file that is created when you run 'build'. You
  206.         should find the line
  207.         #define VIRTUAL
  208.         If it is not there, you will need to add it to your copy of config.h.
  209.    
  210.      2. Check pathnames.h. 
  211.    
  212.          Make sure you know where you want to put things on the system.
  213.          If you change the install paths, check and change the top level 
  214.          makefile as well.
  215.    
  216.      3. "build system-type".
  217.    
  218.      4. "make install".
  219.    
  220.          At this point do a "make install" in the wu-ftpd top-level source 
  221.          directory and things will be installed.  
  222.    
  223.                                    [----]
  224. 6. Setting up the directory structure for virtual server support
  225. ----------------------------------------------------------------
  226.      You will need to make sure the proper files/directories are in-place. 
  227.      Here is my structure. (Note: I put everything in a single directory 
  228.      structure for testing convenience. Actually I do that when I'm not 
  229.      testing as well...)
  230.     From my pathnames.h
  231.     
  232.     /*
  233.     ** Master Copies - Possibly overridden by VIRTUAL Hosting Configuation
  234.     */
  235.     
  236.     #define _PATH_FTPACCESS  "/etc/ftpd/ftpaccess"
  237.     #define _PATH_CVT        "/etc/ftpd/ftpconversions"
  238.     #define _PATH_FTPUSERS   "/etc/ftpd/ftpusers"
  239.     #define _PATH_PRIVATE    "/etc/ftpd/ftpgroups"
  240.     #define _PATH_FTPSERVERS "/etc/ftpd/ftpservers"
  241.     #define _PATH_FTPHOSTS   "/etc/ftpd/ftphosts"
  242.     
  243.     /* site-wide */
  244.     #define _PATH_PIDNAMES   "/etc/ftpd/ftp.pids-%s"
  245.     
  246.     LS Listing:
  247.     
  248.     rkive-19:43-kent ls -lR /etc/ftpd
  249.     /etc/ftpd:
  250.     total 36
  251.     drwxrwsr-x   2 root     sys          512 Jun 26 19:22 bin
  252.     drwxrwsr-x   4 root     sys          512 Jun 26 15:48 config
  253.     -rw-r--r--   1 root     sys         4096 Jun 26 19:23 ftp.pids-local
  254.     -rw-r--r--   1 root     sys         4096 Jun 26 19:33 ftp.pids-remote
  255.     -rw-------   1 root     sys         2046 Jun 26 14:55 ftpaccess
  256.     -rw-------   1 root     sys          873 Jun 26 14:55 ftpconversions
  257.     -rw-------   1 root     sys           37 Jun 26 14:55 ftpgroups
  258.     -rw-------   1 root     sys          277 Jun 26 14:55 ftphosts
  259.     -rw-------   1 root     sys          429 Jun 26 16:03 ftpservers
  260.     -rw-------   1 root     sys          151 Jun 26 14:55 ftpusers
  261.     drwxrwsr-x   6 root     sys          512 Jun 26 14:56 man
  262.     
  263.     /etc/ftpd/bin:
  264.     total 1848
  265.     -rwxr-xr-x   1 bin      bin        28312 Jun 26 19:22 ftpcount
  266.     -rwxr-xr-x   1 bin      bin        37512 Jun 26 19:22 ftprestart
  267.     -rwxr-xr-x   1 bin      bin        47264 Jun 26 19:22 ftpshut
  268.     -rwxr-xr-x   1 bin      bin        28312 Jun 26 19:22 ftpwho
  269.     -rwxr-xr-x   1 bin      bin       385568 Jun 26 19:22 in.ftpd
  270.     
  271.     /etc/ftpd/config:
  272.     total 12
  273.     drwxrwsr-x   2 root     sys          512 Jun 26 16:04 some.domain
  274.     drwxrwsr-x   2 root     sys          512 Jun 26 16:06 some.other.domain
  275.     drwxrwsr-x   2 root     sys          512 Jun 26 15:01 landfield.com
  276.     
  277.     /etc/ftpd/config/some.domain:
  278.     total 6
  279.     -rw-------   1 root     sys         1891 Jun 26 16:03 ftpaccess
  280.     -rw-------   1 root     sys          146 Jun 26 16:05 ftpusers
  281.     
  282.     /etc/ftpd/config/some.other.domain:
  283.     total 6
  284.     -rw-------   1 root     sys         1891 Jun 26 16:03 ftpaccess
  285.     -rw-------   1 root     sys          146 Jun 26 16:05 ftpusers
  286.     
  287.     /etc/ftpd/config/landfield.com:
  288.     total 4
  289.     -rw-------   1 root     sys         2046 Jun 26 15:01 ftpaccess
  290.     
  291.     /etc/ftpd/man:
  292.     total 8
  293.     drwxrwsr-x   2 root     sys          512 Jun 26 19:22 man1
  294.     drwxrwsr-x   2 root     sys          512 Jun 26 19:22 man1m
  295.     drwxrwsr-x   2 root     sys          512 Jun 26 19:22 man5
  296.     drwxrwsr-x   2 root     sys          512 Jun 26 14:56 man8
  297.     
  298.     /etc/ftpd/man/man1:
  299.     total 4
  300.     -r--r--r--   1 bin      bin          374 Jun 26 19:22 ftpcount.1
  301.     -r--r--r--   1 bin      bin          450 Jun 26 19:22 ftpwho.1
  302.     
  303.     /etc/ftpd/man/man1m:
  304.     total 28
  305.     -r--r--r--   1 bin      bin         2177 Jun 26 19:22 ftpshut.1m
  306.     -r--r--r--   1 bin      bin         805  Jun 26 19:22 ftprestart.1m
  307.     -r--r--r--   1 bin      bin        10813 Jun 26 19:22 in.ftpd.1m
  308.      
  309.     /etc/ftpd/man/man5:
  310.     total 40
  311.     -r--r--r--   1 bin      bin        15341 Jun 26 19:22 ftpaccess.5
  312.     -r--r--r--   1 bin      bin         1004 Jun 26 19:22 ftpconversions.5
  313.     -r--r--r--   1 bin      bin          683 Jun 26 19:22 ftphosts.5
  314.     -r--r--r--   1 bin      bin         2531 Jun 26 19:22 xferlog.5
  315.                                    [----]
  316. 7. Configuring to support Virtual FTP Server Support
  317. ----------------------------------------------------
  318.    --------------
  319.    7.1 Background
  320.    --------------
  321.     This version provides two different means for supporting virtual hosting.
  322.     You can choose to use the limited virtual hosting support or you can
  323.     use complete virtual support by having completely different ftpaccess 
  324.     files. 
  325.     In the limited support version, virtual servers are only partially 
  326.     supported.  This implementation of virtual servers only supports 
  327.     setting
  328.  
  329.         - the root ftp directory, 
  330.         - the log file,
  331.         - the banner,
  332.         - the hostname, and
  333.         - the email address to contact.
  334.  
  335.     All other directives in the ftpaccess file have to be shared globally 
  336.     across all virtual servers.  Below is the original message that
  337.     described how to setup limited virtual support.
  338.     ---------------------------------------
  339.     7.1.1. Limited Virtual Hosting Support:
  340.     ---------------------------------------
  341.     Date: Fri, 26 May 1995 21:33:23 -0400 (EDT)
  342.     From: Brian Kramer <bjkramer@pluto.njcc.com>
  343.     To: wu-ftpd@wugate.wustl.edu
  344.     Subject: Virtual FTP Servers
  345.     [Modifications to provide for discrete xferlogs for each server provided by
  346.     Marc G. Fournier <scrappy@ki.net> -- sob.]
  347.  
  348.     I'm attaching a patch for wu-ftpd 2.4 to allow virtual ftp servers to be 
  349.     setup.  Basically so a user ftping to ftp1.domain.com gets one ftp banner 
  350.     and one ftp directory and a user ftping to ftp2.domain.com gets another 
  351.     banner and directory even though they are on the same machine and port.
  352.     I was the person who originally asked how to do it, and got enough answers 
  353.     to write a patch that would allow it.  You have to be able to setup alias 
  354.     IP addresses in order for this to work.  I know linux and bsdi support this.
  355.     I do not warrant this code at all.  Use it AT YOUR OWN RISK.  If it causes 
  356.     your computer to blow up, TOUGH! 
  357.     Here's the steps.
  358.  
  359.     Compile the software with -DVIRTUAL added to the CFLAGS in the Makefile
  360.     Add lines similar to the following for each virtual server to ftpaccess:
  361.     # Virtual Server at 10.10.10.10
  362.     virtual 10.10.10.10 root    /var/ftp/virtual/ftp-serv 
  363.     virtual 10.10.10.10 banner  /var/ftp/virtual/ftp-serv/banner.msg
  364.     virtual 10.10.10.10 logfile /var/log/ftp/virtual/ftp-serv/xferlog
  365.     
  366.     The first arg is the ip address of the virtual server.
  367.     The second arg is either "root", "banner" or "logfile" (without the quotes)
  368.     for that virtual server.
  369.     The third arg is the file system location for the item specified in the 
  370.     second arg.
  371.     
  372.     Note: all the other message files, etc, and permissions and other settings
  373.     in the ftpaccess file apply to all virtual servers.
  374.     ----------------------------------------
  375.     7.1.2. Complete Virtual Hosting Support:
  376.     ----------------------------------------
  377.  
  378.     Now you can use the previous method or you can create a separate ftpaccess
  379.     to provide support for all ftpaccess directives.  The ftpaccess, ftpusers, 
  380.     ftpgroups, ftphosts and ftpconversions files can all be specified on a 
  381.     per-domain basis.  You now have the ability to override the Master WU-FTPD 
  382.     config files with a local copy specific to that domain. If you do not wish 
  383.     to place a copy of one or all files listed above in the virtual host 
  384.     directory for that specific host then the master copy is used. 
  385.  
  386.     Supported on a virtual host basis:
  387.     ----------------------------------
  388.     _PATH_FTPACCESS  
  389.     _PATH_FTPUSERS   
  390.     _PATH_PRIVATE    
  391.     _PATH_FTPHOSTS   
  392.     _PATH_CVT        
  393.      
  394.     Set in a virtual site's ftpaccess file or master ftpaccess file
  395.     ---------------------------------------------------------------
  396.     _PATH_XFERLOG  
  397.      
  398.     Supported on a site-wide basis:
  399.     -------------------------------
  400.     _PATH_FTPSERVERS
  401.     _PATH_EXECPATH
  402.     _PATH_PIDNAMES
  403.     _PATH_UTMP 
  404.     _PATH_WTMP
  405.     _PATH_LASTLOG
  406.     _PATH_BSHELL 
  407.     _PATH_DEVNULL
  408.     
  409.    ------------------------------
  410.    7.2 Create an ftpservers file:
  411.    ------------------------------
  412.    If you wish to take advanage of the extended virtual support it is 
  413.    necessary to create an ftpservers file.  A real simple sample is 
  414.    shown below.
  415.    #
  416.    # ftpservers file
  417.    #
  418.    # Format:
  419.    #   IP Address     Path to directory holding configuration 
  420.    #   or hostname    files for this virtual domain
  421.    #
  422.    # ftpaccess file for the landfield.com domain
  423.    #
  424.    landfield.com      /etc/ftpd/config/landfield.com
  425.    #
  426.    # ftpaccess file for the some.domain 
  427.    #
  428.    some.domain       /etc/ftpd/config/some.domain
  429.    #
  430.    # ftpaccess file for the some.other.domain 
  431.    #
  432.    208.196.145.140 /etc/ftpd/some.other.domain
  433.    #
  434.    Make sure to create the directories you have listed. 
  435.    ----------------------------
  436.    7.3 Virtual ftpaccess files:
  437.    ----------------------------
  438.    For each virtual domain that you want to support, you have the option
  439.    to create a ftpaccess file specific for that domain. This will override 
  440.    completely what you have in the Master ftpaccess file.  This file must 
  441.    contain all directives. If you do not create an ftpaccess file for a 
  442.    specific domain, the domain will use the Master ftpaccess file settings. 
  443.    The only additions to the ftpaccess file that you need to make over a
  444.    non-virtual version is the "root" and "logfile" directives.  These act
  445.    to assure the proper ftpd root directory is used for each of the supported
  446.    virtual domains.  The logfile directive is used to specify where you want
  447.    the transfer logs recorded for that specific virtual domain.  A sample is
  448.    specfied below.
  449.         root     /ftp
  450.         logfile  /var/log/xferlog
  451.    -----------------------------------------
  452.    7.4. Master ftpaccess file Modifications:
  453.    -----------------------------------------
  454.      If you do not want to setup a completely different ftpaccess file
  455.      for a virtual domain, you can specify five separate things for the 
  456.      virtual server you want to setup in the master ftpaccess file.
  457.        1. root     - This it the path to the ftp directory that you
  458.                      previously setup for this virtual server.
  459.        2. banner   - This it the path to banner you wish displayed when a
  460.                      user connects to the virtual server.
  461.        3. logfile  - This is the path to the logfile that is setup
  462.                      specifically for this virtual server.
  463.        4. hostname - This is the hostname of the virtual server.
  464.                      specifically for this virtual server.
  465.        5. email    - This is the email address to direct comments to
  466.                      specifically for this virtual server.
  467.      The format of a virtual server entry is
  468.           virtual <address> <root | banner | logfile> <path>
  469.      <address> is the IP address of the virtual server. The second
  470.      argument specifies the <path> is either the path to the root of
  471.      the filesystem for this virtual server, the banner presented to
  472.      the user when connecting to this virtual server, or the logfile
  473.      where transfers are recorded for this virtual server. If the
  474.      logfile is not specified the default logfile will be used.
  475.      For example, add lines similar to the following for each virtual
  476.      server you are trying to set up.
  477.           # Virtual Server at 10.10.10.10
  478.           virtual 10.10.10.10 root     /var/ftp/virtual/ftp-serv
  479.           virtual 10.10.10.10 banner   /var/ftp/virtual/ftp-serv/banner.msg
  480.           virtual 10.10.10.10 logfile  /var/log/ftp/virtual/ftp-serv/xferlog
  481.           virtual 10.10.10.10 hostname froggy 
  482.           virtual 10.10.10.10 email    ftp-admin@froggy.some.domain
  483.      Done this way, all other message files and permissions as well as any 
  484.      other settings in the Master ftpaccess file apply to all listed virtual 
  485.      servers.
  486.    ---------------------------------------
  487.    7.5. Adding other virtual domain files:
  488.    ---------------------------------------
  489.     With this release you have the ability to create other configuration
  490.     files on a per-virtual-domain basis.  Currently, the files you put into 
  491.     the virtual domain directory you have listed in the ftpservers file 
  492.     MUST be named:
  493.     ftpaccess - virtual domain's access file
  494.     ftpusers  - restrict the accounts that can use the web server,
  495.     ftpgroups - SITE GROUP and SITE GPASS support,
  496.     ftphosts  - allow or deny usernames access to that virtual server,
  497.     ftpconversions - customize conversions available in the virtual domain.
  498.     NOTE!!!: If you misspell any of them or name them something else, the 
  499.              server WILL NOT find them and the master copy of them will be
  500.              used instead.
  501.                                    [----]
  502. 8. Setting up other support files
  503. ---------------------------------
  504.      You will need to make sure that any file referenced after the
  505.      chroot(~ftp) are in the virtual server directories. Those files
  506.      are
  507.         * all messages (deny, welcome, etc.)
  508.         * _PATH_EXECPATH files
  509.      You will need to customize the banner, welcome and other message
  510.      files for each virtual server directory.
  511.                                    [----]
  512. 9. Supporting virtual logging
  513. -----------------------------
  514.      There are two different types of logging, the standard syslog
  515.      logging and transfer logging. In order to separate transfer (or
  516.      xferlog) logging it is necessary to use the "logfile" entry as 
  517.      described above.
  518.      To enable logging via syslog, follow the standard syslog
  519.      configuration instructions found in your system's documentation.
  520.      Make sure you are using the same syslog 'facility' as is compiled
  521.      into your wu-ftpd software. By default, 'daemon' is used. If you
  522.      would like to change this, change the 'FACILITY' define in
  523.      config.h.
  524.      If you have syslog logging enabled you will see entries such as
  525.      Mar 3 15:26:30 rkive ftpd[27207]: VirtualFTP Connect to: xxx.xxx.xxx.xxx
  526.      This enables you to determine which virtual server the log records
  527.      pertain to.
  528.                                    [----]
  529. 10. Shutting down your virtual FTP servers
  530. -------------------------------------------
  531.      In order to support the proper shutting down of your server, you
  532.      need to assure the shutdown message file is created in both the
  533.      real user and anonymous user ftp areas. The location of the
  534.      shutdown message file is specified in the ftpaccess file
  535.      "shutdown" directive.
  536.      In previous versions of wu-ftpd it was recommended to create a 
  537.      link to where the shutdown message file would be in order for
  538.      shutdown to work properly for real and anonymous user. The problem
  539.      was the supplied utility, 'ftpshut', only created the shutdown
  540.      message file in the actual location as indicated in the shutdown
  541.      directive and not in the anonymous FTP area. It also did not have
  542.      support for virtual server shutdown. And when you were ready to
  543.      restart your servers, you need to remove the shutdown message
  544.      file manually.
  545.      In order to overcome this, wu-ftpd has been modified to support
  546.      shutting down the server for real users and guest/anonymous 
  547.      accounts and also for virtual FTP servers. It creates shutdown
  548.      message files in all appropriate locations.
  549.                                    [----]
  550. 11. Restarting your shutdown virtual FTP servers
  551. -------------------------------------------------
  552.      When you are ready to restart your ftp servers you will need to
  553.      remove the shutdown message files. ftprestart is used when you 
  554.      are ready to re-enable your FTP server. It does the opposite of 
  555.      ftpshut and removes shutdown message files that were created by 
  556.      ftpshut. It will remove the system-wide shutdown message file as 
  557.      well as the shutdown message files in the anonymous ftp areas and 
  558.      any virtual ftp server areas.
  559.      NOTE: At present it is either all-or-nothing when it comes to
  560.            ftpshut and ftprestart. You cannot shutdown just a single
  561.            server.  If you need to do that you will have to do it
  562.            manually at present.
  563.                                    [----]
  564. 12. Testing Your New Shiny Virtual Server Setup
  565. -----------------------------------------------
  566.      A good test strategy is to create an entire runtime directory dedicated 
  567.      to wu-ftpd such as /usr/local/wu-ftpd-test/ or /etc/ftpd/ and make 
  568.      sure all the files and executables go there.  In that manner you will be 
  569.      able to do a hot swap if you ever want to/need to (shouldn't be necessary
  570.      but please CYA... ;))
  571.      You will need to test each and every new virtual server you
  572.      install. Make sure that you have the appropriate permissions and
  573.      are getting the right results. Only you will know what is right
  574.      for you.
  575.      Also, if you have existing FTP server areas on your system, test
  576.      and make sure that something you did to the ftpaccess file did not
  577.      break what use to work.
  578.      If you want to see what set of configuration files are being used you
  579.      can set '-DVIRTUAL_DEBUG' in the makefile.  Build and install the new
  580.      version and see what prints out.  Please don't run with this debug
  581.      option enabled as it give much to much information out to those that
  582.      have no 'need to know'.
  583.                                    [----]