Virtio RNG 사용 설정


Virtio RNG는 반가상화된 임의 번호 생성기입니다. Virtio RNG는 가상 머신(VM) 인스턴스의 호스트 머신에서 생성된 엔트로피 풀에서 임의의 숫자를 제공합니다. 엔트로피 풀은 시스템에서 임의의 정보를 무작위로 수집하여 이 정보를 사용하여 SSH 키 또는 고유 ID와 같은 민감한 정보에 사용할 수 있습니다.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

제한사항

  • Virtio RNG는 Windows 이미지에서 사용할 수 없습니다.
  • 기본적으로 Compute Engine VM은 데몬 대신 Virtio RNG를 사용하여 게스트 엔트로피 풀을 다시 채웁니다. Vitio RNG를 사용하거나 대신 엔트로피 수집 데몬을 사용하려면 설치해야 합니다. 엔트로피 수집 데몬의 예시는 rng-tools 문서를 참조하세요.

Virtio RNG가 사용 설정되어 있는지 확인

다음 명령어를 실행하여 VM에서 Virtio RNG가 사용 설정되었는지 확인할 수 있습니다.

lsmod | grep rng

Virtio RNG가 사용 설정되면 다음과 비슷한 출력이 표시됩니다.

virtio_rng             16384  0
rng_core               16384  2 virtio_rng
virtio_ring            28672  4 virtio_rng,virtio_scsi,virtio_pci,virtio_net
virtio                 16384  4 virtio_rng,virtio_scsi,virtio_pci,virtio_net

Virtio RNG 테스트

/dev/random 기기를 사용하여 Virtio RNG를 테스트할 수 있습니다.

  1. SSH를 사용하여 VM에 연결합니다. 예를 들어 gcloud CLI를 사용하여 연결할 수 있습니다.

    gcloud compute ssh VM_NAME
    

    VM_NAME을 VM 이름으로 바꿉니다.

  2. rng-tools을 설치합니다.

    CentOS

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo yum install rng-tools

    Debian

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo apt install rng-tools

    Fedora CoreOS

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo yum install rng-tools

    RHEL

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo yum install rng-tools

    SLES

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo zypper install rng-tools

    Ubuntu LTS

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo apt install rng-tools

    일부 Ubuntu 이미지는 Package 'rng-tools' has no installation candidate 오류를 반환합니다. 이 오류가 발생하면 다음 명령어를 실행합니다.

    sudo apt update
    sudo apt install rng-tools
    
  3. VM에서 rngtest 명령어를 실행합니다.

    cat /dev/random | rngtest -c 1000
    

Virtio RNG가 사용 설정되지 않으면 명령어는 아무것도 반환하지 않습니다. 사용 설정하면 다음과 비슷한 응답이 표시됩니다.

rngtest 2-unofficial-mt.14..
rngtest: starting FIPS tests...
rngtest: bits received from input: 20000032
rngtest: FIPS 140-2 successes: 1000
rngtest: FIPS 140-2 failures: 0
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 0
rngtest: FIPS 140-2(2001-10-10) Long run: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=4.801; avg=7.318; max=7.839)Mibits/s
rngtest: FIPS tests speed: (min=39.005; avg=69.557; max=72.523)Mibits/s
rngtest: Program run time: 2880954 microseconds

다음 단계