Virtual hosting allows the FTP server to support multiple domains on the same machine. Each virtual host requires a separate logical interface and IP address.
The FTP server supports two types of virtual hosting: limited and complete. With limited virtual hosting, the same configuration files are used for all virtual hosts. With complete virtual hosting, separate configuration files can be used for each virtual host.
By default, real and guest users are not allowed to log in to virtual hosts. You can set the following ftpaccess directives to override the default.
To allow access to specific users: virtual address allow username To deny access to anonymous users: virtual address private username |
See ftpaccess(4) for further information.
Limited virtual hosting provides partial support for virtual FTP servers. You can enable support for limited virtual hosting by specifying the virtual root directory. If required, you can also set the following parameters for the virtual host in the ftpaccess file:
banner
logfile
hostname
Become superuser.
Add the following entries to the ftpaccess file.
virtual address root|banner|logfile path virtual address hostname|email string |
virtual |
Keyword that is used to enable virtual server capabilities |
address |
IP address of the virtual server |
root |
The root directory of the virtual server |
banner |
Banner file that is displayed when a connection is made to the virtual server |
logfile |
Record of file transfers that are made to and from the virtual server |
path |
Variable that is used to specify the location of directories and files on the virtual server |
|
Email address that is used in message files and in the HELP command |
hostname |
Name of the host that is shown in the greeting message or status command |
string |
Variable that is used to specify email or hostname parameters |
While it is possible to use hostname as the address of the virtual server, you are strongly encouraged to use the IPv4 address instead. DNS must be available when the FTP connection is received in order for hostname to be matched. For an IPv6 host, use the host name rather than the IPv6 address.
virtual 10.1.2.3 root /var/ftp/virtual/ftp-serv virtual 10.1.2.3 banner /var/ftp/virtual/ftp-serv/banner.msg virtual 10.1.2.3 logfile /var/log/ftp/virtual/ftp-serv/xferlog |
The preceding example sets the location of the root directory, banner, and logfile on a virtual FTP server.
The ftpaddhost(1M) script with the -l option is provided to configure limited virtual hosts.
In the following example, ftpaddhost is run with -l -b -x options to configure limited virtual hosting with a test banner and the logfile /var/ftp/virtual/10.1.2.3/xferlog under a virtual root /var/ftp/virtual/10.1.2.3.
ftpaddhost -l -b -x /var/ftp/virtual/10.1.2.3/xferlog \ /var/ftp/virtual/10.1.2.3 |
Complete virtual hosting allows separate configuration files for each virtual domain. To enable complete support for virtual hosting on the FTP server, you can create or modify the following FTP configuration files for specific domains:
ftpaccess
ftpusers
ftpgroups
ftphosts
ftpconversions
For further information, see ftpaccess(4), ftpusers(4), ftpgroups(4), ftphosts(4), and ftpconversions(4).
If separate versions of the configuration files are unavailable, master versions of the files in the /etc/ftpd directory are used.
Become superuser.
Add the following entry to the /etc/ftpd/ftpservers file.
address /config-file-dir |
address |
IP address of the virtual server |
config-file-dir |
Directory that contains the configuration files that are customized for the virtual host |
While it is possible to use hostname as the address of the virtual server, you are strongly encouraged to use the IPv4 address instead. DNS must be available when the FTP connection is received in order for hostname to be matched. For an IPv6 host, use the host name rather than the IPv6 address.
To create a customized version of an FTP server configuration file for the virtual host, copy the master version of the file from /etc/ftpd to the /config-file-dir directory.
For further information, see ftpservers(4).
# # FTP Server virtual hosting configuration file # 10.1.2.3 /net/inet/virtual/somedomain/ 10.1.2.4 /net/inet/virtual/anotherdomain/ |
The preceding example specifies the IP addresses for two different domains on the virtual server.
The ftpaddhost(1M) script with the -c option is provided to configure complete virtual hosts.
In the following example, ftpaddhost is run with -l -b -x options to configure limited virtual hosting with a test banner and the logfile /var/ftp/virtual/10.1.2.3/xferlog under a virtual root /var/ftp/virtual/10.1.2.3.
ftpaddhost -l -b -x /var/ftp/virtual/10.1.2.3/xferlog \ /var/ftp/virtual/10.1.2.3 |