Solaris 9 9/04 安装指南

配置 WAN Boot 服务器

WAN Boot 服务器是 Web 服务器,它可以在 WAN Boot 安装期间提供引导和配置数据。 有关 WAN Boot 服务器的系统要求列表,请参见表 42–1

本节说明了为 WAN Boot 安装配置 WAN Boot 服务器时所需执行的以下任务。

创建文档根目录

要使用配置文件和安装文件,您必须使 WAN Boot 服务器上的 Web 服务器软件可以访问这些文件。 使这些文件能被访问的方法之一是将它们存储在 WAN Boot 服务器的文档根目录中。

如果要通过文档根目录来使用配置文件和安装文件,那么必须创建该目录。 有关如何创建文档根目录的信息,请参见 Web 服务器文档。 有关如何设计文档根目录的详细信息,请参见在文档根目录中存储安装和配置文件

创建 WAN Boot 最小根文件系统

WAN Boot 使用已修改的特殊 Solaris 最小根文件系统来执行 WAN Boot 安装。 WAN Boot 最小根文件系统包含 Solaris 最小根文件系统中的一个软件子集。 要执行 WAN Boot 安装,必须将最小根文件系统从 Solaris DVD 或 Solaris Software 1 of 2 CD 复制到 WAN Boot 服务器。 请使用带有 -w 选项的 setup_install_server 命令将 WAN Boot 最小根文件系统从 Solaris 软件介质复制到系统硬盘。

此过程将使用 SPARC 介质创建 SPARC WAN Boot 最小根文件系统。 如果要通过基于 x86 的服务器使用 SPARC WAN Boot 最小根文件系统,那么您必须在 SPARC 计算机上创建最小根文件系统。 创建最小根文件系统后,请将其复制到基于 x86 的服务器上的文档根目录中。

有关 setup_install_server 命令的详细信息,请参见第 15 章,准备使用 CD 介质从网络安装(任务)

SPARC: 创建 WAN Boot 最小根文件系统

此过程假设 WAN Boot 服务器正在运行卷管理器。 如果您未使用卷管理器,请参见 System Administration Guide: Devices and File Systems, 以获得有关在没有卷管理器的情况下管理可移动介质的信息。

  1. 成为 WAN Boot 服务器上的超级用户。

    系统必须满足以下要求。

    • 包含 CD-ROM 驱动器或 DVD-ROM 驱动器

    • 是站点网络和名称服务的一部分

      如果您使用了名称服务,那么该系统必须已包含在名称服务(如 NIS、NIS+、DNS 或 LDAP)中。 如果您未使用名称服务,那么必须按照站点策略来发布有关此系统的信息。

  2. 将 Solaris Software 1 of 2 CD 或 Solaris DVD 插入安装服务器的驱动器中。

  3. 为 WAN Boot 最小根文件系统和 Solaris 安装映像创建目录。


    # mkdir -p wan-dir-path install-dir-path
    
    -p

    指示 mkdir 命令为要创建的目录创建所有必需的父目录。

    wan-dir-path

    指定安装服务器上要用来创建 WAN Boot 最小根文件系统的目录。 该目录需要容纳最小根文件系统(通常为 250 MB)。

    install-dir-path

    指定安装服务器上 Solaris 软件映像将被复制到其中的目录。 在此过程中,该目录稍后可以删除。

  4. 更改到已装载磁盘上的 Tools 目录。


    # cd /cdrom/cdrom0/s0/Solaris_9/Tools
    

    在上面的实例中,cdrom0 是指向包含 Solaris 操作环境介质的驱动器的路径。

  5. 将 WAN Boot 最小根文件系统和 Solaris 软件映像复制到 WAN Boot 服务器的硬盘。


    # ./setup_install_server -w wan-dir-path install-dir-path
    
    wan-dir-path

    指定 WAN Boot 最小根文件系统将被复制到其中的目录

    install-dir-path

    指定 Solaris 软件映像将被复制到其中的目录


    注意:

    setup_install_server 命令会报告是否有足够的磁盘空间可用于 Solaris Software 磁盘映像。 要确定可用磁盘空间,请使用 df -kl 命令。


    setup_install_server -w 命令可以创建 WAN Boot 最小根文件系统和 Solaris 软件的网络安装映像。

  6. (可选的) 删除网络安装映像。

    使用 Solaris Flash 归档文件执行 WAN 安装时无需 Solaris 软件映像。 如果该网络安装映像不再用于其它网络安装,请执行此操作以释放磁盘空间。 请键入以下命令,以删除网络安装映像。


    # rm -rf install-dir-path
    
  7. 通过以下方法之一使 WAN Boot 最小根文件系统可用于 WAN Boot 服务器。

    • 在 WAN Boot 服务器的文档根目录中创建指向 WAN Boot 最小根文件系统的符号链接。


      # cd /document-root-directory/miniroot
      # ln -s /wan-dir-path/miniroot .
      
      document-root-directory/miniroot

      指定 WAN Boot 服务器的文档根目录中,要链接到 WAN Boot 最小根文件系统的目录。

      /wan-dir-path/miniroot

      指定指向 WAN Boot 最小根文件系统的路径。

    • 将 WAN Boot 最小根文件系统移到 WAN Boot 服务器上的文档根目录中。


      # mv /wan-dir-path/miniroot /document-root-directory/miniroot/miniroot-name
      
      wan-dir-path/miniroot

      指定指向 WAN Boot 最小根文件系统的路径。

      /document-root-directory/miniroot/

      指定 WAN Boot 服务器的文档根目录中,指向 WAN Boot 最小根文件系统目录的路径。

      miniroot-name

      指定 WAN Boot 最小根文件系统的名称。 请描述性地命名该文件,例如 miniroot.s9_sparc

在 WAN Boot 服务器上安装 wanboot 程序

WAN Boot 使用特殊的二级引导程序 (wanboot) 来安装客户机。 wanboot 程序将装入执行 WAN Boot 安装所需的 WAN Boot 最小根文件系统、客户机配置文件以及安装文件。

要执行 WAN Boot 安装,必须在安装期间为客户机提供 wanboot 程序。 可以使用以下方法为客户机提供此程序。

SPARC: 在 WAN Boot 服务器上安装 wanboot 程序

此过程假设 WAN Boot 服务器正在运行卷管理器。 如果您未使用卷管理器,请参见 System Administration Guide: Devices and File Systems, 以获得有关在没有卷管理器的情况下管理可移动介质的信息。

  1. 成为安装服务器上的超级用户。

  2. 将 Solaris Software 1 of 2 CD 或 Solaris DVD 插入安装服务器的驱动器中。

  3. 更改到 Solaris Software 1 of 2 CD 或 Solaris DVD 上的 sun4u 平台目录中。


    # cd /cdrom/cdrom0/s0/Solaris_9/Tools/Boot/platform/sun4u/
    
  4. wanboot 程序复制到安装服务器。


    # cp wanboot /document-root-directory/wanboot/wanboot-name
    
    document-root-directory

    指定 WAN Boot 服务器的文档根目录。

    wanboot-name

    指定 wanboot 程序的名称。 请描述性地命名此文件,例如 wanboot.s9_sparc

  5. 通过以下方法之一使 wanboot 程序可用于 WAN Boot 服务器。

    • 在 WAN Boot 服务器的文档根目录中创建指向 wanboot 程序的符号链接。


      # cd /document-root-directory/wanboot
      # ln -s /wan-dir-path/wanboot .
      
      document-root-directory/wanboot

      指定 WAN Boot 服务器的文档根目录中,要链接到 wanboot 程序的目录。

      /wan-dir-path/wanboot

      指定指向 wanboot 程序的路径。

    • 将 WAN Boot 最小根文件系统移到 WAN Boot 服务器上的文档根目录中。


      # mv /wan-dir-path/wanboot /document-root-directory/wanboot/wanboot-name
      
      wan-dir-path/wanboot

      指定指向 wanboot 程序的路径。

      /document-root-directory/wanboot/

      指定 WAN Boot 服务器的文档根目录中,指向 wanboot 程序目录的路径。

      wanboot-name

      指定 wanboot 程序的名称。 请描述性地命名此程序,例如 wanboot.s9_sparc

在 WAN Boot 服务器上创建 /etc/netboot 分层结构

在安装期间,WAN Boot 将参考 Web 服务器上的 /etc/netboot 分层结构的内容,以获得有关如何执行安装的指令。 此目录包含 WAN Boot 安装所需的配置信息、专用密钥、数字证书和认证机构。 在安装期间,wanboot-cgi 程序首先将此信息转换到 WAN Boot 文件系统中, 然后将 WAN Boot 文件系统传送至客户机。

您可以在 /etc/netboot 目录中创建子目录,以定制 WAN 安装的范围。 请使用以下目录结构,以定义如何在您要安装的客户机之间共享配置信息。

有关如何设计 /etc/netboot 分层结构的详细规划信息,请参见/etc/netboot 分层结构中存储配置和安全信息

创建 /etc/netboot 分层结构
  1. 成为 WAN Boot 服务器上的超级用户。

  2. 创建 /etc/netboot 目录。


    # mkdir /etc/netboot
    
  3. /etc/netboot 目录的权限更改为 700。


    # chmod 700 /etc/netboot
    
  4. /etc/netboot 目录的属主更改为 Web 服务器属主。


    # chown web-server-user:web-server-group /etc/netboot/
    
    web-server-user

    指定 Web 服务器进程的用户属主

    web-server-group

    指定 Web 服务器进程的组属主

  5. 退出超级用户角色。


    # exit
    
  6. 假设用户角色为 Web 服务器属主。

  7. 创建 /etc/netboot 目录的客户机子目录。


    # mkdir -p /etc/netboot/net-ip/client-ID
    
    -p

    指示 mkdir 命令为要创建的目录创建所有必需的父目录

    (可选)net-ip

    指定客户机子网的网络 IP 地址。

    (可选)client-ID

    指定客户机 ID。 客户机 ID 可以是用户自定义的 ID,也可以是 DHCP 客户机 ID。 client-ID 目录必须是 net-ip 目录的子目录。

  8. /etc/netboot 分层结构中各个目录的权限更改为 700。


    # chmod 700 /etc/netboot/dir-name
    
    dir-name

    指定 /etc/netboot 分层结构中的目录名称。


实例 43–1 在 WAN Boot 服务器上创建 /etc/netboot 分层结构

以下实例显示了如何为子网 192.168.255.0 上的客户机 010003BA152A42 创建 /etc/netboot 分层结构。在此实例中,Web 服务器进程的属主是用户 nobody 和组 admin

本实例中的命令执行以下任务。


# cd /
# mkdir /etc/netboot/
# chmod 700 /etc/netboot
# chown nobody:admin /etc/netboot
# exit
server# su nobody
Password:
nobody# mkdir -p /etc/netboot/192.168.255.0/010003BA152A42
nobody# chmod 700 /etc/netboot/192.168.255.0
nobody# chmod 700 /etc/netboot/192.168.255.0/010003BA152A42

将 WAN Boot CGI 程序复制到 WAN Boot 服务器

wanboot-cgi 程序用于创建数据流,以将以下文件从 WAN Boot 服务器传送至客户机。

安装 Solaris 9 12/03 或兼容版本时,将在系统上安装 wanboot-cgi 程序。 要允许 WAN Boot 服务器使用该程序,请将此程序复制到 WAN Boot 服务器的 cgi-bin 目录中。

wanboot-cgi 程序复制到 WAN Boot 服务器
  1. 成为 WAN Boot 服务器上的超级用户。

  2. wanboot-cgi 程序复制到 WAN Boot 服务器。


    # cp /usr/lib/inet/wanboot/wanboot-cgi /WAN-server-root/cgi-bin/wanboot-cgi
    
    /WAN-server-root

    指定 WAN Boot 服务器上 Web 服务器软件的根目录。

  3. 在 WAN Boot 服务器上,将 CGI 程序的权限更改为 755。


    # chmod 755 /WAN-server-root/cgi-bin/wanboot-cgi
    

(可选)配置 WAN Boot 日志服务器

如果要在非客户机的系统上记录引导和安装日志消息,必须设置一个日志服务器。 在安装期间,如果使用具有 HTTPS 的日志服务器,必须将 WAN Boot 服务器配置为日志服务器。

要配置日志服务器,请按以下步骤执行操作。

配置日志服务器
  1. bootlog-cgi 脚本复制到日志服务器的 CGI 脚本目录中。


    # cp /usr/lib/inet/wanboot/bootlog-cgi \
      log-server-root/cgi-bin
    
    log-server-root/cgi-bin

    指定日志服务器的 Web 服务器目录中的 cgi-bin 目录。

  2. bootlog-cgi 脚本的权限更改为 755。


    # chmod 755 log-server-root/cgi-bin/bootlog-cgi
    
  3. 设置 wanboot.conf 文件中的 boot_logger 参数值。

    wanboot.conf 文件中,指定日志服务器上的 bootlog-cgi 脚本的 URL。

    有关设置 wanboot.conf 文件中的参数的详细信息,请参见创建 wanboot.conf 文件

    在安装期间,引导和安装日志消息记录在日志服务器的 /tmp 目录中。 日志文件的文件名为 bootlog.hostname,其中 hostname 是客户机的主机名。


实例 43–2 通过 HTTPS 配置 WAN Boot 安装的日志服务器

以下实例将 WAN Boot 服务器配置为日志服务器。


# cp /usr/lib/inet/wanboot/bootlog-cgi /opt/apache/cgi-bin/
# chmod 755 /opt/apache/cgi-bin/bootlog-cgi

(可选)使用 HTTPS 保护数据

要在从 WAN Boot 服务器到客户机的传送期间保护数据,可以使用安全套接字层上的 HTTP (HTTPS)。 要使用安全 WAN Boot 安装配置 中介绍的更安全的安装配置,必须允许 Web 服务器使用 HTTPS。

要允许 WAN Boot 服务器上的 Web 服务器软件使用 HTTPS,必须执行以下任务。

使用数字证书进行服务器和客户机认证

WAN Boot 安装方法可以使用 PKCS#12 文件,以通过带有服务器认证/客户机和服务器认证的 HTTPS 来执行安装。 有关使用 PKCS#12 文件的要求和原则,请参见数字证书要求

要在 WAN Boot 安装中使用 PKCS#12 文件,请执行以下任务。

wanbootutil 命令提供了执行前面列表中的任务的选项。

拆分 PKCS#12 文件之前,请在 WAN Boot 服务器上创建 /etc/netboot 分层结构的相应子目录。

创建信任证书和客户机专用密钥
  1. 假设用户角色为 WAN Boot 服务器上的 Web 服务器用户。

  2. 从 PKCS#12 文件中提取信任证书。 将证书插入 /etc/netboot 分层结构中客户机的 truststore 文件中。


    # wanbootutil p12split -i p12cert \
      -t /etc/netboot/net-ip/client-ID/truststore
    
    p12split

    wanbootutil 命令的选项,用于将 PKCS#12 文件拆分为独立的专用密钥文件和证书文件。

    -i p12cert

    指定要拆分的 PKCS#12 文件的名称。

    -t /etc/netboot/net-ip/client-ID/truststore

    将证书插入客户机的 truststore 文件中。 net-ip 是客户机子网的 IP 地址。 client-ID 可以是用户自定义的 ID,也可以是 DHCP 客户机 ID。

  3. (可选的) 确定是否需要客户机认证。

    1. 将客户机证书插入客户机的 certstore 中。


      # wanbootutil p12split -i p12cert -c \
        /etc/netboot/net-ip/client-ID/certstore -k keyfile
      
      p12split

      wanbootutil 命令的选项,用于将 PKCS#12 文件拆分为独立的专用密钥文件和证书文件。

      -i p12cert

      指定要拆分的 PKCS#12 文件的名称。

      -c /etc/netboot/net-ip/client-ID/certstore

      将客户机证书插入客户机的 certstore 中。 net-ip 是客户机子网的 IP 地址。 client-ID 可以是用户自定义的 ID,也可以是 DHCP 客户机 ID。

      -k keyfile

      指定通过拆分 PKCS#12 文件而创建的客户机 SSL 专用密钥文件的名称。

    2. 将专用密钥插入客户机的 keystore 中。


      # wanbootutil keymgmt -i -k keyfile \
         -s /etc/netboot/net-ip/client-ID/keystore -o type=rsa
      
      keymgmt -i

      将 SSL 专用密钥插入客户机的 keystore

      -k keyfile

      指定在上一步中创建的客户机专用密钥文件的名称

      -s /etc/netboot/net-ip/client-ID/keystore

      指定指向客户机的 keystore 的路径

      -o type=rsa

      指定密钥类型为 RSA


实例 43–3 创建用于服务器认证的信任证书

在以下实例中,您将使用 PKCS#12 文件安装位于子网 192.168.255.0 上的客户机 010003BA152A42。此命令样例从 PKCS#12 文件 client.p12 中提取了一个证书, 然后将信任证书的内容放入客户机的 truststore 文件中。

在执行这些命令之前,您首先必须假设用户角色为 Web 服务器用户。 在此实例中,Web 服务器用户的角色为 nobody


server# su nobody
Password:
nobody# wanbootutil p12split -i client.p12 \
   -t /etc/netboot/192.168.255.0/010003BA152A42/truststore
nobody# chmod 600 /etc/netboot/192.168.255.0/010003BA152A42/truststore

创建散列密钥和加密密钥

如果要使用 HTTPS 传送数据,那么您必须创建 HMAC SHA1 散列密钥和加密密钥。 如果计划通过半专用网络进行安装,则可能不需要加密安装数据。 您可以使用 HMAC SHA1 散列密钥检查 wanboot 程序的完整性。 有关散列密钥和加密密钥的概述信息,请参见在 WAN Boot 安装期间保护数据

通过使用 wanbootutil keygen 命令,可以生成这些密钥并将其存储在相应的 /etc/netboot 目录中。

创建散列密钥和加密密钥
  1. 假设用户角色为 WAN Boot 服务器上的 Web 服务器用户。

  2. 创建主 HMAC SHA1 密钥。


    # wanbootutil keygen -m
    
    keygen -m

    创建 WAN Boot 服务器的主 HMAC SHA1 密钥

  3. 从主密钥中创建客户机的 HMAC SHA1 散列密钥。


    # wanbootutil keygen -c -o [net=net-ip,{cid=client-ID,}]type=sha1
    
    -c

    从主密钥中创建客户机的散列密钥。

    -o

    指示包含 wanbootutil keygen 命令的附加选项。

    (可选)net=net-ip

    指定客户机子网的 IP 地址。 如果不使用 net 选项,密钥将存储在 /etc/netboot/keystore 文件中,可被所有 WAN Boot 客户机使用。

    (可选)cid=client-ID

    指定客户机 ID。 客户机 ID 可以是用户自定义的 ID,也可以是 DHCP 客户机 ID。 cid 选项之前必须有一个有效的 net= 值。 如果未指定带有 net 选项的 cid 选项,密钥将存储在 /etc/netboot/net-ip/keystore 文件中。 net-ip 子网上的所有 WAN Boot 客户机均可使用此密钥。

    type=sha1

    指示 wanbootutil keygen 公用程序创建客户机的 HMAC SHA1 散列密钥。

  4. 确定是否要创建客户机的加密密钥。

    您需要创建加密密钥以通过 HTTPS 执行 WAN Boot 安装。 在客户机与 WAN Boot 服务器建立 HTTPS 连接之前,WAN Boot 服务器会将加密数据和信息传送至客户机。 在安装期间,加密密钥使客户机解密此信息,然后使用其中的信息。

    • 如果要通过带有服务器认证的 HTTPS 执行更安全的 WAN 安装,请继续。

    • 如果只是要检查 wanboot 程序的完整性,那么您无需创建加密密钥。 请执行步骤 6

  5. 创建客户机的加密密钥。


    # wanbootutil keygen -c -o [net=net-ip,{cid=client-ID,}]type=key-type
    
    -c

    创建客户机的加密密钥。

    -o

    指示包含 wanbootutil keygen 命令的附加选项。

    (可选)net=net-ip

    指定客户机的网络 IP 地址。 如果不使用 net 选项,密钥将存储在 /etc/netboot/keystore 文件中,可被所有 WAN Boot 客户机使用。

    (可选)cid=client-ID

    指定客户机 ID。 客户机 ID 可以是用户自定义的 ID,也可以是 DHCP 客户机 ID。 cid 选项之前必须有一个有效的 net= 值。 如果未指定带有 net 选项的 cid 选项,密钥将存储在 /etc/netboot/net-ip/keystore 文件中。 net-ip 子网上的所有 WAN Boot 客户机均可使用此密钥。

    type=key-type

    指示 wanbootutil keygen 公用程序创建客户机的加密密钥。 key-type 可以具有 3des 的值,也可以具有 aes 的值。

  6. 在客户机系统上安装密钥。

    有关如何在客户机上安装密钥的说明,请参见在客户机上安装密钥


实例 43–4 创建通过 HTTPS 执行 WAN Boot 安装时所需的密钥

以下实例创建了 WAN Boot 服务器的主 HMAC SHA1 密钥, 还创建了位于子网 192.168.255.0 上的客户机 010003BA152A42 的 HMAC SHA1 散列密钥和 3DES 加密密钥。

在执行这些命令之前,您首先必须假设用户角色为 Web 服务器用户。 在此实例中,Web 服务器用户的角色为 nobody


server# su nobody
Password:
nobody# wanbootutil keygen -m
nobody# wanbootutil keygen -c -o net=192.168.255.0,cid=010003BA152A42,type=sha1
nobody# wanbootutil keygen -c -o net=192.168.255.0,cid=010003BA152A42,type=3des