系统管理指南:网络服务

虚拟主机托管

虚拟主机托管允许 FTP 服务器支持同一计算机上的多个域。每个虚拟主机需要单独的逻辑接口和 IP 地址。

FTP 服务器支持两种类型的虚拟主机托管:有限完整。使用有限虚拟主机托管时,将对所有虚拟主机使用相同的配置文件。使用完整虚拟主机托管时,将对每个虚拟主机使用单独的配置文件。


注 –

缺省情况下,不允许实际用户和临时用户登录到虚拟主机。您可以设置以下 ftpaccess 指令来覆盖缺省值。


To allow access to specific users:

virtual address allow username

To deny access to anonymous users:

virtual address private username

有关详细信息,请参见 ftpaccess(4)

Procedure如何启用有限虚拟主机托管

有限虚拟主机托管提供对虚拟 FTP 服务器的部分支持。可以通过指定虚拟根目录来启用对有限虚拟主机托管的支持。如果需要,也可以在 ftpaccess 文件中设置虚拟主机的以下参数:

ftpaccess 文件中的所有指令在所有虚拟服务器中全局共享。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 将以下项添加到 ftpaccess 文件中。


    virtual address root|banner|logfile path
    
    virtual address hostname|email string
    
    virtual

    用于启用虚拟服务器功能的关键字

    address

    虚拟服务器的 IP 地址

    root

    虚拟服务器的根目录

    banner

    连接到虚拟服务器时将显示的标题文件

    logfile

    虚拟服务器上的文件传送记录

    path

    用于指定虚拟服务器上的目录和文件位置的变量

    email

    消息文件和 HELP 命令中使用的电子邮件地址

    hostname

    问候消息或状态命令中显示的主机的名称

    string

    用于指定 emailhostname 参数的变量


    注 –

    虽然可以使用 hostname 作为虚拟服务器的 address,但强烈建议您使用 IPv4 地址。为了匹配 hostname,接收 FTP 连接时 DNS 必须可用。对于 IPv6 主机,请使用主机名而不要使用 IPv6 地址。



示例 28–15 在 ftpaccess 文件中启用有限虚拟主机托管


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

上面的示例在虚拟 FTP 服务器上设置 root 目录、bannerlogfile 的位置。



示例 28–16 在命令行中启用有限虚拟主机托管

带有 -l 选项的ftpaddhost(1M) 脚本可用于配置有限虚拟主机。

在以下示例中,运行带有 -l -b -x 选项的 ftpaddhost,可以使用虚拟根 /var/ftp/virtual/10.1.2.3 下的测试标题和日志文件 /var/ftp/virtual/10.1.2.3/xferlog 配置有限虚拟主机托管。


# ftpaddhost -l -b -x /var/ftp/virtual/10.1.2.3/xferlog \

/var/ftp/virtual/10.1.2.3

Procedure如何启用完整虚拟主机托管

完整虚拟主机托管允许每个虚拟域使用单独的配置文件。要在 FTP 服务器上启用对虚拟主机托管的完整支持,可以创建或修改特定域的以下 FTP 配置文件:

有关详细信息,请参见 ftpaccess(4)ftpusers(4)ftpgroups(4)ftphosts(4)ftpconversions(4)


注 –

如果单独版本的配置文件不可用,则可以使用 /etc/ftpd 目录中的主版本的文件。


  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 将以下项添加到 /etc/ftpd/ftpservers 文件中。


    address /config-file-dir
    
    address

    虚拟服务器的 IP 地址

    config-file-dir

    包含对虚拟主机自定义的配置文件的目录


    注 –

    虽然可以使用 hostname 作为虚拟服务器的 address,但强烈建议您使用 IPv4 地址。为了匹配 hostname,接收 FTP 连接时 DNS 必须可用。对于 IPv6 主机,请使用主机名而不要使用 IPv6 地址。


  3. 要为虚拟主机创建自定义版本的 FTP 服务器配置文件,请将主版本的文件从 /etc/ftpd 复制到 /config-file-dir 目录中。

    有关详细信息,请参见 ftpservers(4)


示例 28–17 在 ftpservers 文件中启用完整虚拟主机托管


#

# FTP Server virtual hosting configuration file

#



10.1.2.3 /net/inet/virtual/somedomain/

10.1.2.4 /net/inet/virtual/anotherdomain/

上面的示例为虚拟服务器上的两个不同域指定 IP 地址。



示例 28–18 在命令行中启用完整虚拟主机托管

带有 -c 选项的ftpaddhost(1M) 脚本可用于配置完整虚拟主机。

在以下示例中,运行带有 -c -b -x 选项的 ftpaddhost,可以使用虚拟根 /var/ftp/virtual/10.1.2.3 下的测试标题和日志文件 /var/ftp/virtual/10.1.2.3/xferlog 配置完整虚拟主机托管。


# ftpaddhost -c -b -x /var/ftp/virtual/10.1.2.3/xferlog \

/var/ftp/virtual/10.1.2.3