8. 시스템 컨트롤러 설정

예상 소요 시간: 2~4시간

작동 가능 구성요소 소유자: OELCM

기술 프로필: 배포 엔지니어

이 머신의 기본 사용 사례는 기본 방법을 사용할 수 없을 때 실제 기기와 상호작용하는 것입니다. 예를 들어 스위치 연결 부트스트래퍼가 오작동하는 경우 스위치 콘솔 포트에 연결할 수 있습니다.

일부 배포 파트너는 GDC 핵심 랙 내에서 서버를 사용한 후 나중에 부트스트래퍼 회수 안내를 사용합니다. DC 홀에서 서버, 모니터, 마우스 또는 키보드의 자유로운 이동을 금지하는 경우 이 작업이 필요합니다.

계획 A 라이브 CD 또는 DVD

시스템 컨트롤러는 완전히 라이브 CD 또는 DVD (광학 미디어)에서 실행됩니다.

  • 물리적 하드 드라이브에 설치하지 마세요.

  • 이 시스템에는 실제 드라이브가 없어야 합니다.

  • DTO가 삭제된 Rocky 라이브 이미지를 사용합니다.

  • USB 썸 드라이브를 사용하지 마세요.

  • DTO를 통해 이러한 이미지를 정기적으로 업데이트해야 합니다.

안내

  1. CD 또는 DVD로 굽습니다.

  2. CD 또는 DVD에서 부팅하도록 시스템 컨트롤러를 설정합니다.

  3. IP 주소를 설정합니다.

계획 B 운영체제 (OS) 설치

이 문서의 목적은 Google Distributed Cloud (GDC) 에어 갭을 지원하는 데 필요한 소프트웨어 도구를 사용하여 보안 기술 구현 가이드 (STIG)를 준수하는 워크스테이션을 만드는 것입니다.

요약

시스템 컨트롤러는 워크스테이션, 키보드, 마우스, 모니터가 있는 크래시 카트입니다.

기본 요건

이 전체 가이드를 검토하고 다음을 확인하세요.

  • 데이터 전송 담당자 (DTO)는 설치 주간에 대기합니다.
  • 설치에 필요한 장비 및 미디어는 다음과 같습니다.
    • Distributed Cloud 사용 설정 도구 가이드
    • USB 미디어
    • OS iso 및 추가 소프트웨어 rpm을 포함한 파일 다운로드
    • 워크스테이션, 디스플레이, 키보드, 마우스, 케이블
  • 서비스 콘솔 OS의 네트워크 정보:
    • IP 주소
    • 서브넷 마스크
    • 기본 게이트웨이
    • DNS 정보

확인된 리소스

  • Distributed Cloud 숙련도 매트릭스
DTO 엔지니어 서기/커뮤니케이션 강사 러너/TL/TW
  • Distributed Cloud 배포팀 역할

추가 리소스

  • OS 설치 가이드 다운로드
  • Minicom 설정 절차 다운로드
  • COW 및 응급 카트 설정 안내를 다운로드합니다.

부팅 가능한 미디어 만들기

고객 사이트에 도착하기 전에 DTO를 사용하여 이 작업을 완료합니다.

  1. Rocky 8 또는 9 DVD ISO를 다운로드합니다.
  2. 추가 소프트웨어 패키지를 다운로드합니다.

    패키지 URL
    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 홀의 보안 공간으로 가져오는 데 필요한 소프트웨어 전송 절차를 실행합니다.

  4. 암호화된 USB 드라이브에 ISO 이미지를 씁니다.

  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. Unbox Workstation
  2. 일련번호 확인
  3. 크래시 카트 빌드
    • 디스플레이 연결
    • 키보드 포함
    • 마우스 포함
    • 여기에 시스템 컨트롤러 설정 리플릿 또는 PDF 파일을 추가하세요.
  4. 워크스테이션에 케이블 연결
    • 디스플레이 케이블 (VGA, HDMI, 디스플레이포트)을 연결합니다.
    • 마우스 연결
    • 키보드 연결
  5. OS 설치 실행
    • DTO/DTA의 미디어가 필요합니다.

OS 설치

키보드, 모니터, 마우스가 있는 시스템 컨트롤러가 설정되어 OS 설치 준비가 되어 있어야 합니다.

미디어에서 부팅

  1. 부팅 가능한 미디어에서 시스템 컨트롤러를 부팅합니다.
  2. Check Media and Install(미디어 확인 및 설치)을 선택합니다.
  3. Redhat 설치 프로그램 GUI가 로드되면 각 섹션에서 다음을 선택합니다.

다음 이미지는 시스템 컨트롤러가 부팅 가능한 미디어에서 표시하는 OS 설치 옵션이 포함된 초기 메시지를 보여줍니다.

부팅 가능한 미디어의 초기 메시지 스크린샷

그림 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. Office 생산성

다음 이미지는 설치의 소프트웨어 선택 페이지를 보여줍니다. 페이지에 두 개의 메뉴가 표시됩니다. 한 메뉴는 워크스테이션 옵션이 선택된 기본 환경용입니다. 다른 메뉴는 선택한 환경의 추가 소프트웨어용이며, 여기서는 네트워크 서버시스템 도구 옵션이 선택됩니다.

설치 프로그램 소프트웨어 선택 스크린샷

그림 5. 설치를 위한 기본 환경 및 추가 소프트웨어입니다.

  • 워크스테이션이 기본 환경으로 선택됨
  • 네트워크 서버가 추가 소프트웨어 설치로 선택됨
  • 시스템 도구가 추가 소프트웨어 설치로 선택됨
  • 사무 생산성 소프트웨어가 추가 소프트웨어 설치로 선택됨

설치 위치 및 디스크 파티션 나누기

다음 이미지는 디스크 기기가 선택된 설치 대상 페이지를 보여줍니다. 맞춤 스토리지 구성도 이 페이지에 지정되어 있습니다.

설치 프로그램 설치 위치의 스크린샷

그림 6. 설치 대상 및 스토리지 구성 선택

  1. SSD 설치 타겟을 선택합니다.
  2. 맞춤 파티셔닝:

    1. 다음 파티션 레이아웃을 만듭니다.
    2. 각 파티션의 기본 파일 시스템 유형을 수락합니다.
    3. 남은 디스크 공간을 모두 사용하도록 LVM 볼륨 그룹을 수정합니다.
  • 서기관/엔지니어는 시스템이 설치 가이드에 따라 파티셔닝되어 있음을 문서화합니다.

엔지니어가 파티션 크기를 확인하고 홈 디렉터리의 존재를 검증하기 위해 수동 검토를 실행합니다.

볼륨 그룹이 전체 SSD를 채우도록 확장하려면 파티션을 정의한 후 추가 단계가 있습니다.

  • 파티션 창에서 볼륨 그룹: 수정 버튼을 클릭합니다.
  • 크기: '가능한 한 크게'
파일 시스템 크기 Scribe Verified (기타 업데이트인 경우)
/boot 1G
/boot/efi 0.5 G
/ 50 G
/tmp 8학년
/var 40 G
/var/log 20 G
/var/log/audit 20 G
/var/tmp 4학년
/opt/software-repo 100 G
/home 남은 공간

보안 정책

  1. 사용 가능한 보안 정책 목록을 스크롤합니다.

    • DISA STIG with GUI를 선택합니다.
    • 프로필 선택을 클릭합니다.

    • 이렇게 하면 선택한 보안 정책이 적용됩니다.

    • 출력을 스크롤하여 정책에서 감지된 오류가 있는지 확인합니다.

    • 보안 정책에서 계획된 변경사항 목록을 읽습니다.

    • 빨간색 오류가 표시되면 규정을 준수하도록 수동으로 변경합니다. 일반적으로 디스크 파티셔닝 문제입니다.

    • 보안 정책이 사용 설정되어 있는지 확인합니다.

  2. 이 단계에서는 엔지니어 옆에 스크라이브가 있어야 합니다.

다음 이미지는 보안 정책 페이지를 보여줍니다. 여기서 Red Hat Enterprise Linux 9용 GUI가 포함된 DISA STIG가 프로필로 선택되어 있습니다. 이 페이지에는 프로필 설명과 프로필 선택 버튼도 표시됩니다.

설치 프로그램 보안 정책 스크린샷

그림 7. 보안 정책의 프로필 선택입니다.

  • 보안 정책이 오류 없이 적용되었습니다.

사용자 설정

  1. root 사용자 구성

    • 루트 비밀번호를 설정합니다.
    • 설치가 완료된 후 암호화된 미디어 드라이브에 루트 비밀번호를 기록합니다.
  2. 첫 번째 작업자 계정 구성

    • 초기 운영자 사용자 계정의 사용자 이름을 설정합니다.
    • 운영자가 직접 비밀번호를 선택하도록 합니다.
    • 계정을 %wheel 그룹에 추가하려면 '관리자'를 선택합니다.

다음 이미지는 설치의 사용자 만들기 페이지를 보여줍니다. 페이지에 전체 이름, 사용자 이름, 비밀번호, 고급 옵션 등 작성해야 하는 필드가 표시됩니다.

설치 프로그램 사용자 만들기 스크린샷

그림 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가 마운트되었습니다.

모든 도구 설치

  • 추가 소프트웨어가 포함된 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-to-Serial 케이블을 사용하려면 기본값을 변경해야 합니다.

  1. 구성 모드에서 minicom을 시작합니다.

    sudo minicom -s
    
  2. 그러면 설정을 변경할 수 있는 구성 TUI가 표시됩니다.

    다음 이미지는 구성 TUI에서 선택한 직렬 포트 설정 옵션을 보여줍니다.

    Minicom 직렬 포트 설정 스크린샷

  3. 직렬 기기를 /dev/ttyUSB0으로 변경하고 전송률 (속도)을 적절하게 변경합니다.

    다음 이미지는 직렬 기기가 /dev/ttyUSB0으로 설정된 것을 보여줍니다.

    Minicom Serial 기기의 스크린샷

  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
    

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. 기존 .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
    

설치 후 체크리스트

  • 발견된 문제는 문서화되었습니다.
  • 민감한 사용자 인증 정보가 안전하게 전송되고 문서화되었습니다.
  • OS 및 도구 설치 작업이 작업 추적기에서 업데이트되었습니다.
  • 시스템 컨트롤러 구성 후 체크리스트:
    • ip a # 올바른 IP 표시
    • kubectl version
    • k9s version
    • minicom --help
    • tmux -V
    • chronyc sources