8. 设置系统控制器

预计完成时间:2-4 小时

可操作组件的所有者:OELCM

技能配置文件:部署工程师

此机器的主要用途是在主要方法不可用时与实体设备互动。例如,如果引导加载程序到交换机连接出现故障,则可以连接到交换机控制台端口。

部分部署合作伙伴选择在 GDC 核心机架中使用服务器,然后稍后使用引导加载程序回收说明。如果您的数据中心机房禁止自由滚动服务器、显示器、鼠标或键盘,则必须执行此步骤。

方案 A。Live CD 或 DVD

系统控制器在完全实时的 CD 或 DVD(光盘)上运行。

  • 请勿安装在物理硬盘上。

  • 此系统不得有物理驱动器。

  • 使用已清除 DTO 的 Rocky 实时映像。

  • 请勿使用 USB 拇指驱动器。

  • 您必须通过 DTO 定期更新这些映像。

说明

  1. 烧录到 CD 或 DVD 上。

  2. 将系统控制器设置为从 CD 或 DVD 启动。

  3. 设置 IP 地址。

方案 B。安装操作系统 (OS)

本文档旨在创建一个符合安全技术实施指南 (STIG) 的工作站,其中包含支持 Google Distributed Cloud (GDC) 气隙环境所需的软件工具。

摘要

系统控制器是一种包含工作站、键盘、鼠标和显示器的崩溃推车。

前提条件

查看本完整指南,并验证以下各项:

  • 数据转移专员 (DTO) 在安装周随时待命。
  • 安装所需的设备和介质包括:
    • Distributed Cloud 启用工具指南
    • USB 媒体
    • 文件下载,包括操作系统 ISO 和其他软件 RPM
    • 工作站、显示器、键盘、鼠标和线缆。
  • 服务控制台操作系统的网络信息:
    • IP 地址
    • 子网掩码
    • 默认网关
    • DNS 信息

已识别的资源

  • 分布式云技能熟练程度矩阵
DTO Engineer Scribe/Comms 讲师 Runner/TL/TW
  • 分布式云部署团队角色

其他资源

  • 下载操作系统安装指南
  • 下载 Minicom 设置流程
  • 下载 COW 和构建急救车设置说明。

创建可启动媒体

请使用 DTO 在前往客户现场之前完成此任务。

  1. 下载 Rocky 8 或 9 DVD ISO
  2. 下载其他软件包:

    软件包 网址
    clamav(可选) Rocky 8.x / Rocky 9.x
    clamav-data (可选) Rocky 8.x / Rocky 9.x
    clamav-filesystem(可选) Rocky 8.x / Rocky 9.x
    clamav-freshclam (可选) Rocky 8.x / Rocky 9.x
    clamav-lib (可选) Rocky 8.x / Rocky 9.x
    clamd (可选) Rocky 8.x / Rocky 9.x
    代码 Rocky 8.x / Rocky 9.x
    google-chrome-stable_current Rocky 8.x / Rocky 9.x
    k9s Rocky 8.x / Rocky 9.x
    kubectl Rocky 8.x / Rocky 9.x
    liberation-fonts Rocky 8.x / Rocky 9.x
    libprelude Rocky 8.x / Rocky 9.x
    lm_sensors Rocky 8.x / Rocky 9.x
    lm_sensors_libs Rocky 8.x / Rocky 9.x
    lockdev Rocky 8.x / Rocky 9.x
    lrzsz Rocky 8.x / Rocky 9.x
    minicom Rocky 8.x / Rocky 9.x
    sysstat Rocky 8.x / Rocky 9.x
  3. 执行必要的软件转移程序,将 ISO 和软件包引入数据中心机房的安全空间。

  4. 将 ISO 映像写入加密的 USB 驱动器。

  5. 将其他软件包复制到加密的 USB 驱动器。

    # Set variable to iso file downloaded
    OS_ISO=Rocky-9.5-x86_64-dvd.iso
    
    # cd to directory where iso and additional software rpms are stored
    
    # Determine the device name of the USB drive.
    sudo lsblk
    
    # Set the device name of the USB drive.
    echo "What is the device name of the USB drive? Provide full name for example /dev/sdX"
    read USB_DEVICE
    read -r -p "Proceeding will destroy existing data on ${USB_DEVICE}. Continue with formatting? [y/n] " response
    case "$response" in
      [yY][eE][sS]|[yY])
          echo "Formatting USB drive with ${OS_ISO}..."
          ;;
      *)
          echo "Exiting..."
          exit 0
          ;;
    esac
    
    # Write ISO to USB drive
    sudo dd if=${OS_ISO} of=${USB_DEVICE} bs=4M
    
    echo "Copying additional software packages to USB drive"
    sudo mkdir /mnt/usb
    sudo mount ${USB_DEVICE} /mnt/usb
    sudo mkdir /mnt/usb/opt/
    sudo cp *.rpm /mnt/usb/opt/
    
    # Unmount USB drive
    sudo umount /mnt/usb
    echo "Bootable media creation is complete."
    

安装当天

从库存或装货平台运输和接收处取回设备。 将设备带到数据中心 (DC) 工作区。继续为系统控制器构建应急车。

准备和构建设备

  1. 开箱工作站
  2. 验证序列号
  3. 组装急救推车
    • 安装显示屏
    • 包含键盘
    • 包含鼠标
    • 在此处添加系统控制器设置传单或 PDF 文件。
  4. 将线缆连接到工作站
    • 插入显示线缆(VGA、HDMI、DisplayPort)
    • 插入鼠标
    • 插入键盘
  5. 执行操作系统安装
    • 将需要来自 DTO/DTA 的媒体。

操作系统安装

预计系统控制器(配备键盘、显示器和鼠标)将设置完毕,可用于安装操作系统。

从媒体启动

  1. 从可启动的介质启动系统控制器。
  2. 选择 Check Media and Install(检查媒体并安装)。
  3. Redhat 安装程序 GUI 加载后,在每个部分中选择以下内容。

下图显示了初始消息,其中包含系统控制器从可启动介质显示的操作系统安装选项。

可启动媒体的初始消息的屏幕截图

图 1. 来自可启动介质的初始消息。

  • 已启动 ISO 媒体。

安装程序 GUI 的屏幕截图

图 2. 安装的语言选择。

本地化

  1. 键盘:英语(美国)
  2. 语言:英语(美国)

网络和主机名

  1. 点击网络设备上的配置
  2. IPv4 设置中,选择手动
  3. 地址中,点击添加
  4. 在相应字段中输入 IP 地址、网络掩码和网关。
  5. 输入 DNS 服务器。
  6. 依次点击保存完成
  7. IPv4 设置中,选择手动
  8. 地址中,点击添加
  9. 在相应字段中输入 IP 地址、网络掩码和网关。
  10. 输入 DNS 服务器。
  11. 依次点击保存完成

安装程序的“网络”和“主机名”选项的屏幕截图

图 3.安装的网络和主机名选项。

时间和日期

  1. 点击右上角的“设置”图标。
  2. 主机名字段中输入管理交换机的 IP 地址。
  3. 点击确定
  4. 设置区域和时区。
  5. 点击完成
  6. 主机名字段中输入管理交换机的 IP 地址。
  7. 点击确定
  8. 设置区域和时区。
  9. 点击完成

安装程序“时间和日期”选项的屏幕截图

图 4. 安装的时间和日期选项。

软件

  1. 选择软件:工作站
  2. 加购项:
  3. 加购项:

    1. 网络服务器
    2. 系统工具
    3. 办公效率

下图显示了安装的 SOFTWARE SELECTION 页面。 该页面显示了两个菜单:一个菜单用于基本环境,其中选择了工作站选项。另一个菜单用于显示所选环境的其他软件,其中选择了网络服务器系统工具选项。

安装程序软件选择界面的屏幕截图

图 5. 安装所需的基本环境和其他软件。

  • 工作站被选为基本环境
  • 选择网络服务器作为附加软件安装
  • 选择作为附加软件安装的系统工具
  • 选择“办公效率”作为要安装的附加软件

安装目标位置和磁盘分区

下图显示了安装目的地页面,其中已选择磁盘设备。此页面上还指定了自定义存储配置。

安装程序“安装目标位置”的屏幕截图

Figure 6. 安装目的地和存储配置选择。

  1. 选择:SSD 安装目标
  2. 自定义分区

    1. 创建以下分区布局。
    2. 接受每个分区的默认文件系统类型。
    3. 修改 LVM 卷组以使用所有剩余磁盘空间。
  • 记录员/工程师记录系统已根据安装指南进行分区。

由工程师进行人工审核,检查分区大小并验证主目录是否存在。

如需让卷组扩展到填满整个 SSD,在定义分区后还需要执行一个额外的步骤。

  • 点击分区窗口中的卷组:修改按钮。
  • 尺寸:“尽可能大”。
文件系统 大小 Scribe 验证(如果为其他更新)
/boot 1 G
/boot/efi 0.5 G
/ 50 G
/tmp 8 G
/var 40 G
/var/log 20 G
/var/log/audit 20 G
/var/tmp 4 G
/opt/software-repo 100 G
/home 剩余空间

安全政策

  1. 滚动浏览可用安全政策的列表。

    • 选择:DISA STIG with GUI
    • 点击选择个人资料

    • 这会应用所选的安全政策。

    • 滚动浏览输出内容,看看政策是否检测到任何错误。

    • 阅读安全政策中列出的计划变更。

    • 如果您看到红色错误,请手动进行更改以符合要求。这通常是磁盘分区问题。

    • 确保安全政策处于开启状态。

  2. 在此步骤中,记录员应坐在工程师旁边。

下图显示了安全政策页面,其中适用于 Red Hat Enterprise Linux 9 的 DISA STIG(含 GUI)被选为配置文件。此页面还会显示配置文件的说明和选择配置文件按钮。

安装程序安全政策的屏幕截图

图 7.安全政策的配置文件选择。

  • 安全政策已成功应用,未出现任何错误。

用户设置

  1. 配置 root 用户

    • 设置 root 密码。
    • 在安装完成后,将根密码记录在加密的媒体驱动器上。
  2. 配置第一个运营者账号

    • 为初始操作员用户账号设置用户名。
    • 让操作员选择自己的密码。
    • 选中“管理员”,将账号添加到 %wheel 组。

下图显示了安装过程中的 CREATE USER 页面。该页面会显示您必须填写的字段,例如全名、用户名、密码和高级选项。

安装程序“创建用户”的屏幕截图

图 8.包含用于创建用户的信息的字段。

  • 用户设置已完成。
  • 凭据已验证并保存到加密的配置文件中。

更新系统

  1. 返回到主屏幕
  2. 系统会显示“升级”按钮
  3. 开始安装
  4. 升级需要一段时间
  5. 使用最新定义更新病毒软件
  6. 使用创建的账号登录
  7. 系统会显示首次登录界面

使用经过 STIG 加固的 USB 设备

在满足 STIG 要求的 Linux 机器上使用 USB 设备的权限受到严格限制,需要将各个设备添加到许可名单中才能使用。

以下命令允许键盘和鼠标在物理 USB 端口之间自由移动。这涉及更新 usbguard 规则。

  • 启用 USB 存储设备
  1. 移除伪造的 usb-storage 驱动程序:

    sudo rm /etc/modprobe.d/usb-storage.conf
    
永久启用新的 USB 设备

如需永久启用某个 USB 设备以供使用,您必须修改 usbguard 规则。

  1. 在实际插入新的 USB 之前,请先启动 usbguard watch 以捕获新的设备标识符字符串:

    sudo usbguard watch list-devices
    
  2. 实际插入 USB 设备,然后复制生成的输出:

    deny id 413c:301a serial "" name "Dell MS116 USB Optical Mouse" hash "kYdX3V8dJl2JDRpEA1mRTUMupUaUe4aGUUZcSr7r5EE=" parent-hash "bRXptnzyxb9ThCMx2AmE81vX4L0JJpn0YRy8OPD8K0A=" via-port "1-6.2" with-interface 03:01:02 with-connect-type "unknown
    
  3. /etc/usbguard/rules.conf 添加新行,其中包含从手表捕获的标识符行:

    sudo vi /etc/usbguard/rules.conf
    
    allow id 413c:301a serial "" name "Dell MS116 USB Optical Mouse" hash "kYdX3V8dJl2JDRpEA1mRTUMupUaUe4aGUUZcSr7r5EE=" parent-hash "bRXptnzyxb9ThCMx2AmE81vX4L0JJpn0YRy8OPD8K0A=" with-interface 03:01:02 with-connect-type "unknown
    
  4. 重启 usbguard 守护程序:

    sudo systemctl restart usbguard.service
    
暂时启用新的 USB 设备
  1. 插入新的 USB 设备,并确定为其分配的设备编号:

    usbguard list-devices
    

    最新设备通常列在最后一行。设备编号是相应行的第一个数字:

    usbguard list-devices | tail -1 | awk '{print $1}'
    
  2. 使用 usbguard 将安全 USB 列入许可名单:

    sudo usbguard allow-device ${USB_ID}
    
  3. 正常装载生成的 USB 存储设备:

    sudo lsblk # Determine the device name of the USB drive.
    # Set the device name of the USB drive.
    USB_DEVICE=/dev/sdX # replace X with the device number of the USB drive.
    
    sudo mkdir /mnt/usb; chmod 555 /mnt/usb
    sudo mount ${USB_DEVICE} /mnt/usb
    
  4. 您现在应该会看到安全 USB 已装载。

    • USB 已成功装载。

安装所有工具

  • 插入包含其他软件的 U 盘。

    sudo lsblk # Determine the device name of the USB drive.
    # Set the device name of the USB drive.
    USB_DEVICE=/dev/sdX # replace X with the device name of the USB drive.
    
    sudo mkdir /mnt/usb
    sudo mount ${USB_DEVICE} /mnt/usb
    sudo rpm -ihv /mnt/usb/opt/*.rpm
    sudo umount /mnt/usb
    

使用 Minicom 访问串行控制台

minicom 程序比较旧,它会假设您在调用它时想要连接到手机调制解调器。您必须更改默认设置才能使用 USB 转串口线。

  1. 以配置模式启动 minicom:

    sudo minicom -s
    
  2. 这会打开配置 TUI,以便您更改设置。

    下图显示了从配置 TUI 中选择的串行端口设置选项。

    Minicom 串行端口设置的屏幕截图

  3. 将串行设备更改为 /dev/ttyUSB0,并根据需要调整波特率(速度)。

    下图显示了设置为 /dev/ttyUSB0 的串行设备。

    Minicom 串行设备的屏幕截图

  4. 如需永久保存此更改,请使用 Save setup as dfl

  5. 选择 Exit 以从配置菜单中退出到实际的串行控制台。

    下图显示了从配置 TUI 中选择的退出选项。 Minicom 退出屏幕截图

  6. 在串行连接中,使用超级键更改设置并退出:

    CTRL+A, Z
    X = exit minicom and return to bash shell
    P = modify config settings
    

设置 Auditd 日志轮换

STIG 配置意味着 auditd 会创建大量日志。如果磁盘空间不足,它可能会将系统关闭到单用户模式。为防止出现此问题,请配置 auditd 日志的日志轮换。鉴于 auditd 无法在不重新启动的情况下重新启动,您必须同时配置 auditd 和 logrotate。

  1. 创建新的 /etc/logrotate.d/auditlog 文件

    cat << EOF | sudo tee /etc/logrotate.d/auditlog
    /var/log/audit/audit.log.1
    /var/log/audit/audit.log.2
    /var/log/audit/audit.log.3
    /var/log/audit/audit.log.4
    /var/log/audit/audit.log.5
    {
        missingok
        compress
    }
    EOF
    
  2. 修改 /etc/audit/auditd.conf file's max_log_file 设置:

    sudo vi /etc/audit/auditd.conf
    
  3. 将相应行更改为更新后的设置:

    max_log_file = 1024
    max_log_file_action = rotate
    
  4. 重启工作站:

    sudo shutdown -r now
    

WLAN

  1. 通过界面 (UI) 或运行 Nmcli 实用程序 nmcli radio wifi off 完成安装后,停用 Wi-Fi。
  2. 确认 Wi-Fi 已停用或组件不存在。

安装后

设置系统控制器后,下一步是将代码库从安装介质复制到本地文件系统。

设置本地 Yum 代码库

将整个 Rocky Linux 发行版复制到本地磁盘,以创建本地代码库。这样一来,yum 命令便可用于安装和更新软件。

复制媒体

  1. 将 USB 媒体装载到 /mnt/repo。将代码库从 DTO 媒体复制到 /opt/software-repo/ 目录。如果这些目录不存在,请创建它们。

    sudo lsblk # Determine the device name of the USB drive.
    # Set the device name of the USB drive.
    USB_DEVICE=/dev/sdX # replace X with the device name of the USB drive.
    
    sudo mkdir -m 555 /mnt/usb
    sudo mkdir -p /opt/software-repo/Rocky
    sudo mount ${USB_DEVICE} /mnt/usb
    sudo cp -a /mnt/usb/AppStream /opt/software-repo/Rocky
    sudo cp -a /mnt/usb/BaseOS /opt/software-repo/Rocky
    

创建本地媒体代码库

您只需执行以下操作一次。

  1. 将所有现有的 .repo 文件从 /etc/yum.repos.d/ 移至备份目录。

    sudo mkdir /root/repobackup
    sudo mv /etc/yum.repos.d/* /root/repobackup/
    
  2. 创建本地代码库文件

    cat << EOF | sudo tee /etc/yum.repos.d/local_Rocky-AppStream.repo
    [appstream]
    name=Rocky Linux $releasever - AppStream
    #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/os/
    baseurl=file:///opt/software-repo/Rocky/AppStream
    gpgcheck=1
    enabled=1
    countme=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
    EOF
    
    cat << EOF | sudo tee /etc/yum.repos.d/local_Rocky-BaseOS.repo
    [baseos]
    name=Rocky Linux $releasever - BaseOS
    #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/
    baseurl=file:///opt/software-repo/Rocky/BaseOS
    gpgcheck=1
    enabled=1
    countme=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
    EOF
    
    sudo dnf clean all
    

安装后核对清单

  • 我们已记录发现的问题。
  • 敏感凭据已安全转移并记录在案。
  • 已在任务跟踪器上成功更新操作系统和工具安装任务。
  • 系统控制器配置后核对清单:
    • ip a # 显示正确的 IP
    • kubectl version
    • k9s version
    • minicom --help
    • tmux -V
    • chronyc sources