8. 設定系統控制器

預計完成時間:2 到 4 小時

可操作元件擁有者:OELCM

技能設定檔:部署工程師

這部機器的主要用途是在主要方法無法使用時,與實體設備互動。舉例來說,如果交換器連線的啟動程序發生故障,可以連線至交換器控制台連接埠。

部分部署合作夥伴選擇在 GDC 核心機架中使用伺服器,然後稍後使用開機程式回收指示。如果資料中心機房禁止免費滾動伺服器、螢幕、滑鼠或鍵盤,就必須使用這項服務。

方案 A。Live CD 或 DVD

系統控制器會在完全即時的 CD 或 DVD (光學媒體) 上執行。

  • 請勿安裝在實體硬碟上。

  • 這個系統不得有實體硬碟。

  • 使用已清除 DTO 的 Rocky Live 映像檔。

  • 請勿使用 USB 隨身碟。

  • 你必須透過 DTO 定期更新這些圖片。

操作說明

  1. 燒錄到 CD 或 DVD。

  2. 將系統控制器設為從 CD 或 DVD 啟動。

  3. 設定 IP 位址。

方案 B。安裝作業系統 (OS)

本文的目的是建立符合安全技術實作指南 (STIG) 的工作站,並提供支援 Google Distributed Cloud (GDC) 實體隔離環境所需的軟體工具。

摘要

系統控制器是配備工作站、鍵盤、滑鼠和螢幕的急救車。

修課條件

請詳閱這份完整指南,並確認下列事項:

  • 資料移轉專員 (DTO) 會在安裝週待命。
  • 安裝時所需的設備和媒體包括:
    • Distributed Cloud 啟用工具指南
    • USB 媒體
    • 下載檔案,包括 OS ISO 和其他軟體 RPM
    • 工作站、螢幕、鍵盤、滑鼠和連接線。
  • 服務控制台 OS 的網路資訊:
    • IP 位址
    • 子網路遮罩
    • 預設閘道
    • DNS 資訊

已識別的資源

  • Distributed Cloud 熟練度矩陣
DTO 工程師 Scribe/Comms 教練 Runner/TL/TW
  • Distributed Cloud 部署團隊角色

其他資源

  • 下載 OS 安裝指南
  • 下載 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 和軟體套件帶入 DC Hall 的安全空間。

  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. 執行 OS 安裝作業
    • 需要 DTO/DTA 的媒體。

安裝作業系統

預期系統控制器會設定好鍵盤、螢幕和滑鼠,並準備好安裝 OS。

從媒體啟動

  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. 依序按一下「儲存」和「完成」

安裝程式的「Networking and hostname」選項螢幕截圖

圖 3:安裝的網路和主機名稱選項。

時間和日期

  1. 按一下右上角的「設定」圖示。
  2. 在「主機名稱」欄位中輸入管理交換器的 IP 位址。
  3. 按一下 [確定]
  4. 設定區域和時區。
  5. 按一下 [完成]
  6. 在「主機名稱」欄位中輸入管理交換器的 IP 位址。
  7. 按一下 [確定]
  8. 設定區域和時區。
  9. 按一下 [完成]

安裝程式的「時間和日期」選項螢幕截圖

圖 4:安裝時間和日期選項。

軟體

  1. 軟體選取:工作站
  2. 外掛程式:
  3. 外掛程式:

    1. 網路伺服器
    2. 系統工具
    3. Office 生產力

下圖顯示安裝的「SOFTWARE SELECTION」(軟體選取) 頁面。 頁面會顯示兩個選單:一個是基本環境的選單,其中已選取「工作站」選項。另一個選單則提供所選環境的其他軟體,其中已選取「網路伺服器」和「系統工具」選項。

安裝程式的軟體選取畫面螢幕截圖

圖 5. 安裝作業的基礎環境和額外軟體。

  • 選取工作站做為基礎環境
  • 選取網路伺服器做為額外軟體安裝項目
  • 選取「系統工具」做為額外安裝的軟體
  • 選取 Office 生產力軟體做為額外安裝的軟體

安裝目的地和磁碟分割

下圖顯示「INSTALLATION DESTINATION」(安裝目的地) 頁面,其中已選取磁碟裝置。這個頁面也會指定自訂儲存空間設定。

安裝程式的「安裝目的地」畫面螢幕截圖

圖 6:選取安裝目的地和儲存空間設定。

  1. 選取「SSD 安裝目標」
  2. 自訂分區

    1. 建立下列分區版面配置。
    2. 接受每個分割區的預設檔案系統類型。
    3. 修改 LVM 磁碟區群組,使用所有剩餘的磁碟空間。
  • 抄寫員/工程師會根據安裝指南,記錄系統分割情形。

由工程師進行人工審查,檢查分割區大小並驗證主目錄是否存在。

如要讓磁碟區群組擴展至填滿整個 SSD,定義分割區後還需要額外步驟。

  • 在分割區視窗中,按一下「音量群組:修改」按鈕。
  • 大小:「盡可能大」。
檔案系統 大小 手寫大師驗證 (如果為其他更新)
/boot 普通中等教育 1 年級
/boot/efi 0.5 G
/ 50 G
/tmp 普通中等教育 8 年級
/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. 執行此步驟時,請讓抄寫員坐在工程師旁邊。

下圖顯示「SECURITY POLICY」(安全性政策) 頁面,其中「DISA STIG with GUI for Red Hat Enterprise Linux 9」(適用於 Red Hat Enterprise Linux 9 的 DISA STIG (含 GUI)) 已選取為設定檔。這個頁面也會顯示設定檔說明和「選取設定檔」按鈕。

安裝程式安全性政策的螢幕截圖

圖 7. 安全性政策的設定檔選取畫面。

  • 已套用安全性政策,未發生任何錯誤。

使用者設定

  1. 設定 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,擷取新的裝置 ID 字串:

    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 中新增一行,並加入從手錶擷取的 ID 行:

    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 daemon:

    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 裝置已成功掛接。

安裝所有工具

  • 插入含有額外軟體的 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 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 選取的「Serial port setup」選項。

    Minicom 序列埠設定的螢幕截圖

  3. 將序列裝置變更為 /dev/ttyUSB0,並視需要調整鮑率 (速度)。

    下圖顯示設為 /dev/ttyUSB0 的序列裝置。

    Minicom 序列裝置的螢幕截圖

  4. 如要永久儲存這項變更,請使用 Save setup as dfl

  5. 選取「Exit」,從設定選單進入實際的序列控制台。

    下圖顯示從設定 TUI 選取的「Exit」選項。Minicom Exit 的螢幕截圖

  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
    

Wi-Fi

  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. /etc/yum.repos.d/ 中的所有現有 .repo 檔案移至備份目錄。

    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
    

安裝後檢查清單

  • 發現的問題已記錄在文件中。
  • 敏感憑證已安全轉移並記錄在案。
  • OS 和工具安裝工作已在工作追蹤器上成功更新。
  • 系統控制器設定後檢查清單:
    • ip a # 顯示正確的 IP
    • kubectl version
    • k9s version
    • minicom --help
    • tmux -V
    • chronyc sources