Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

16.6. 임의 번호 생성기 장치

운영 체제 보안에 난수 생성기가 매우 중요합니다. Red Hat Enterprise Linux 7에는 가상 운영 체제의 보안을 위해 게스트에 요청에 대한 새로운 엔트로피를 제공할 수 있는 가상 하드웨어 난수 생성기 장치인 virtio-rng 가 포함되어 있습니다.
호스트 물리적 시스템에서 하드웨어 RNG 인터페이스는 /dev/hwrng 에 chardev를 생성한 다음, 호스트 물리적 머신에서 엔트로피를 가져오도록 읽을 수 있습니다. rngd 데몬과 함께 작동하면 호스트 물리적 시스템의 엔트로피를 게스트 가상 시스템의 /dev/random 로 라우팅할 수 있습니다.
임의의 숫자 생성기를 사용하는 것은 키보드, 마우스 및 기타 입력과 같은 장치가 게스트 가상 머신에서 충분한 엔트로피를 생성하는 데 충분하지 않은 경우 특히 유용합니다. 가상 난수 생성기 장치를 사용하면 호스트 물리적 머신이 게스트 가상 머신 운영 체제에 엔트로피를 통과할 수 있습니다. 이 절차는 명령줄 또는 virt-manager 인터페이스를 사용하여 수행할 수 있습니다. 자세한 내용은 아래를 참조하십시오. virtio-rng 에 대한 자세한 내용은 Red Hat Enterprise Linux Virtual Machines를 참조하십시오. Random Numbers made easy 에 액세스할 수 있습니다.

절차 16.11. 가상 머신 관리자를 사용하여 virtio-rng 구현

  1. 게스트 가상 머신을 종료합니다.
  2. 게스트 가상 머신을 선택하고 편집 메뉴에서 가상 머신 세부 정보를 선택하여 지정된 게스트 가상 머신의 세부 정보 창을 엽니다.
  3. 하드웨어 추가 버튼을 클릭합니다.
  4. 새 가상 하드웨어 추가 창에서 RNG 를 선택하여 Random Number Generator 창을 엽니다.

    그림 16.20. 난수 생성기 창

    난수 생성기 창
    원하는 매개 변수를 입력하고 완료되면 Finish 를 클릭합니다. 매개변수는 virtio-rng 요소 에 설명되어 있습니다.

절차 16.12. 명령줄 툴을 사용하여 virtio-rng 구현

  1. 게스트 가상 머신을 종료합니다.
  2. virsh edit domain-name 명령을 사용하여 원하는 게스트 가상 시스템의 XML 파일을 엽니다.
  3. 다음을 포함하도록 <devices> 요소를 편집합니다.

    그림 16.21. 난수 생성기 장치

    
      ...
      <devices>
        <rng model='virtio'>
          <rate period='2000' bytes='1234'/>
          <backend model='random'>/dev/random</backend>
          <!-- OR -->
          <backend model='egd' type='udp'>
            <source mode='bind' service='1234'/>
            <source mode='connect' host='1.2.3.4' service='1234'/>
          </backend>
        </rng>
      </devices>
      ...
    난수 생성기 장치는 다음과 같은 XML 속성 및 요소를 허용합니다.

    virtio-rng 요소

    • <모델> - 필수 모델 속성은 RNG 장치의 유형을 지정합니다.
    • <백엔드 모델> - <backend> 요소는 게스트에 사용할 엔트로피의 소스를 지정합니다. 소스 모델은 model 특성을 사용하여 구성됩니다. 지원되는 소스 모델에는 'random''egd' 이 있습니다.
      • <백엔드 model='random'> - 이 <백엔드> 유형은 블록 이외의 문자 장치를 입력으로 예상합니다. 이러한 장치의 예는 /dev/random/dev/urandom 입니다. 파일 이름은 <backend> 요소의 콘텐츠로 지정됩니다. 파일 이름이 지정되지 않은 경우 하이퍼바이저 기본값은 사용됩니다.
      • <백엔드 model='egd'> - 이 백엔드는 EGD 프로토콜을 사용하여 소스에 연결됩니다. 소스는 문자 장치로 지정됩니다. 자세한 내용은 문자 장치 호스트 물리적 시스템 인터페이스를 참조하십시오.