Professional File Transfer with proFTPD - Getting Virtual (Page 9 of 11 )
proFTPD also comes with built-in support for so-called "virtual FTP", which comes in handy if you want to provide FTP service on multiple interfaces, IP addresses or ports on the same physical machine. proFTPD's <VirtualHost>...</VirtualHost> block allows you to specify different configuration options for each IP address, or to have the FTP server service connections on different ports on the same machine.
Typically, you can use most of the same directives inside a <VirtualHost>...</VirtualHost> block that you would use outside it (although there are a few restrictions). This allows you to configure and customize each virtual host separately - as the following example illustrates:
<VirtualHost 192.168.0.77>
# set server parameters
ServerName "Olympus"
ServerAdmin "admin@some.other.localnet.com"
Port 22
# set default umask
Umask 022
# set the user and group for the server process
User nobody
Group nobody
# jail users to their home areas
DefaultRoot ~
# set root directory for anonymous users to /home/ftp
<Anonymous /home/hosts/olympus/ftp>
# set the user and group for the server process
User ftp
Group ftp
# alias "anonymous" login to "ftp"
UserAlias anonymous ftp
# restrict "anonymous" users from writing data
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
</VirtualHost>
The code block above tells proFTPD to listen for connections on port 22 of
the interface identified by IP address 192.168.0.77. Anonymous FTP is enabled for this virtual host, though users are not permitted to upload files, and regular system users are automatically jailed to their home areas.
Next: Passing Messages >>
More Administration Articles
More By Vikram Vaswani, (c) Melonfire